{"openapi":"3.1.0","info":{"title":"handbill","version":"0.1.0","description":"Hand someone a page: one self-contained HTML file at an unguessable, immutable URL."},"paths":{"/v1/pages/{hash}":{"put":{"tags":["Pages"],"operationId":"pages.publish","parameters":[{"name":"hash","in":"path","schema":{"type":"string","pattern":"^[0-9a-f]{12}$"},"required":true}],"security":[{"bearer":[]}],"responses":{"200":{"description":"PublishResult","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishResult"}}}},"400":{"description":"HashMismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HashMismatchEncoded"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedEncoded"}}}},"413":{"description":"TooLarge","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooLargeEncoded"}}}}},"requestBody":{"content":{"text/html":{"schema":{"type":"string","format":"binary"}}},"required":true}},"delete":{"tags":["Pages"],"operationId":"pages.remove","parameters":[{"name":"hash","in":"path","schema":{"type":"string","pattern":"^[0-9a-f]{12}$"},"required":true}],"security":[{"bearer":[]}],"responses":{"204":{"description":"<No Content>"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedEncoded"}}}}}}},"/v1/pages":{"get":{"tags":["Pages"],"operationId":"pages.list","parameters":[],"security":[{"bearer":[]}],"responses":{"200":{"description":"PageList","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedEncoded"}}}}}}},"/v1/aliases/{name}":{"put":{"tags":["Aliases"],"operationId":"aliases.set","parameters":[{"name":"name","in":"path","schema":{"type":"string","pattern":"^(?!api$)(?![0-9a-f]{12}$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"},"required":true}],"security":[{"bearer":[]}],"responses":{"200":{"description":"Alias","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Alias"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedEncoded"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundEncoded"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AliasTarget"}}},"required":true}},"delete":{"tags":["Aliases"],"operationId":"aliases.remove","parameters":[{"name":"name","in":"path","schema":{"type":"string","pattern":"^(?!api$)(?![0-9a-f]{12}$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"},"required":true}],"security":[{"bearer":[]}],"responses":{"204":{"description":"<No Content>"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedEncoded"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundEncoded"}}}}}}},"/v1/aliases":{"get":{"tags":["Aliases"],"operationId":"aliases.list","parameters":[],"security":[{"bearer":[]}],"responses":{"200":{"description":"AliasList","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AliasList"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedEncoded"}}}},"404":{"description":"NotFound","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundEncoded"}}}}}}},"/v1/health":{"get":{"tags":["Meta"],"operationId":"meta.health","parameters":[],"security":[],"responses":{"200":{"description":"Health","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}}},"components":{"schemas":{"PublishResult":{"type":"object","properties":{"hash":{"type":"string","pattern":"^[0-9a-f]{12}$"},"url":{"type":"string"},"created":{"type":"boolean"}},"required":["hash","url","created"],"additionalProperties":false},"HashMismatchEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["HashMismatch"]},"expected":{"type":"string","pattern":"^[0-9a-f]{12}$"}},"required":["_tag","expected"],"additionalProperties":false},"TooLargeEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["TooLarge"]},"maxBytes":{"type":"integer","minimum":0}},"required":["_tag","maxBytes"],"additionalProperties":false},"UnauthorizedEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["Unauthorized"]}},"required":["_tag"],"additionalProperties":false},"Page":{"type":"object","properties":{"hash":{"type":"string","pattern":"^[0-9a-f]{12}$"},"url":{"type":"string"},"title":{"type":"string"},"publishedAt":{"type":"string"},"size":{"type":"integer","minimum":0}},"required":["hash","url","title","publishedAt","size"],"additionalProperties":false},"PageList":{"type":"object","properties":{"pages":{"type":"array","items":{"$ref":"#/components/schemas/Page"}}},"required":["pages"],"additionalProperties":false},"AliasTarget":{"type":"object","properties":{"hash":{"type":"string","pattern":"^[0-9a-f]{12}$"}},"required":["hash"],"additionalProperties":false},"Alias":{"type":"object","properties":{"name":{"type":"string","pattern":"^(?!api$)(?![0-9a-f]{12}$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"},"hash":{"type":"string","pattern":"^[0-9a-f]{12}$"},"url":{"type":"string"}},"required":["name","hash","url"],"additionalProperties":false},"NotFoundEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["NotFound"]}},"required":["_tag"],"additionalProperties":false},"AliasList":{"type":"object","properties":{"aliases":{"type":"array","items":{"$ref":"#/components/schemas/Alias"}}},"required":["aliases"],"additionalProperties":false},"Health":{"type":"object","properties":{"ok":{"type":"boolean"},"mode":{"type":"string","enum":["secret","accounts"]},"zone":{"type":"string"}},"required":["ok","mode","zone"],"additionalProperties":false}},"securitySchemes":{"bearer":{"type":"http","scheme":"Bearer"}}},"security":[],"tags":[{"name":"Pages","description":"Publish, list and unpublish documents."},{"name":"Aliases","description":"Point a readable name at a hash. Absent unless the deployment enables it."},{"name":"Meta","description":"Endpoints that need no token."}]}