{"openapi":"3.1.0","info":{"title":"IIST Web API","version":"0.3.0","description":"Object-based website generation and approved developer modules. Responses use ok/data/meta or ok/error/meta. Developer code executes only in the isolated worker."},"servers":[{"url":"https://webapi.iist.lk","description":"Sandbox installation"}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Component.html_div":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"html.div"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.html_section":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"html.section"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.html_heading":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"html.heading"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Heading","default":"A new heading"},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.html_paragraph":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"html.paragraph"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":"Tell your story here."},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.html_span":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"html.span"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":"Inline text"},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.html_image":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"html.image"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"src":{"type":"string","maxLength":20000,"description":"Image URL","default":""},"alt":{"type":"string","maxLength":20000,"description":"Image description","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.html_link":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"html.link"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":"Learn more"},"href":{"type":"string","maxLength":20000,"description":"Link","default":"#"},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.html_input":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"html.input"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"label":{"type":"string","maxLength":20000,"description":"Label","default":"Your name"},"placeholder":{"type":"string","maxLength":20000,"description":"Placeholder","default":"Enter your name"},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.html_button":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"html.button"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":"Contact us"},"href":{"type":"string","maxLength":20000,"description":"Link","default":""},"variant":{"type":"string","maxLength":20000,"enum":["flat","3d"],"description":"Style","default":"flat"}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.block_header":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"block.header"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"brand":{"type":"string","maxLength":20000,"description":"Brand","default":"Your brand"},"linkText":{"type":"string","maxLength":20000,"description":"Link text","default":"Contact"},"href":{"type":"string","maxLength":20000,"description":"Link","default":"#contact"},"links":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"description":"Navigation links (JSON)","default":[]}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.block_hero":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"block.hero"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"eyebrow":{"type":"string","maxLength":20000,"description":"Eyebrow","default":"WELCOME"},"title":{"type":"string","maxLength":20000,"description":"Title","default":"Build something remarkable"},"text":{"type":"string","maxLength":20000,"description":"Description","default":"A thoughtful website for your business."},"buttonText":{"type":"string","maxLength":20000,"description":"Button text","default":"Contact us"},"href":{"type":"string","maxLength":20000,"description":"Button link","default":"#contact"},"variant":{"type":"string","maxLength":20000,"enum":["classic","split","dark","minimal"],"description":"Layout","default":"classic"},"image":{"type":"string","maxLength":20000,"description":"Image","default":""},"alt":{"type":"string","maxLength":20000,"description":"Image description","default":""},"buttonStyle":{"type":"string","maxLength":20000,"enum":["flat","3d"],"description":"Button style","default":"3d"}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.block_card":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"block.card"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"title":{"type":"string","maxLength":20000,"description":"Title","default":"Our service"},"text":{"type":"string","maxLength":20000,"description":"Description","default":"Describe what makes your service special."}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.block_footer":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"block.footer"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":"\u00a9 Your company. All rights reserved."}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.module_features":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"module.features"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"title":{"type":"string","maxLength":20000,"description":"Heading","default":"Our services"}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_a":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.a"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"href":{"type":"string","maxLength":20000,"description":"Link","default":"#"},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_abbr":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.abbr"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_address":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.address"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_area":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.area"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"href":{"type":"string","maxLength":20000,"description":"Link","default":"#"},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_article":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.article"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_aside":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.aside"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_audio":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.audio"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"src":{"type":"string","maxLength":20000,"description":"Source","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_b":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.b"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_bdi":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.bdi"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_bdo":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.bdo"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_blockquote":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.blockquote"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_br":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.br"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_button":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.button"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_canvas":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.canvas"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_caption":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.caption"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_cite":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.cite"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_code":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.code"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_col":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.col"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_colgroup":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.colgroup"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_data":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.data"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_datalist":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.datalist"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_dd":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.dd"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_del":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.del"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_details":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.details"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_dfn":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.dfn"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_dialog":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.dialog"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_div":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.div"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_dl":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.dl"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_dt":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.dt"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_em":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.em"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_fieldset":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.fieldset"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_figcaption":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.figcaption"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_figure":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.figure"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_footer":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.footer"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_form":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.form"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_h1":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.h1"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_h2":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.h2"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_h3":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.h3"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_h4":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.h4"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_h5":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.h5"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_h6":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.h6"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_header":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.header"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_hgroup":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.hgroup"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_hr":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.hr"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_i":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.i"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_img":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.img"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"src":{"type":"string","maxLength":20000,"description":"Source","default":""},"alt":{"type":"string","maxLength":20000,"description":"Image description","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_input":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.input"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"type":{"type":"string","maxLength":20000,"enum":["text","email","tel","number","date","checkbox","radio","password","file","hidden","submit"],"description":"Input type","default":"text"},"placeholder":{"type":"string","maxLength":20000,"description":"Placeholder","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_ins":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.ins"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_kbd":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.kbd"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_label":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.label"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_legend":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.legend"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_li":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.li"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_main":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.main"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_map":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.map"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_mark":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.mark"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_menu":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.menu"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_meter":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.meter"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_nav":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.nav"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_noscript":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.noscript"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_ol":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.ol"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_optgroup":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.optgroup"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_option":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.option"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_output":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.output"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_p":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.p"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_picture":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.picture"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_pre":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.pre"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_progress":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.progress"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_q":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.q"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_rp":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.rp"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_rt":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.rt"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_ruby":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.ruby"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_s":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.s"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_samp":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.samp"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_search":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.search"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_section":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.section"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_select":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.select"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_selectedcontent":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.selectedcontent"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_slot":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.slot"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_small":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.small"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_source":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.source"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"src":{"type":"string","maxLength":20000,"description":"Source","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_span":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.span"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_strong":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.strong"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_sub":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.sub"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_summary":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.summary"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_sup":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.sup"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_table":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.table"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_tbody":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.tbody"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_td":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.td"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_template":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.template"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_textarea":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.textarea"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_tfoot":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.tfoot"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_th":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.th"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_thead":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.thead"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_time":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.time"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_title":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.title"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_tr":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.tr"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_track":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.track"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"src":{"type":"string","maxLength":20000,"description":"Source","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_u":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.u"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_ul":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.ul"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_var":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.var"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_video":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.video"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"text":{"type":"string","maxLength":20000,"description":"Text","default":""},"src":{"type":"string","maxLength":20000,"description":"Source","default":""},"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.tag_wbr":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"tag.wbr"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"class":{"type":"string","maxLength":20000,"description":"CSS classes","default":""},"attributes":{"type":"object","properties":{},"required":[],"additionalProperties":true,"description":"HTML attributes (JSON object)","default":{}}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.block_content":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"block.content"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"title":{"type":"string","maxLength":20000,"description":"Title","default":"Our story"},"text":{"type":"string","maxLength":20000,"description":"Content","default":"Write your page content here."},"eyebrow":{"type":"string","maxLength":20000,"description":"Eyebrow","default":""},"variant":{"type":"string","maxLength":20000,"enum":["prose","split","banner","editorial"],"description":"Layout","default":"prose"},"image":{"type":"string","maxLength":20000,"description":"Image","default":""},"alt":{"type":"string","maxLength":20000,"description":"Image description","default":""}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.block_faq":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"block.faq"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"title":{"type":"string","maxLength":20000,"description":"Title","default":"Questions & answers"},"items":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"description":"Questions (JSON)","default":[{"question":"How do we get started?","answer":"Send us a message using the contact page."}]}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.module_popup":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"module.popup"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"buttonText":{"type":"string","maxLength":20000,"description":"Button text","default":"Open popup"},"title":{"type":"string","maxLength":20000,"description":"Title","default":"Welcome"},"text":{"type":"string","maxLength":20000,"description":"Content","default":"This is a reusable popup component."}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.module_table":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"module.table"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"title":{"type":"string","maxLength":20000,"description":"Title","default":"Team directory"},"columns":{"type":"string","maxLength":20000,"description":"Column headings, comma-separated","default":"Name,Department,Status"},"rows":{"type":"array","items":{"type":"array","items":{"type":"string","maxLength":1000}},"description":"Rows (JSON array of arrays)","default":[["Asha","Engineering","Active"],["Nimal","Design","Active"],["Saman","Support","Away"],["Mala","Engineering","Active"],["Kamal","Design","Away"],["Ravi","Support","Active"]]},"filterColumn":{"type":"integer","minimum":-1,"maximum":19,"description":"Filter column (zero-based; -1 disables)","default":1},"pageSize":{"type":"integer","minimum":1,"maximum":100,"description":"Rows per page","default":5}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.module_gallery":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"module.gallery"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"title":{"type":"string","maxLength":20000,"description":"Title","default":"Selected projects"},"variant":{"type":"string","maxLength":20000,"enum":["grid","masonry"],"description":"Layout","default":"grid"},"images":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"description":"Images (JSON)","default":[{"src":"assets/samples/project-1.png","alt":"Blue sample project placeholder","caption":"Project one"},{"src":"assets/samples/project-2.png","alt":"Orange sample project placeholder","caption":"Project two"},{"src":"assets/samples/project-3.png","alt":"Green sample project placeholder","caption":"Project three"}]}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.module_slideshow":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"module.slideshow"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"title":{"type":"string","maxLength":20000,"description":"Title","default":"Project highlights"},"images":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"description":"Slides (JSON)","default":[{"src":"assets/samples/project-1.png","alt":"Blue sample project placeholder","caption":"Project one"},{"src":"assets/samples/project-2.png","alt":"Orange sample project placeholder","caption":"Project two"},{"src":"assets/samples/project-3.png","alt":"Green sample project placeholder","caption":"Project three"}]},"interval":{"type":"integer","minimum":1000,"maximum":60000,"description":"Slide interval, milliseconds","default":5000},"autoplay":{"type":"boolean","description":"Autoplay","default":false}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.module_contact":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"module.contact"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"title":{"type":"string","maxLength":20000,"description":"Title","default":"Get in touch"},"text":{"type":"string","maxLength":20000,"description":"Introduction","default":"Tell us how we can help."},"buttonText":{"type":"string","maxLength":20000,"description":"Submit button","default":"Send message"}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.module_ajax":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"module.ajax"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"title":{"type":"string","maxLength":20000,"description":"Title","default":"AJAX example"},"endpoint":{"type":"string","maxLength":20000,"description":"JSON endpoint","default":"index.php?public=sample-data"}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false},"Component.module_websocket":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","const":"module.websocket"},"version":{"type":"string","const":"1.0.0"},"props":{"type":"object","properties":{"title":{"type":"string","maxLength":20000,"description":"Title","default":"Live connection"},"endpoint":{"type":"string","maxLength":20000,"description":"WebSocket endpoint (wss://; loopback ws:// for testing)","default":""}},"required":[],"additionalProperties":false},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":0}},"required":["id","type","version","props","children"],"additionalProperties":false}}},"paths":{"/api/v1/health":{"get":{"operationId":"health","summary":"Check API, database and worker configuration","description":"Check API, database and worker configuration. Role: public. See the developer guide for limits and workflows.","tags":["health"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{"status":"ok","version":"0.3.0"},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/health\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/health', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/health');"}]}},"/api/v1/auth/login":{"post":{"operationId":"login","summary":"Exchange account credentials for an expiring bearer token","description":"Exchange account credentials for an expiring bearer token. Role: public. See the developer guide for limits and workflows.","tags":["login"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"password":{"type":"string","maxLength":200}},"required":["email","password"],"additionalProperties":false},"example":{"email":"you@example.com","password":"YOUR_PASSWORD"}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/auth/login\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/auth/login', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/auth/login', requestBody);"}]}},"/api/v1/auth/me":{"get":{"operationId":"me","summary":"Read your account and developer namespace","description":"Read your account and developer namespace. Role: user. See the developer guide for limits and workflows.","tags":["me"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/auth/me\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/auth/me', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/auth/me');"}]}},"/api/v1/auth/logout":{"post":{"operationId":"logout","summary":"Revoke your current bearer token","description":"Revoke your current bearer token. Role: user. See the developer guide for limits and workflows.","tags":["logout"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"example":{}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/auth/logout\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/auth/logout', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/auth/logout', requestBody);"}]}},"/api/v1/auth/tokens":{"get":{"operationId":"tokens.list","summary":"List your tokens without revealing their secrets","description":"List your tokens without revealing their secrets. Role: user. See the developer guide for limits and workflows.","tags":["tokens"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/auth/tokens\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/auth/tokens', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/auth/tokens');"}]},"post":{"operationId":"tokens.create","summary":"Create an expiring server-side API token","description":"Create an expiring server-side API token. Role: user. See the developer guide for limits and workflows.","tags":["tokens"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","maxLength":100},"hours":{"type":"integer","minimum":1,"maximum":720}},"required":["label","hours"],"additionalProperties":false},"example":{"label":"Development server","hours":24}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/auth/tokens\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/auth/tokens', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/auth/tokens', requestBody);"}]}},"/api/v1/auth/tokens/{id}":{"delete":{"operationId":"tokens.delete","summary":"Revoke one of your tokens","description":"Revoke one of your tokens. Role: user. See the developer guide for limits and workflows.","tags":["tokens"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X DELETE \"https://webapi.iist.lk/api/v1/auth/tokens/{id}\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('DELETE', '/api/v1/auth/tokens/{id}', null);"},{"lang":"JavaScript","source":"const data = await client.request('DELETE', '/api/v1/auth/tokens/{id}');"}]}},"/api/v1/auth/password":{"post":{"operationId":"password","summary":"Change your password and revoke all tokens","description":"Change your password and revoke all tokens. Role: user. See the developer guide for limits and workflows.","tags":["password"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"current":{"type":"string","maxLength":200},"password":{"type":"string","maxLength":200,"minLength":12}},"required":["current","password"],"additionalProperties":false},"example":{"current":"CURRENT_PASSWORD","password":"NEW_PASSWORD_12_PLUS"}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/auth/password\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/auth/password', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/auth/password', requestBody);"}]}},"/api/v1/admin/users":{"get":{"operationId":"users.list","summary":"List user accounts","description":"List user accounts. Role: admin. See the developer guide for limits and workflows.","tags":["users"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":[],"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"admin","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/admin/users\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/admin/users', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/admin/users');"}]},"post":{"operationId":"users.create","summary":"Create an admin, developer or consumer account","description":"Create an admin, developer or consumer account. Role: admin. See the developer guide for limits and workflows.","tags":["users"],"security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"admin","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"password":{"type":"string","maxLength":200,"minLength":12},"role":{"type":"string","enum":["admin","developer","consumer"]}},"required":["email","password","role"],"additionalProperties":false},"example":{"email":"developer@example.com","password":"SET_A_STRONG_PASSWORD","role":"developer"}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/admin/users\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/admin/users', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/admin/users', requestBody);"}]}},"/api/v1/admin/users/{id}/password":{"post":{"operationId":"users.password","summary":"Reset a user password and revoke their tokens","description":"Reset a user password and revoke their tokens. Role: admin. See the developer guide for limits and workflows.","tags":["users"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"admin","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"password":{"type":"string","maxLength":200,"minLength":12}},"required":["password"],"additionalProperties":false},"example":{"password":"SET_A_NEW_STRONG_PASSWORD"}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/admin/users/{id}/password\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/admin/users/{id}/password', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/admin/users/{id}/password', requestBody);"}]}},"/api/v1/admin/audit":{"get":{"operationId":"audit","summary":"Read recent module and administrative audit entries","description":"Read recent module and administrative audit entries. Role: admin. See the developer guide for limits and workflows.","tags":["audit"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":[],"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"admin","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/admin/audit\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/admin/audit', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/admin/audit');"}]}},"/api/v1/components":{"get":{"operationId":"components","summary":"Get every registered HTML element, block and UI module","description":"Get every registered HTML element, block and UI module. Role: public. See the developer guide for limits and workflows.","tags":["components"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/components\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/components', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/components');"}]}},"/api/v1/components/{type}":{"get":{"operationId":"component","summary":"Get component properties, defaults, schema and example","description":"Get component properties, defaults, schema and example. Role: public. See the developer guide for limits and workflows.","tags":["component"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"},"example":"html.button"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/components/{type}\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/components/{type}', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/components/{type}');"}]}},"/api/v1/components/{type}/node":{"post":{"operationId":"component.node","summary":"Create and validate a component JSON object","description":"Create and validate a component JSON object. Role: user. See the developer guide for limits and workflows.","tags":["component"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{"id":"example","type":"example","version":"example","props":{},"children":[]},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"},"example":"html.button"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"maxItems":1000}},"required":["id"],"additionalProperties":false},"example":{"id":"my-button","props":{"text":"Hello"},"children":[]}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/components/{type}/node\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/components/{type}/node', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/components/{type}/node', requestBody);"}]}},"/api/v1/components/render":{"post":{"operationId":"components.render","summary":"Render one validated component into HTML, CSS and JS","description":"Render one validated component into HTML, CSS and JS. Role: user. See the developer guide for limits and workflows.","tags":["components"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"html":{"type":"string","maxLength":2000000},"css":{"type":"string","maxLength":1000000},"js":{"type":"string","maxLength":1000000},"assets":{"type":"object","properties":{},"required":[],"additionalProperties":true}},"required":["html","css","js","assets"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{"html":"example","css":"example","js":"example","assets":{}},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"component":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false}},"required":["component"],"additionalProperties":false},"example":{"component":{"id":"hello","type":"html.button","version":"1.0.0","props":{"text":"Hello","variant":"3d"},"children":[]}}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/components/render\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/components/render', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/components/render', requestBody);"}]}},"/api/v1/html/tags":{"get":{"operationId":"tags","summary":"List standard tags, void tags and developer compatibility tags","description":"List standard tags, void tags and developer compatibility tags. Role: public. See the developer guide for limits and workflows.","tags":["tags"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/html/tags\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/html/tags', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/html/tags');"}]}},"/api/v1/html/{tag}/node":{"post":{"operationId":"tag.node","summary":"Create a standard safe HTML tag object","description":"Create a standard safe HTML tag object. Role: user. See the developer guide for limits and workflows.","tags":["tag"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{"id":"example","type":"example","version":"example","props":{},"children":[]},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"tag","in":"path","required":true,"schema":{"type":"string"},"example":"button"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"maxItems":1000}},"required":["id"],"additionalProperties":false},"example":{"id":"greeting","props":{"text":"Hello"},"children":[]}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/html/{tag}/node\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/html/{tag}/node', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/html/{tag}/node', requestBody);"}]}},"/api/v1/html/{tag}/render":{"post":{"operationId":"tag.render","summary":"Render a standard safe tag and its children","description":"Render a standard safe tag and its children. Role: user. See the developer guide for limits and workflows.","tags":["tag"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"html":{"type":"string","maxLength":2000000},"css":{"type":"string","maxLength":1000000},"js":{"type":"string","maxLength":1000000},"assets":{"type":"object","properties":{},"required":[],"additionalProperties":true}},"required":["html","css","js","assets"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{"html":"example","css":"example","js":"example","assets":{}},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"tag","in":"path","required":true,"schema":{"type":"string"},"example":"button"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"maxItems":1000}},"required":["id"],"additionalProperties":false},"example":{"id":"greeting","props":{"text":"Hello"},"children":[]}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/html/{tag}/render\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/html/{tag}/render', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/html/{tag}/render', requestBody);"}]}},"/api/v1/css/utilities":{"get":{"operationId":"css.utilities","summary":"Get common utility classes and the bundled stylesheet","description":"Get common utility classes and the bundled stylesheet. Role: public. See the developer guide for limits and workflows.","tags":["css"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/css/utilities\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/css/utilities', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/css/utilities');"}]}},"/api/v1/css/render":{"post":{"operationId":"css.render","summary":"Generate configured CSS rules, grids, flex, transitions and theme","description":"Generate configured CSS rules, grids, flex, transitions and theme. Role: user. See the developer guide for limits and workflows.","tags":["css"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rules":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000},"theme":{"type":"object","properties":{"primary":{"type":"string","maxLength":7},"background":{"type":"string","maxLength":7},"text":{"type":"string","maxLength":7},"radius":{"type":"integer","minimum":0,"maximum":40}},"required":["primary","background","text","radius"],"additionalProperties":false}},"required":[],"additionalProperties":false},"example":{"rules":[{"class":"cards","layout":"grid","columns":3,"gap":"24px","declarations":{"color":"#17233b"},"responsive":[{"minWidth":0,"declarations":{"display":"block"}}]}]}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/css/render\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/css/render', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/css/render', requestBody);"}]}},"/api/v1/js/capabilities":{"get":{"operationId":"js.capabilities","summary":"Discover DOM, AJAX, WebSocket, events and module lifecycle helpers","description":"Discover DOM, AJAX, WebSocket, events and module lifecycle helpers. Role: public. See the developer guide for limits and workflows.","tags":["js"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/js/capabilities\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/js/capabilities', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/js/capabilities');"}]}},"/api/v1/js/render":{"post":{"operationId":"js.render","summary":"Generate DOM creation, event actions and timer JavaScript","description":"Generate DOM creation, event actions and timer JavaScript. Role: user. See the developer guide for limits and workflows.","tags":["js"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"elements":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000},"events":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000},"timers":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":[],"additionalProperties":false},"example":{"elements":[{"tag":"button","id":"created-button","parent":"host","props":{"text":"Click me"}}],"events":[{"element":"created-button","event":"click","action":"text","target":"output","value":"Clicked"}],"timers":[]}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/js/render\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/js/render', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/js/render', requestBody);"}]}},"/api/v1/ui":{"get":{"operationId":"ui.catalogue","summary":"List reusable visual blocks and modules","description":"List reusable visual blocks and modules. Role: public. See the developer guide for limits and workflows.","tags":["ui"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/ui\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/ui', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/ui');"}]}},"/api/v1/ui/{feature}/node":{"post":{"operationId":"ui.node","summary":"Create popup, contact, table, gallery, slideshow, AJAX or WebSocket component","description":"Create popup, contact, table, gallery, slideshow, AJAX or WebSocket component. Role: user. See the developer guide for limits and workflows.","tags":["ui"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{"id":"example","type":"example","version":"example","props":{},"children":[]},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"feature","in":"path","required":true,"schema":{"type":"string"},"example":"popup"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"maxItems":1000}},"required":["id"],"additionalProperties":false},"example":{"id":"sample","props":{},"children":[]}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/ui/{feature}/node\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/ui/{feature}/node', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/ui/{feature}/node', requestBody);"}]}},"/api/v1/ui/{feature}/render":{"post":{"operationId":"ui.render","summary":"Render a configured reusable UI module or block","description":"Render a configured reusable UI module or block. Role: user. See the developer guide for limits and workflows.","tags":["ui"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"html":{"type":"string","maxLength":2000000},"css":{"type":"string","maxLength":1000000},"js":{"type":"string","maxLength":1000000},"assets":{"type":"object","properties":{},"required":[],"additionalProperties":true}},"required":["html","css","js","assets"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{"html":"example","css":"example","js":"example","assets":{}},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"feature","in":"path","required":true,"schema":{"type":"string"},"example":"popup"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"maxItems":1000}},"required":["id"],"additionalProperties":false},"example":{"id":"sample","props":{},"children":[]}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/ui/{feature}/render\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/ui/{feature}/render', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/ui/{feature}/render', requestBody);"}]}},"/api/v1/js/ajax/config":{"post":{"operationId":"ajax.config","summary":"Validate a browser AJAX request configuration","description":"Validate a browser AJAX request configuration. Role: user. See the developer guide for limits and workflows.","tags":["ajax"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2000},"method":{"type":"string","enum":["GET","POST","PUT","DELETE"]},"timeout":{"type":"integer","minimum":100,"maximum":60000}},"required":["url"],"additionalProperties":false},"example":{"url":"https://webapi.iist.lk/api/v1/sample-data","method":"GET","timeout":10000}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/js/ajax/config\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/js/ajax/config', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/js/ajax/config', requestBody);"}]}},"/api/v1/js/websocket/config":{"post":{"operationId":"websocket.config","summary":"Validate a browser WebSocket endpoint and retry policy","description":"Validate a browser WebSocket endpoint and retry policy. Role: user. See the developer guide for limits and workflows.","tags":["websocket"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2000},"retries":{"type":"integer","minimum":0,"maximum":5}},"required":["url"],"additionalProperties":false},"example":{"url":"wss://example.com/socket","retries":3}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/js/websocket/config\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/js/websocket/config', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/js/websocket/config', requestBody);"}]}},"/api/v1/templates":{"get":{"operationId":"templates","summary":"List sample website styles and pages","description":"List sample website styles and pages. Role: public. See the developer guide for limits and workflows.","tags":["templates"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":[],"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/templates\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/templates', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/templates');"}]}},"/api/v1/templates/{style}":{"get":{"operationId":"template","summary":"Get a complete sample website definition","description":"Get a complete sample website definition. Role: public. See the developer guide for limits and workflows.","tags":["template"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["1.0.0"]},"name":{"type":"string","maxLength":120},"theme":{"type":"object","properties":{"primary":{"type":"string","maxLength":7},"background":{"type":"string","maxLength":7},"text":{"type":"string","maxLength":7},"radius":{"type":"integer","minimum":0,"maximum":40}},"required":["primary","background","text","radius"],"additionalProperties":false},"pages":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","maxLength":60},"title":{"type":"string","maxLength":1000},"description":{"type":"string","maxLength":1000},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"maxItems":1000}},"required":["slug","title","description","children"],"additionalProperties":false},"maxItems":1000}},"required":["schemaVersion","name","theme","pages"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{"schemaVersion":"1.0.0","name":"example","theme":{"primary":"example","background":"example","text":"example","radius":0},"pages":[]},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","parameters":[{"name":"style","in":"path","required":true,"schema":{"type":"string"},"example":"agency"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/templates/{style}\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/templates/{style}', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/templates/{style}');"}]}},"/api/v1/templates/{style}/pages/{slug}":{"get":{"operationId":"template.page","summary":"Get a sample home or subpage definition","description":"Get a sample home or subpage definition. Role: public. See the developer guide for limits and workflows.","tags":["template"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"slug":{"type":"string","maxLength":60},"title":{"type":"string","maxLength":1000},"description":{"type":"string","maxLength":1000},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"maxItems":1000}},"required":["slug","title","description","children"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{"slug":"example","title":"example","description":"example","children":[]},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","parameters":[{"name":"style","in":"path","required":true,"schema":{"type":"string"},"example":"agency"},{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"my-company"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/templates/{style}/pages/{slug}\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/templates/{style}/pages/{slug}', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/templates/{style}/pages/{slug}');"}]}},"/api/v1/documents/validate":{"post":{"operationId":"validate","summary":"Validate a complete website and all component properties","description":"Validate a complete website and all component properties. Role: user. See the developer guide for limits and workflows.","tags":["validate"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"document":{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["1.0.0"]},"name":{"type":"string","maxLength":120},"theme":{"type":"object","properties":{"primary":{"type":"string","maxLength":7},"background":{"type":"string","maxLength":7},"text":{"type":"string","maxLength":7},"radius":{"type":"integer","minimum":0,"maximum":40}},"required":["primary","background","text","radius"],"additionalProperties":false},"pages":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","maxLength":60},"title":{"type":"string","maxLength":1000},"description":{"type":"string","maxLength":1000},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"maxItems":1000}},"required":["slug","title","description","children"],"additionalProperties":false},"maxItems":1000}},"required":["schemaVersion","name","theme","pages"],"additionalProperties":false}},"required":["document"],"additionalProperties":false},"example":{"document":{"schemaVersion":"1.0.0","name":"Example","theme":{"primary":"#2754d8","background":"#ffffff","text":"#17233b","radius":12},"pages":[{"slug":"home","title":"Example","description":"A agency homepage sample.","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"hero","type":"block.hero","version":"1.0.0","props":{"eyebrow":"EXAMPLE","title":"Thoughtful work. Lasting results.","text":"A sample website you can make your own.","buttonText":"Explore our work","href":"page:gallery","variant":"split","image":"assets/samples/project-1.png","alt":"Blue sample project placeholder"},"children":[]},{"id":"home-content","type":"block.content","version":"1.0.0","props":{"title":"Built around your goals","text":"Replace this sample content with your company story, services, and values.","variant":"split","image":"assets/samples/project-2.png","alt":"Orange sample project placeholder"},"children":[]},{"id":"home-slides","type":"module.slideshow","version":"1.0.0","props":{"title":"Featured work","images":[{"src":"assets/samples/project-1.png","alt":"Blue sample project placeholder","caption":"Project one"},{"src":"assets/samples/project-2.png","alt":"Orange sample project placeholder","caption":"Project two"},{"src":"assets/samples/project-3.png","alt":"Green sample project placeholder","caption":"Project three"}]},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"about","title":"About Example","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"about-intro","type":"block.content","version":"1.0.0","props":{"title":"Our story","text":"We bring practical thinking and careful execution to every project. This is sample copy for your About page.","eyebrow":"ABOUT US","variant":"split","image":"assets/samples/project-3.png","alt":"Green sample project placeholder"},"children":[]},{"id":"about-values","type":"module.features","version":"1.0.0","props":{"title":"What matters to us"},"children":[{"id":"value-one","type":"block.card","version":"1.0.0","props":{"title":"Clear communication","text":"Keep everyone informed at every stage."},"children":[]},{"id":"value-two","type":"block.card","version":"1.0.0","props":{"title":"Careful delivery","text":"Create work that serves real needs."},"children":[]}]},{"id":"about-faq","type":"block.faq","version":"1.0.0","props":{"title":"Frequently asked questions","items":[{"question":"Can I customize this website?","answer":"Yes. Edit each component, add pages, and change the theme in IIST Web Studio."},{"question":"Are these real customer projects?","answer":"No. Images and content are sample placeholders to replace before publishing."}]},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"services","title":"Our services","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"services-intro","type":"block.content","version":"1.0.0","props":{"title":"How we can help","text":"Introduce your services with a short summary.","variant":"banner"},"children":[]},{"id":"services-grid","type":"module.features","version":"1.0.0","props":{"title":"Our services"},"children":[{"id":"service-one","type":"block.card","version":"1.0.0","props":{"title":"Website design","text":"Responsive websites for your customers."},"children":[]},{"id":"service-two","type":"block.card","version":"1.0.0","props":{"title":"Application development","text":"Tools that support your daily work."},"children":[]},{"id":"service-three","type":"block.card","version":"1.0.0","props":{"title":"Support","text":"Ongoing maintenance and improvements."},"children":[]}]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"gallery","title":"Our gallery","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"gallery","type":"module.gallery","version":"1.0.0","props":{"title":"Project gallery","images":[{"src":"assets/samples/project-1.png","alt":"Blue sample project placeholder","caption":"Project one"},{"src":"assets/samples/project-2.png","alt":"Orange sample project placeholder","caption":"Project two"},{"src":"assets/samples/project-3.png","alt":"Green sample project placeholder","caption":"Project three"}],"variant":"grid"},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"contact","title":"Contact us","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"contact-intro","type":"block.content","version":"1.0.0","props":{"title":"Let\u2019s talk","text":"Use this form to send a message. Your message is saved in the website owner\u2019s inbox.","variant":"prose"},"children":[]},{"id":"contact","type":"module.contact","version":"1.0.0","props":{"title":"Send a message","text":"We look forward to hearing from you.","buttonText":"Send message"},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"components","title":"Component examples","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"popup-example","type":"module.popup","version":"1.0.0","props":{"title":"A reusable popup","text":"This popup supports keyboard dismissal and returns focus to its opening button."},"children":[]},{"id":"directory","type":"module.table","version":"1.0.0","props":{},"children":[]},{"id":"ajax-example","type":"module.ajax","version":"1.0.0","props":{},"children":[]},{"id":"socket-example","type":"module.websocket","version":"1.0.0","props":{},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]}]}}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/documents/validate\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/documents/validate', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/documents/validate', requestBody);"}]}},"/api/v1/pages/render":{"post":{"operationId":"pages.render","summary":"Render a complete structured website page","description":"Render a complete structured website page. Role: user. See the developer guide for limits and workflows.","tags":["pages"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"html":{"type":"string","maxLength":2000000},"css":{"type":"string","maxLength":1000000},"js":{"type":"string","maxLength":1000000},"assets":{"type":"object","properties":{},"required":[],"additionalProperties":true}},"required":["html","css","js","assets"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{"html":"example","css":"example","js":"example","assets":{}},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"document":{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["1.0.0"]},"name":{"type":"string","maxLength":120},"theme":{"type":"object","properties":{"primary":{"type":"string","maxLength":7},"background":{"type":"string","maxLength":7},"text":{"type":"string","maxLength":7},"radius":{"type":"integer","minimum":0,"maximum":40}},"required":["primary","background","text","radius"],"additionalProperties":false},"pages":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","maxLength":60},"title":{"type":"string","maxLength":1000},"description":{"type":"string","maxLength":1000},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"maxItems":1000}},"required":["slug","title","description","children"],"additionalProperties":false},"maxItems":1000}},"required":["schemaVersion","name","theme","pages"],"additionalProperties":false},"page":{"type":"string","maxLength":60}},"required":["document","page"],"additionalProperties":false},"example":{"document":{"schemaVersion":"1.0.0","name":"Example","theme":{"primary":"#2754d8","background":"#ffffff","text":"#17233b","radius":12},"pages":[{"slug":"home","title":"Example","description":"A agency homepage sample.","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"hero","type":"block.hero","version":"1.0.0","props":{"eyebrow":"EXAMPLE","title":"Thoughtful work. Lasting results.","text":"A sample website you can make your own.","buttonText":"Explore our work","href":"page:gallery","variant":"split","image":"assets/samples/project-1.png","alt":"Blue sample project placeholder"},"children":[]},{"id":"home-content","type":"block.content","version":"1.0.0","props":{"title":"Built around your goals","text":"Replace this sample content with your company story, services, and values.","variant":"split","image":"assets/samples/project-2.png","alt":"Orange sample project placeholder"},"children":[]},{"id":"home-slides","type":"module.slideshow","version":"1.0.0","props":{"title":"Featured work","images":[{"src":"assets/samples/project-1.png","alt":"Blue sample project placeholder","caption":"Project one"},{"src":"assets/samples/project-2.png","alt":"Orange sample project placeholder","caption":"Project two"},{"src":"assets/samples/project-3.png","alt":"Green sample project placeholder","caption":"Project three"}]},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"about","title":"About Example","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"about-intro","type":"block.content","version":"1.0.0","props":{"title":"Our story","text":"We bring practical thinking and careful execution to every project. This is sample copy for your About page.","eyebrow":"ABOUT US","variant":"split","image":"assets/samples/project-3.png","alt":"Green sample project placeholder"},"children":[]},{"id":"about-values","type":"module.features","version":"1.0.0","props":{"title":"What matters to us"},"children":[{"id":"value-one","type":"block.card","version":"1.0.0","props":{"title":"Clear communication","text":"Keep everyone informed at every stage."},"children":[]},{"id":"value-two","type":"block.card","version":"1.0.0","props":{"title":"Careful delivery","text":"Create work that serves real needs."},"children":[]}]},{"id":"about-faq","type":"block.faq","version":"1.0.0","props":{"title":"Frequently asked questions","items":[{"question":"Can I customize this website?","answer":"Yes. Edit each component, add pages, and change the theme in IIST Web Studio."},{"question":"Are these real customer projects?","answer":"No. Images and content are sample placeholders to replace before publishing."}]},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"services","title":"Our services","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"services-intro","type":"block.content","version":"1.0.0","props":{"title":"How we can help","text":"Introduce your services with a short summary.","variant":"banner"},"children":[]},{"id":"services-grid","type":"module.features","version":"1.0.0","props":{"title":"Our services"},"children":[{"id":"service-one","type":"block.card","version":"1.0.0","props":{"title":"Website design","text":"Responsive websites for your customers."},"children":[]},{"id":"service-two","type":"block.card","version":"1.0.0","props":{"title":"Application development","text":"Tools that support your daily work."},"children":[]},{"id":"service-three","type":"block.card","version":"1.0.0","props":{"title":"Support","text":"Ongoing maintenance and improvements."},"children":[]}]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"gallery","title":"Our gallery","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"gallery","type":"module.gallery","version":"1.0.0","props":{"title":"Project gallery","images":[{"src":"assets/samples/project-1.png","alt":"Blue sample project placeholder","caption":"Project one"},{"src":"assets/samples/project-2.png","alt":"Orange sample project placeholder","caption":"Project two"},{"src":"assets/samples/project-3.png","alt":"Green sample project placeholder","caption":"Project three"}],"variant":"grid"},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"contact","title":"Contact us","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"contact-intro","type":"block.content","version":"1.0.0","props":{"title":"Let\u2019s talk","text":"Use this form to send a message. Your message is saved in the website owner\u2019s inbox.","variant":"prose"},"children":[]},{"id":"contact","type":"module.contact","version":"1.0.0","props":{"title":"Send a message","text":"We look forward to hearing from you.","buttonText":"Send message"},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"components","title":"Component examples","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"popup-example","type":"module.popup","version":"1.0.0","props":{"title":"A reusable popup","text":"This popup supports keyboard dismissal and returns focus to its opening button."},"children":[]},{"id":"directory","type":"module.table","version":"1.0.0","props":{},"children":[]},{"id":"ajax-example","type":"module.ajax","version":"1.0.0","props":{},"children":[]},{"id":"socket-example","type":"module.websocket","version":"1.0.0","props":{},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]}]},"page":"home"}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/pages/render\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/pages/render', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/pages/render', requestBody);"}]}},"/api/v1/sites":{"get":{"operationId":"sites.list","summary":"List your websites","description":"List your websites. Role: user. See the developer guide for limits and workflows.","tags":["sites"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":[],"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/sites\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/sites', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/sites');"}]},"post":{"operationId":"sites.create","summary":"Create a website from a sample template","description":"Create a website from a sample template. Role: user. See the developer guide for limits and workflows.","tags":["sites"],"security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":120,"minLength":1},"slug":{"type":"string","maxLength":60,"pattern":"^[a-z0-9][a-z0-9-]{0,59}$"},"template":{"type":"string","enum":["agency","creative","minimal","business-full","business","portfolio"]}},"required":["name","slug","template"],"additionalProperties":false},"example":{"name":"My company","slug":"my-company","template":"agency"}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/sites\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/sites', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/sites', requestBody);"}]}},"/api/v1/sites/{id}":{"get":{"operationId":"sites.get","summary":"Get your draft website and revision IDs","description":"Get your draft website and revision IDs. Role: user. See the developer guide for limits and workflows.","tags":["sites"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/sites/{id}\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/sites/{id}', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/sites/{id}');"}]}},"/api/v1/sites/{id}/draft":{"put":{"operationId":"sites.save","summary":"Save a validated draft using optimistic revision checks","description":"Save a validated draft using optimistic revision checks. Role: user. See the developer guide for limits and workflows.","tags":["sites"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expectedRevision":{"type":"integer","minimum":1},"document":{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["1.0.0"]},"name":{"type":"string","maxLength":120},"theme":{"type":"object","properties":{"primary":{"type":"string","maxLength":7},"background":{"type":"string","maxLength":7},"text":{"type":"string","maxLength":7},"radius":{"type":"integer","minimum":0,"maximum":40}},"required":["primary","background","text","radius"],"additionalProperties":false},"pages":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","maxLength":60},"title":{"type":"string","maxLength":1000},"description":{"type":"string","maxLength":1000},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"type":{"type":"string","maxLength":100},"version":{"type":"string","maxLength":20},"props":{"type":"object","properties":{},"required":[],"additionalProperties":true},"children":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000}},"required":["id","type","version","props","children"],"additionalProperties":false},"maxItems":1000}},"required":["slug","title","description","children"],"additionalProperties":false},"maxItems":1000}},"required":["schemaVersion","name","theme","pages"],"additionalProperties":false}},"required":["expectedRevision","document"],"additionalProperties":false},"example":{"document":{"schemaVersion":"1.0.0","name":"Example","theme":{"primary":"#2754d8","background":"#ffffff","text":"#17233b","radius":12},"pages":[{"slug":"home","title":"Example","description":"A agency homepage sample.","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"hero","type":"block.hero","version":"1.0.0","props":{"eyebrow":"EXAMPLE","title":"Thoughtful work. Lasting results.","text":"A sample website you can make your own.","buttonText":"Explore our work","href":"page:gallery","variant":"split","image":"assets/samples/project-1.png","alt":"Blue sample project placeholder"},"children":[]},{"id":"home-content","type":"block.content","version":"1.0.0","props":{"title":"Built around your goals","text":"Replace this sample content with your company story, services, and values.","variant":"split","image":"assets/samples/project-2.png","alt":"Orange sample project placeholder"},"children":[]},{"id":"home-slides","type":"module.slideshow","version":"1.0.0","props":{"title":"Featured work","images":[{"src":"assets/samples/project-1.png","alt":"Blue sample project placeholder","caption":"Project one"},{"src":"assets/samples/project-2.png","alt":"Orange sample project placeholder","caption":"Project two"},{"src":"assets/samples/project-3.png","alt":"Green sample project placeholder","caption":"Project three"}]},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"about","title":"About Example","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"about-intro","type":"block.content","version":"1.0.0","props":{"title":"Our story","text":"We bring practical thinking and careful execution to every project. This is sample copy for your About page.","eyebrow":"ABOUT US","variant":"split","image":"assets/samples/project-3.png","alt":"Green sample project placeholder"},"children":[]},{"id":"about-values","type":"module.features","version":"1.0.0","props":{"title":"What matters to us"},"children":[{"id":"value-one","type":"block.card","version":"1.0.0","props":{"title":"Clear communication","text":"Keep everyone informed at every stage."},"children":[]},{"id":"value-two","type":"block.card","version":"1.0.0","props":{"title":"Careful delivery","text":"Create work that serves real needs."},"children":[]}]},{"id":"about-faq","type":"block.faq","version":"1.0.0","props":{"title":"Frequently asked questions","items":[{"question":"Can I customize this website?","answer":"Yes. Edit each component, add pages, and change the theme in IIST Web Studio."},{"question":"Are these real customer projects?","answer":"No. Images and content are sample placeholders to replace before publishing."}]},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"services","title":"Our services","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"services-intro","type":"block.content","version":"1.0.0","props":{"title":"How we can help","text":"Introduce your services with a short summary.","variant":"banner"},"children":[]},{"id":"services-grid","type":"module.features","version":"1.0.0","props":{"title":"Our services"},"children":[{"id":"service-one","type":"block.card","version":"1.0.0","props":{"title":"Website design","text":"Responsive websites for your customers."},"children":[]},{"id":"service-two","type":"block.card","version":"1.0.0","props":{"title":"Application development","text":"Tools that support your daily work."},"children":[]},{"id":"service-three","type":"block.card","version":"1.0.0","props":{"title":"Support","text":"Ongoing maintenance and improvements."},"children":[]}]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"gallery","title":"Our gallery","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"gallery","type":"module.gallery","version":"1.0.0","props":{"title":"Project gallery","images":[{"src":"assets/samples/project-1.png","alt":"Blue sample project placeholder","caption":"Project one"},{"src":"assets/samples/project-2.png","alt":"Orange sample project placeholder","caption":"Project two"},{"src":"assets/samples/project-3.png","alt":"Green sample project placeholder","caption":"Project three"}],"variant":"grid"},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"contact","title":"Contact us","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"contact-intro","type":"block.content","version":"1.0.0","props":{"title":"Let\u2019s talk","text":"Use this form to send a message. Your message is saved in the website owner\u2019s inbox.","variant":"prose"},"children":[]},{"id":"contact","type":"module.contact","version":"1.0.0","props":{"title":"Send a message","text":"We look forward to hearing from you.","buttonText":"Send message"},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]},{"slug":"components","title":"Component examples","description":"","children":[{"id":"header","type":"block.header","version":"1.0.0","props":{"brand":"Example","links":[{"text":"Home","href":"page:home"},{"text":"About","href":"page:about"},{"text":"Services","href":"page:services"},{"text":"Gallery","href":"page:gallery"},{"text":"Contact","href":"page:contact"},{"text":"Components","href":"page:components"}]},"children":[]},{"id":"popup-example","type":"module.popup","version":"1.0.0","props":{"title":"A reusable popup","text":"This popup supports keyboard dismissal and returns focus to its opening button."},"children":[]},{"id":"directory","type":"module.table","version":"1.0.0","props":{},"children":[]},{"id":"ajax-example","type":"module.ajax","version":"1.0.0","props":{},"children":[]},{"id":"socket-example","type":"module.websocket","version":"1.0.0","props":{},"children":[]},{"id":"footer","type":"block.footer","version":"1.0.0","props":{"text":"\u00a9 Example. Built with IIST Web."},"children":[]}]}]},"expectedRevision":1}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X PUT \"https://webapi.iist.lk/api/v1/sites/{id}/draft\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('PUT', '/api/v1/sites/{id}/draft', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('PUT', '/api/v1/sites/{id}/draft', requestBody);"}]}},"/api/v1/sites/{id}/publish":{"post":{"operationId":"sites.publish","summary":"Publish the exact expected draft revision","description":"Publish the exact expected draft revision. Role: user. See the developer guide for limits and workflows.","tags":["sites"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expectedRevision":{"type":"integer","minimum":1}},"required":["expectedRevision"],"additionalProperties":false},"example":{"expectedRevision":1}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/sites/{id}/publish\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/sites/{id}/publish', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/sites/{id}/publish', requestBody);"}]}},"/api/v1/sites/{id}/unpublish":{"post":{"operationId":"sites.unpublish","summary":"Remove public access while keeping your draft","description":"Remove public access while keeping your draft. Role: user. See the developer guide for limits and workflows.","tags":["sites"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"example":{}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/sites/{id}/unpublish\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/sites/{id}/unpublish', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/sites/{id}/unpublish', requestBody);"}]}},"/api/v1/sites/{id}/revisions":{"get":{"operationId":"sites.history","summary":"List your website revision history","description":"List your website revision history. Role: user. See the developer guide for limits and workflows.","tags":["sites"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":[],"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/sites/{id}/revisions\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/sites/{id}/revisions', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/sites/{id}/revisions');"}]}},"/api/v1/sites/{id}/revisions/{revision}":{"get":{"operationId":"sites.revision","summary":"Get one historical website definition","description":"Get one historical website definition. Role: user. See the developer guide for limits and workflows.","tags":["sites"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"},{"name":"revision","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/sites/{id}/revisions/{revision}\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/sites/{id}/revisions/{revision}', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/sites/{id}/revisions/{revision}');"}]}},"/api/v1/sites/{id}/restore":{"post":{"operationId":"sites.restore","summary":"Restore a historical definition as a new draft revision","description":"Restore a historical definition as a new draft revision. Role: user. See the developer guide for limits and workflows.","tags":["sites"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"revision":{"type":"integer","minimum":1},"expectedRevision":{"type":"integer","minimum":1}},"required":["revision","expectedRevision"],"additionalProperties":false},"example":{"revision":1,"expectedRevision":2}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/sites/{id}/restore\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/sites/{id}/restore', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/sites/{id}/restore', requestBody);"}]}},"/api/v1/sites/{id}/inquiries":{"get":{"operationId":"sites.inbox","summary":"Read your website contact inbox","description":"Read your website contact inbox. Role: user. See the developer guide for limits and workflows.","tags":["sites"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":[],"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/sites/{id}/inquiries\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/sites/{id}/inquiries', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/sites/{id}/inquiries');"}]}},"/api/v1/public/sites/{slug}":{"get":{"operationId":"public.site","summary":"Get a published website JSON definition","description":"Get a published website JSON definition. Role: public. See the developer guide for limits and workflows.","tags":["public"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"my-company"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/public/sites/{slug}\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/public/sites/{slug}', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/public/sites/{slug}');"}]}},"/api/v1/public/sites/{slug}/pages/{page}":{"get":{"operationId":"public.page","summary":"Get published page JSON and contact tokens","description":"Get published page JSON and contact tokens. Role: public. See the developer guide for limits and workflows.","tags":["public"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"my-company"},{"name":"page","in":"path","required":true,"schema":{"type":"string"},"example":"home"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/public/sites/{slug}/pages/{page}\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/public/sites/{slug}/pages/{page}', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/public/sites/{slug}/pages/{page}');"}]}},"/api/v1/public/sites/{slug}/pages/{page}/render":{"get":{"operationId":"public.render","summary":"Get published HTML, CSS and JS with enabled contact forms","description":"Get published HTML, CSS and JS with enabled contact forms. Role: public. See the developer guide for limits and workflows.","tags":["public"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"html":{"type":"string","maxLength":2000000},"css":{"type":"string","maxLength":1000000},"js":{"type":"string","maxLength":1000000},"assets":{"type":"object","properties":{},"required":[],"additionalProperties":true}},"required":["html","css","js","assets"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{"html":"example","css":"example","js":"example","assets":{}},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"my-company"},{"name":"page","in":"path","required":true,"schema":{"type":"string"},"example":"home"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/public/sites/{slug}/pages/{page}/render\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/public/sites/{slug}/pages/{page}/render', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/public/sites/{slug}/pages/{page}/render');"}]}},"/api/v1/public/sites/{slug}/contacts/{component}/token":{"get":{"operationId":"public.contact-token","summary":"Get a short-lived token for a published contact form","description":"Get a short-lived token for a published contact form. Role: public. See the developer guide for limits and workflows.","tags":["public"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"my-company"},{"name":"component","in":"path","required":true,"schema":{"type":"string"},"example":"contact"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/public/sites/{slug}/contacts/{component}/token\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/public/sites/{slug}/contacts/{component}/token', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/public/sites/{slug}/contacts/{component}/token');"}]}},"/api/v1/contacts":{"post":{"operationId":"contacts.submit","summary":"Submit a published contact form into its owner inbox","description":"Submit a published contact form into its owner inbox. Role: public. See the developer guide for limits and workflows.","tags":["contacts"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","maxLength":2000},"name":{"type":"string","maxLength":120},"email":{"type":"string","maxLength":254},"subject":{"type":"string","maxLength":200},"message":{"type":"string","maxLength":5000},"website":{"type":"string","maxLength":500}},"required":["token","name","email","message"],"additionalProperties":false},"example":{"token":"TOKEN_FROM_PUBLISHED_PAGE","name":"Visitor","email":"visitor@example.com","message":"I would like to learn about your services."}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/contacts\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/contacts', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/contacts', requestBody);"}]}},"/api/v1/sample-data":{"get":{"operationId":"sample-data","summary":"Get sample JSON for AJAX panel demonstrations","description":"Get sample JSON for AJAX panel demonstrations. Role: public. See the developer guide for limits and workflows.","tags":["sample-data"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/sample-data\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/sample-data', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/sample-data');"}]}},"/api/v1/media":{"get":{"operationId":"media.list","summary":"List images uploaded by your account","description":"List images uploaded by your account. Role: user. See the developer guide for limits and workflows.","tags":["media"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":[],"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/media\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/media', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/media');"}]},"post":{"operationId":"media.upload","summary":"Upload a PNG, JPEG or WebP as base64 JSON","description":"Upload a PNG, JPEG or WebP as base64 JSON. Role: user. See the developer guide for limits and workflows.","tags":["media"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string","maxLength":5600000}},"required":["data"],"additionalProperties":false},"example":{"data":"BASE64_ENCODED_IMAGE"}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/media\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/media', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/media', requestBody);"}]}},"/api/v1/media/{mediaId}":{"delete":{"operationId":"media.delete","summary":"Delete your uploaded image","description":"Delete your uploaded image. Role: user. See the developer guide for limits and workflows.","tags":["media"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"mediaId","in":"path","required":true,"schema":{"type":"string"},"example":"example"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X DELETE \"https://webapi.iist.lk/api/v1/media/{mediaId}\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('DELETE', '/api/v1/media/{mediaId}', null);"},{"lang":"JavaScript","source":"const data = await client.request('DELETE', '/api/v1/media/{mediaId}');"}]}},"/api/v1/modules":{"get":{"operationId":"modules.catalogue","summary":"List published module versions and endpoint metadata","description":"List published module versions and endpoint metadata. Role: public. See the developer guide for limits and workflows.","tags":["modules"],"security":[],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":[],"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"public","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/modules\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/modules', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/modules');"}]}},"/api/v1/developer/packages":{"get":{"operationId":"packages.list","summary":"List your immutable packages and review states","description":"List your immutable packages and review states. Role: developer. See the developer guide for limits and workflows.","tags":["packages"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"type":"object","properties":{},"required":[],"additionalProperties":true},"maxItems":1000},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":[],"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"developer","x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/developer/packages\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/developer/packages', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/developer/packages');"}]},"post":{"operationId":"packages.upload","summary":"Upload a module bundle for validation and isolated testing","description":"Upload a module bundle for validation and isolated testing. Role: developer. See the developer guide for limits and workflows.","tags":["packages"],"security":[{"BearerAuth":[]}],"responses":{"201":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"developer","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"manifest":{"type":"object","properties":{},"required":[],"additionalProperties":true},"files":{"type":"object","properties":{},"required":[],"additionalProperties":true}},"required":["manifest","files"],"additionalProperties":false}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/developer/packages\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/developer/packages', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/developer/packages', requestBody);"}]}},"/api/v1/developer/packages/{id}":{"get":{"operationId":"packages.get","summary":"Inspect package source, hash, test report and review note","description":"Inspect package source, hash, test report and review note. Role: developer. See the developer guide for limits and workflows.","tags":["packages"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"developer","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/developer/packages/{id}\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/developer/packages/{id}', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/developer/packages/{id}');"}]}},"/api/v1/developer/packages/{id}/test":{"post":{"operationId":"packages.test","summary":"Lint and execute every declared test in the isolated worker","description":"Lint and execute every declared test in the isolated worker. Role: developer. See the developer guide for limits and workflows.","tags":["packages"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"developer","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"example":{}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/developer/packages/{id}/test\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/developer/packages/{id}/test', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/developer/packages/{id}/test', requestBody);"}]}},"/api/v1/developer/packages/{id}/sandbox":{"post":{"operationId":"packages.sandbox","summary":"Call a private development operation in the isolated worker","description":"Call a private development operation in the isolated worker. Role: developer. See the developer guide for limits and workflows.","tags":["packages"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"developer","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"operationId":{"type":"string","maxLength":100},"input":{"type":"object","properties":{},"required":[],"additionalProperties":true}},"required":["operationId","input"],"additionalProperties":false},"example":{"operationId":"hello.greet","input":{"name":"IIST"}}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/developer/packages/{id}/sandbox\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/developer/packages/{id}/sandbox', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/developer/packages/{id}/sandbox', requestBody);"}]}},"/api/v1/developer/packages/{id}/submit":{"post":{"operationId":"packages.submit","summary":"Submit a tested package for administrative review","description":"Submit a tested package for administrative review. Role: developer. See the developer guide for limits and workflows.","tags":["packages"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"developer","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"example":{}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/developer/packages/{id}/submit\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/developer/packages/{id}/submit', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/developer/packages/{id}/submit', requestBody);"}]}},"/api/v1/developer/packages/{id}/openapi":{"get":{"operationId":"packages.docs","summary":"Get private development OpenAPI documentation","description":"Get private development OpenAPI documentation. Role: developer. See the developer guide for limits and workflows.","tags":["packages"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"developer","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/developer/packages/{id}/openapi\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/developer/packages/{id}/openapi', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/developer/packages/{id}/openapi');"}]}},"/api/v1/admin/packages/{id}/approve":{"post":{"operationId":"packages.approve","summary":"Approve an immutable module version","description":"Approve an immutable module version. Role: admin. See the developer guide for limits and workflows.","tags":["packages"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"admin","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":4000}},"required":[],"additionalProperties":false},"example":{"note":"Reviewed source, contract and test results."}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/admin/packages/{id}/approve\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/admin/packages/{id}/approve', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/admin/packages/{id}/approve', requestBody);"}]}},"/api/v1/admin/packages/{id}/reject":{"post":{"operationId":"packages.reject","summary":"Reject an immutable module version","description":"Reject an immutable module version. Role: admin. See the developer guide for limits and workflows.","tags":["packages"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"admin","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":4000}},"required":[],"additionalProperties":false},"example":{"note":"Reviewed source, contract and test results."}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/admin/packages/{id}/reject\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/admin/packages/{id}/reject', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/admin/packages/{id}/reject', requestBody);"}]}},"/api/v1/admin/packages/{id}/publish":{"post":{"operationId":"packages.publish","summary":"Publish an immutable module version","description":"Publish an immutable module version. Role: admin. See the developer guide for limits and workflows.","tags":["packages"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"admin","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":4000}},"required":[],"additionalProperties":false},"example":{"note":"Reviewed source, contract and test results."}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/admin/packages/{id}/publish\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/admin/packages/{id}/publish', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/admin/packages/{id}/publish', requestBody);"}]}},"/api/v1/admin/packages/{id}/disable":{"post":{"operationId":"packages.disable","summary":"Disable an immutable module version","description":"Disable an immutable module version. Role: admin. See the developer guide for limits and workflows.","tags":["packages"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"admin","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":4000}},"required":[],"additionalProperties":false},"example":{"note":"Reviewed source, contract and test results."}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/admin/packages/{id}/disable\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/admin/packages/{id}/disable', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/admin/packages/{id}/disable', requestBody);"}]}},"/api/v1/admin/modules/{name}/rollback":{"post":{"operationId":"modules.rollback","summary":"Point active routing back to a published version","description":"Point active routing back to a published version. Role: admin. See the developer guide for limits and workflows.","tags":["modules"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"admin","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"},"example":"iist.hello"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"string","maxLength":20}},"required":["version"],"additionalProperties":false},"example":{"version":"1.0.0"}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X POST \"https://webapi.iist.lk/api/v1/admin/modules/{name}/rollback\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('POST', '/api/v1/admin/modules/{name}/rollback', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('POST', '/api/v1/admin/modules/{name}/rollback', requestBody);"}]}},"/api/v1/storage/{module}/{key}":{"get":{"operationId":"storage.get","summary":"Read a module value isolated to your account","description":"Read a module value isolated to your account. Role: user. See the developer guide for limits and workflows.","tags":["storage"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"module","in":"path","required":true,"schema":{"type":"string"},"example":"iist.hello"},{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"settings"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X GET \"https://webapi.iist.lk/api/v1/storage/{module}/{key}\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('GET', '/api/v1/storage/{module}/{key}', null);"},{"lang":"JavaScript","source":"const data = await client.request('GET', '/api/v1/storage/{module}/{key}');"}]},"put":{"operationId":"storage.put","summary":"Write a JSON value to your account module storage","description":"Write a JSON value to your account module storage. Role: user. See the developer guide for limits and workflows.","tags":["storage"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"module","in":"path","required":true,"schema":{"type":"string"},"example":"iist.hello"},{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"settings"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{}},"required":["value"],"additionalProperties":false},"example":{"value":{"setting":"example"}}}}},"x-codeSamples":[{"lang":"Shell","source":"curl -X PUT \"https://webapi.iist.lk/api/v1/storage/{module}/{key}\" -H \"Authorization: Bearer $IIST_TOKEN\" -H \"Content-Type: application/json\" --data-binary @request.json"},{"lang":"PHP","source":"$data = $client->request('PUT', '/api/v1/storage/{module}/{key}', json_decode(file_get_contents('request.json'), true));"},{"lang":"JavaScript","source":"const data = await client.request('PUT', '/api/v1/storage/{module}/{key}', requestBody);"}]},"delete":{"operationId":"storage.delete","summary":"Delete a value in your account module storage","description":"Delete a value in your account module storage. Role: user. See the developer guide for limits and workflows.","tags":["storage"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{},"required":[],"additionalProperties":true},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":40},"apiVersion":{"type":"string","maxLength":10},"sandbox":{"type":"boolean"}},"required":["requestId","apiVersion","sandbox"],"additionalProperties":false}},"required":["ok","data","meta"],"additionalProperties":false},"example":{"ok":true,"data":{},"meta":{"requestId":"EXAMPLE_REQUEST_ID","apiVersion":"v1","sandbox":true}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_401","message":"Authentication required"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"403":{"description":"Permission denied","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_403","message":"Permission denied"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_404","message":"Not found"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"409":{"description":"Version or state conflict","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_409","message":"Version or state conflict"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"413":{"description":"Body too large","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_413","message":"Body too large"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"415":{"description":"Use JSON","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_415","message":"Use JSON"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_422","message":"Validation failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_429","message":"Rate limit exceeded"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"502":{"description":"Module execution failed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_502","message":"Module execution failed"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_503","message":"Service unavailable"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":1000}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","maxLength":1000}},"required":["requestId"],"additionalProperties":false}},"required":["ok","error","meta"],"additionalProperties":false},"example":{"ok":false,"error":{"code":"HTTP_500","message":"Internal error"},"meta":{"requestId":"EXAMPLE_REQUEST_ID"}}}}}},"x-required-role":"user","parameters":[{"name":"module","in":"path","required":true,"schema":{"type":"string"},"example":"iist.hello"},{"name":"key","in":"path","required":true,"schema":{"type":"string"},"example":"settings"}],"x-codeSamples":[{"lang":"Shell","source":"curl -X DELETE \"https://webapi.iist.lk/api/v1/storage/{module}/{key}\" -H \"Authorization: Bearer $IIST_TOKEN\""},{"lang":"PHP","source":"$data = $client->request('DELETE', '/api/v1/storage/{module}/{key}', null);"},{"lang":"JavaScript","source":"const data = await client.request('DELETE', '/api/v1/storage/{module}/{key}');"}]}}}}