{"name":"framework","stage":"ga","description":"Package framework is document types you define: describe a record once, then create, list, submit and cancel documents against it.","operations":[{"operationId":"get_framework_doctypes","method":"GET","href":"/v1/framework/doctypes","summary":"Returns every DocType defined in the caller's org."},{"operationId":"post_framework_doctypes","method":"POST","href":"/v1/framework/doctypes","summary":"Defines a DocType in the caller's org: the metadata that gives a document surface its fields, its naming rule, whether it has a submit/cancel lifecycle, and which role may do what to it."},{"operationId":"delete_framework_doctypes_by_name","method":"DELETE","href":"/v1/framework/doctypes/{name}","summary":"Removes a DocType and every document stored under it."},{"operationId":"get_framework_doctypes_by_name","method":"GET","href":"/v1/framework/doctypes/{name}","summary":"Returns one DocType definition — its fields, naming rule, permissions and lifecycle flags."},{"operationId":"put_framework_doctypes_by_name","method":"PUT","href":"/v1/framework/doctypes/{name}","summary":"Replaces a DocType definition wholesale (PUT semantics): the stored definition becomes the body."},{"operationId":"get_framework_modules","method":"GET","href":"/v1/framework/modules","summary":"Returns every app lane compiled into this deployment and the DocTypes each one installs."},{"operationId":"get_framework_modules_by_module","method":"GET","href":"/v1/framework/modules/{module}","summary":"Returns one app lane's install state for the caller's org: the DocTypes the lane declares, and which of them already exist in the org."},{"operationId":"post_framework_modules_by_module_install","method":"POST","href":"/v1/framework/modules/{module}/install","summary":"Creates an app lane's DocTypes in the caller's org."},{"operationId":"get_framework_summary","method":"GET","href":"/v1/framework/summary","summary":"Reports how much of the DocType surface the caller's org uses: how many DocTypes it has defined, and how many documents exist across them."},{"operationId":"get_framework_by_doctype","method":"GET","href":"/v1/framework/{doctype}","summary":"Returns the caller org's documents of one DocType, filtered, ordered and projected by the query."},{"operationId":"post_framework_by_doctype","method":"POST","href":"/v1/framework/{doctype}","summary":"Create one document of a DocType, from that DocType's own fields."},{"operationId":"delete_framework_by_doctype_by_name","method":"DELETE","href":"/v1/framework/{doctype}/{name}","summary":"Removes one document, after its on_trash hooks agree."},{"operationId":"get_framework_by_doctype_by_name","method":"GET","href":"/v1/framework/{doctype}/{name}","summary":"Returns one document by name, with Password fields redacted."},{"operationId":"put_framework_by_doctype_by_name","method":"PUT","href":"/v1/framework/{doctype}/{name}","summary":"Replace a draft document's field data wholesale."},{"operationId":"post_framework_by_doctype_by_name_cancel","method":"POST","href":"/v1/framework/{doctype}/{name}/cancel","summary":"Moves a submitted document to cancelled (docstatus 1 → 2) after its on_cancel hooks agree."},{"operationId":"post_framework_by_doctype_by_name_submit","method":"POST","href":"/v1/framework/{doctype}/{name}/submit","summary":"Moves a draft to submitted (docstatus 0 → 1) after its on_submit hooks agree."}],"_links":{"describedby":{"href":"/v1/openapi.json?capability=framework"},"self":{"href":"/v1/framework"},"up":{"href":"/v1"}}}