c5631d3eab
Provenance had no system-level owner: ownership was only per-tree (TreeMembership), so a self-hosted instance had no operator account and no instance-admin surface. This adds one, declared by environment per the project's twelve-factor rule. - OWNER_EMAIL (comma-separated): the account(s) named here are instance owners. Derived at request time — no DB column, no migration, can't drift from the env, survives DB resets. is_instance_owner()/InstanceOwner dependency in api/deps.py. - Ownership requires a VERIFIED email (independent of REQUIRE_EMAIL_VERIFICATION). Registration is open, so without this an attacker could seize the role by registering the owner address first; verification ties it to inbox control. - GET /api/v1/admin/instance (owner-only): operational status — version, env, user/tree counts, configured AI providers. Deliberately exposes no tree data or PII: instance ownership is an operator role, NOT a privacy-engine bypass. - /users/me reports is_instance_owner; frontend gains an owner-only /admin page and a conditional sidebar link (server-enforced, not just client-hidden). Found-and-fixed by an adversarial security review before merge: the verified-email land-grab (above) and a frontend null-deref where the admin page crashed on 401/5xx instead of failing closed. Docs: .env.example + ARCHITECTURE (notes the not-a-privacy-bypass boundary and the verified-email requirement). Tests: owner matching, the land-grab guard, /users/me, and owner-only /admin. Suite 96 passing. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Justin Paul <justin@jpaul.me>
7351 lines
180 KiB
JSON
7351 lines
180 KiB
JSON
{
|
|
"openapi": "3.1.0",
|
|
"info": {
|
|
"title": "Provenance",
|
|
"description": "Provenance API \u2014 family and land provenance.",
|
|
"version": "0.0.0"
|
|
},
|
|
"paths": {
|
|
"/health": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Health",
|
|
"operationId": "health_health_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Response Health Health Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/health/ready": {
|
|
"get": {
|
|
"tags": [
|
|
"health"
|
|
],
|
|
"summary": "Ready",
|
|
"operationId": "ready_health_ready_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Response Ready Health Ready Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/register": {
|
|
"post": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Register",
|
|
"operationId": "register_api_v1_auth_register_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RegisterRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SessionRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/login": {
|
|
"post": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Login",
|
|
"operationId": "login_api_v1_auth_login_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SessionRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/logout": {
|
|
"post": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Logout",
|
|
"operationId": "logout_api_v1_auth_logout_post",
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/verify-email": {
|
|
"post": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Verify Email",
|
|
"operationId": "verify_email_api_v1_auth_verify_email_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/request-password-reset": {
|
|
"post": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Request Password Reset",
|
|
"operationId": "request_password_reset_api_v1_auth_request_password_reset_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PasswordResetRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"202": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Response Request Password Reset Api V1 Auth Request Password Reset Post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/reset-password": {
|
|
"post": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Reset Password",
|
|
"operationId": "reset_password_api_v1_auth_reset_password_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PasswordResetConfirm"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/change-password": {
|
|
"post": {
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Change Password",
|
|
"operationId": "change_password_api_v1_auth_change_password_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PasswordChange"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/users/me": {
|
|
"get": {
|
|
"tags": [
|
|
"users"
|
|
],
|
|
"summary": "Read Me",
|
|
"operationId": "read_me_api_v1_users_me_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserRead"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"users"
|
|
],
|
|
"summary": "Delete Account",
|
|
"description": "Delete the account: the user, their owned trees, and their sessions.\nRequires retyping the account email as a guard.",
|
|
"operationId": "delete_account_api_v1_users_me_delete",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/x-www-form-urlencoded": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_delete_account_api_v1_users_me_delete"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/users/me/self-person": {
|
|
"patch": {
|
|
"tags": [
|
|
"users"
|
|
],
|
|
"summary": "Set Self Person",
|
|
"description": "Link (or unlink) the Person record that represents this account.",
|
|
"operationId": "set_self_person_api_v1_users_me_self_person_patch",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserSelfPersonUpdate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/users/me/export": {
|
|
"get": {
|
|
"tags": [
|
|
"users"
|
|
],
|
|
"summary": "Export Account",
|
|
"description": "Download a full backup (JSON + media) of every tree the user owns.",
|
|
"operationId": "export_account_api_v1_users_me_export_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/users/me/import": {
|
|
"post": {
|
|
"tags": [
|
|
"users"
|
|
],
|
|
"summary": "Import Account",
|
|
"description": "Restore a previously-exported backup into new trees (non-destructive).",
|
|
"operationId": "import_account_api_v1_users_me_import_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_import_account_api_v1_users_me_import_post"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Response Import Account Api V1 Users Me Import Post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees": {
|
|
"post": {
|
|
"tags": [
|
|
"trees"
|
|
],
|
|
"summary": "Create Tree",
|
|
"operationId": "create_tree_api_v1_trees_post",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TreeCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TreeRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"trees"
|
|
],
|
|
"summary": "List My Trees",
|
|
"operationId": "list_my_trees_api_v1_trees_get",
|
|
"parameters": [
|
|
{
|
|
"name": "deleted",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Deleted"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TreeRead"
|
|
},
|
|
"title": "Response List My Trees Api V1 Trees Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"trees"
|
|
],
|
|
"summary": "Get Tree",
|
|
"operationId": "get_tree_api_v1_trees__tree_id__get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TreeRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"trees"
|
|
],
|
|
"summary": "Update Tree",
|
|
"operationId": "update_tree_api_v1_trees__tree_id__patch",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TreeUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TreeRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"trees"
|
|
],
|
|
"summary": "Delete Tree",
|
|
"operationId": "delete_tree_api_v1_trees__tree_id__delete",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/restore": {
|
|
"post": {
|
|
"tags": [
|
|
"trees"
|
|
],
|
|
"summary": "Restore Tree",
|
|
"operationId": "restore_tree_api_v1_trees__tree_id__restore_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TreeRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/persons": {
|
|
"post": {
|
|
"tags": [
|
|
"persons"
|
|
],
|
|
"summary": "Create Person",
|
|
"operationId": "create_person_api_v1_trees__tree_id__persons_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"persons"
|
|
],
|
|
"summary": "List Persons",
|
|
"operationId": "list_persons_api_v1_trees__tree_id__persons_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "deleted",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Deleted"
|
|
}
|
|
},
|
|
{
|
|
"name": "q",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Q"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonRead"
|
|
},
|
|
"title": "Response List Persons Api V1 Trees Tree Id Persons Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/persons/{person_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"persons"
|
|
],
|
|
"summary": "Update Person",
|
|
"operationId": "update_person_api_v1_trees__tree_id__persons__person_id__patch",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "person_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"persons"
|
|
],
|
|
"summary": "Delete Person",
|
|
"description": "Delete a person. ``cascade=true`` also deletes all descendants. Returns\nthe number of persons deleted (1 unless cascading).",
|
|
"operationId": "delete_person_api_v1_trees__tree_id__persons__person_id__delete",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "person_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "cascade",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Cascade"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"title": "Response Delete Person Api V1 Trees Tree Id Persons Person Id Delete"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"persons"
|
|
],
|
|
"summary": "Get Person",
|
|
"operationId": "get_person_api_v1_trees__tree_id__persons__person_id__get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "person_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/persons/{person_id}/restore": {
|
|
"post": {
|
|
"tags": [
|
|
"persons"
|
|
],
|
|
"summary": "Restore Person",
|
|
"operationId": "restore_person_api_v1_trees__tree_id__persons__person_id__restore_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "person_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/persons/{person_id}/names": {
|
|
"get": {
|
|
"tags": [
|
|
"names"
|
|
],
|
|
"summary": "List Names",
|
|
"operationId": "list_names_api_v1_trees__tree_id__persons__person_id__names_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "person_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/NameRead"
|
|
},
|
|
"title": "Response List Names Api V1 Trees Tree Id Persons Person Id Names Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"names"
|
|
],
|
|
"summary": "Create Name",
|
|
"operationId": "create_name_api_v1_trees__tree_id__persons__person_id__names_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "person_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NameCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NameRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/persons/{person_id}/names/{name_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"names"
|
|
],
|
|
"summary": "Update Name",
|
|
"operationId": "update_name_api_v1_trees__tree_id__persons__person_id__names__name_id__patch",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "person_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "name_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Name Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NameUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NameRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"names"
|
|
],
|
|
"summary": "Delete Name",
|
|
"operationId": "delete_name_api_v1_trees__tree_id__persons__person_id__names__name_id__delete",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "person_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "name_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Name Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/events": {
|
|
"post": {
|
|
"tags": [
|
|
"events"
|
|
],
|
|
"summary": "Create Event",
|
|
"operationId": "create_event_api_v1_trees__tree_id__events_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EventCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EventRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"events"
|
|
],
|
|
"summary": "List Tree Events",
|
|
"operationId": "list_tree_events_api_v1_trees__tree_id__events_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EventRead"
|
|
},
|
|
"title": "Response List Tree Events Api V1 Trees Tree Id Events Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/persons/{person_id}/events": {
|
|
"get": {
|
|
"tags": [
|
|
"events"
|
|
],
|
|
"summary": "List Person Events",
|
|
"operationId": "list_person_events_api_v1_trees__tree_id__persons__person_id__events_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "person_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EventRead"
|
|
},
|
|
"title": "Response List Person Events Api V1 Trees Tree Id Persons Person Id Events Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/events/{event_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"events"
|
|
],
|
|
"summary": "Update Event",
|
|
"operationId": "update_event_api_v1_trees__tree_id__events__event_id__patch",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "event_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Event Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EventUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EventRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"events"
|
|
],
|
|
"summary": "Delete Event",
|
|
"operationId": "delete_event_api_v1_trees__tree_id__events__event_id__delete",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "event_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Event Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/relationships": {
|
|
"post": {
|
|
"tags": [
|
|
"relationships"
|
|
],
|
|
"summary": "Create Relationship",
|
|
"operationId": "create_relationship_api_v1_trees__tree_id__relationships_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RelationshipCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RelationshipRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"relationships"
|
|
],
|
|
"summary": "List Relationships",
|
|
"operationId": "list_relationships_api_v1_trees__tree_id__relationships_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RelationshipRead"
|
|
},
|
|
"title": "Response List Relationships Api V1 Trees Tree Id Relationships Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/persons/{person_id}/relationships": {
|
|
"get": {
|
|
"tags": [
|
|
"relationships"
|
|
],
|
|
"summary": "List Person Relationships",
|
|
"operationId": "list_person_relationships_api_v1_trees__tree_id__persons__person_id__relationships_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "person_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RelationshipRead"
|
|
},
|
|
"title": "Response List Person Relationships Api V1 Trees Tree Id Persons Person Id Relationships Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/relationships/{relationship_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"relationships"
|
|
],
|
|
"summary": "Update Relationship",
|
|
"operationId": "update_relationship_api_v1_trees__tree_id__relationships__relationship_id__patch",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "relationship_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Relationship Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RelationshipUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RelationshipRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"relationships"
|
|
],
|
|
"summary": "Delete Relationship",
|
|
"operationId": "delete_relationship_api_v1_trees__tree_id__relationships__relationship_id__delete",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "relationship_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Relationship Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/sources": {
|
|
"post": {
|
|
"tags": [
|
|
"sources"
|
|
],
|
|
"summary": "Create Source",
|
|
"operationId": "create_source_api_v1_trees__tree_id__sources_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SourceCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SourceRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"sources"
|
|
],
|
|
"summary": "List Sources",
|
|
"operationId": "list_sources_api_v1_trees__tree_id__sources_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SourceRead"
|
|
},
|
|
"title": "Response List Sources Api V1 Trees Tree Id Sources Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/sources/{source_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"sources"
|
|
],
|
|
"summary": "Get Source",
|
|
"operationId": "get_source_api_v1_trees__tree_id__sources__source_id__get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "source_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Source Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SourceRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"sources"
|
|
],
|
|
"summary": "Update Source",
|
|
"operationId": "update_source_api_v1_trees__tree_id__sources__source_id__patch",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "source_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Source Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SourceUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SourceRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"sources"
|
|
],
|
|
"summary": "Delete Source",
|
|
"operationId": "delete_source_api_v1_trees__tree_id__sources__source_id__delete",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "source_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Source Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/citations": {
|
|
"post": {
|
|
"tags": [
|
|
"citations"
|
|
],
|
|
"summary": "Create Citation",
|
|
"operationId": "create_citation_api_v1_trees__tree_id__citations_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CitationCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CitationRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"citations"
|
|
],
|
|
"summary": "List Citations",
|
|
"operationId": "list_citations_api_v1_trees__tree_id__citations_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/CitationRead"
|
|
},
|
|
"title": "Response List Citations Api V1 Trees Tree Id Citations Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/citations/{citation_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"citations"
|
|
],
|
|
"summary": "Update Citation",
|
|
"operationId": "update_citation_api_v1_trees__tree_id__citations__citation_id__patch",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "citation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Citation Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CitationUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CitationRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"citations"
|
|
],
|
|
"summary": "Delete Citation",
|
|
"operationId": "delete_citation_api_v1_trees__tree_id__citations__citation_id__delete",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "citation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Citation Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/media": {
|
|
"post": {
|
|
"tags": [
|
|
"media"
|
|
],
|
|
"summary": "Upload Media",
|
|
"operationId": "upload_media_api_v1_trees__tree_id__media_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_upload_media_api_v1_trees__tree_id__media_post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MediaRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"media"
|
|
],
|
|
"summary": "List Media",
|
|
"operationId": "list_media_api_v1_trees__tree_id__media_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MediaRead"
|
|
},
|
|
"title": "Response List Media Api V1 Trees Tree Id Media Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/media/{media_id}/content": {
|
|
"get": {
|
|
"tags": [
|
|
"media"
|
|
],
|
|
"summary": "Media Content",
|
|
"operationId": "media_content_api_v1_trees__tree_id__media__media_id__content_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "media_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Media Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/media/{media_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"media"
|
|
],
|
|
"summary": "Update Media",
|
|
"operationId": "update_media_api_v1_trees__tree_id__media__media_id__patch",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "media_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Media Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MediaUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MediaRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"media"
|
|
],
|
|
"summary": "Delete Media",
|
|
"operationId": "delete_media_api_v1_trees__tree_id__media__media_id__delete",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "media_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Media Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/gedcom/preview": {
|
|
"post": {
|
|
"tags": [
|
|
"gedcom"
|
|
],
|
|
"summary": "Preview Gedcom",
|
|
"description": "Dry run: report counts and incoming people that look like duplicates of\nexisting ones, so the user can choose how to resolve each before importing.",
|
|
"operationId": "preview_gedcom_api_v1_trees__tree_id__gedcom_preview_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_preview_gedcom_api_v1_trees__tree_id__gedcom_preview_post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ImportPreview"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/gedcom/import": {
|
|
"post": {
|
|
"tags": [
|
|
"gedcom"
|
|
],
|
|
"summary": "Import Gedcom",
|
|
"description": "Import a GEDCOM. ``default_action`` (new|skip|merge|overwrite) applies to\nincoming people that match an existing one; ``resolutions`` is a JSON object\n{xref: {action, target_id}} overriding it per record.",
|
|
"operationId": "import_gedcom_api_v1_trees__tree_id__gedcom_import_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_import_gedcom_api_v1_trees__tree_id__gedcom_import_post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ImportReport"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/gedcom/export": {
|
|
"get": {
|
|
"tags": [
|
|
"gedcom"
|
|
],
|
|
"summary": "Export Gedcom",
|
|
"operationId": "export_gedcom_api_v1_trees__tree_id__gedcom_export_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/cleanup/deceased": {
|
|
"get": {
|
|
"tags": [
|
|
"cleanup"
|
|
],
|
|
"summary": "Preview Deceased",
|
|
"operationId": "preview_deceased_api_v1_trees__tree_id__cleanup_deceased_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "born_on_or_before",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 1930,
|
|
"title": "Born On Or Before"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DeceasedCandidate"
|
|
},
|
|
"title": "Response Preview Deceased Api V1 Trees Tree Id Cleanup Deceased Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"cleanup"
|
|
],
|
|
"summary": "Apply Deceased",
|
|
"operationId": "apply_deceased_api_v1_trees__tree_id__cleanup_deceased_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeceasedApply"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CleanupResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/cleanup/gender/preview": {
|
|
"post": {
|
|
"tags": [
|
|
"cleanup"
|
|
],
|
|
"summary": "Preview Gender",
|
|
"operationId": "preview_gender_api_v1_trees__tree_id__cleanup_gender_preview_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_preview_gender_api_v1_trees__tree_id__cleanup_gender_preview_post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenderProposal"
|
|
},
|
|
"title": "Response Preview Gender Api V1 Trees Tree Id Cleanup Gender Preview Post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/cleanup/gender/guess": {
|
|
"get": {
|
|
"tags": [
|
|
"cleanup"
|
|
],
|
|
"summary": "Guess Gender",
|
|
"description": "Best-guess sex from first names (bundled dictionary) for people missing it.",
|
|
"operationId": "guess_gender_api_v1_trees__tree_id__cleanup_gender_guess_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenderProposal"
|
|
},
|
|
"title": "Response Guess Gender Api V1 Trees Tree Id Cleanup Gender Guess Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/cleanup/gender/from-spouse": {
|
|
"get": {
|
|
"tags": [
|
|
"cleanup"
|
|
],
|
|
"summary": "Guess Gender From Spouse",
|
|
"description": "Infer a missing sex from a partner whose sex is set (opposite-sex couple).",
|
|
"operationId": "guess_gender_from_spouse_api_v1_trees__tree_id__cleanup_gender_from_spouse_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenderProposal"
|
|
},
|
|
"title": "Response Guess Gender From Spouse Api V1 Trees Tree Id Cleanup Gender From Spouse Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/cleanup/gender": {
|
|
"post": {
|
|
"tags": [
|
|
"cleanup"
|
|
],
|
|
"summary": "Apply Gender",
|
|
"operationId": "apply_gender_api_v1_trees__tree_id__cleanup_gender_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GenderApply"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CleanupResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/cleanup/names": {
|
|
"get": {
|
|
"tags": [
|
|
"cleanup"
|
|
],
|
|
"summary": "Preview Names",
|
|
"operationId": "preview_names_api_v1_trees__tree_id__cleanup_names_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/NameIssue"
|
|
},
|
|
"title": "Response Preview Names Api V1 Trees Tree Id Cleanup Names Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"cleanup"
|
|
],
|
|
"summary": "Apply Names",
|
|
"operationId": "apply_names_api_v1_trees__tree_id__cleanup_names_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NameApply"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CleanupResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/public/trees": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Public Directory",
|
|
"operationId": "public_directory_api_v1_public_trees_get",
|
|
"parameters": [
|
|
{
|
|
"name": "q",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Q"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 50,
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"name": "offset",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 0,
|
|
"title": "Offset"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PublicTreeRead"
|
|
},
|
|
"title": "Response Public Directory Api V1 Public Trees Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/public/trees/{tree_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Public Tree",
|
|
"operationId": "public_tree_api_v1_public_trees__tree_id__get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PublicTreeRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/public/trees/{tree_id}/persons": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Public Persons",
|
|
"operationId": "public_persons_api_v1_public_trees__tree_id__persons_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PersonRead"
|
|
},
|
|
"title": "Response Public Persons Api V1 Public Trees Tree Id Persons Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/public/trees/{tree_id}/relationships": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Public Relationships",
|
|
"operationId": "public_relationships_api_v1_public_trees__tree_id__relationships_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RelationshipRead"
|
|
},
|
|
"title": "Response Public Relationships Api V1 Public Trees Tree Id Relationships Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/public/trees/{tree_id}/events": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Public Events",
|
|
"operationId": "public_events_api_v1_public_trees__tree_id__events_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EventRead"
|
|
},
|
|
"title": "Response Public Events Api V1 Public Trees Tree Id Events Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/public/trees/{tree_id}/persons/{person_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Public Person",
|
|
"operationId": "public_person_api_v1_public_trees__tree_id__persons__person_id__get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "person_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PersonRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/public/trees/{tree_id}/persons/{person_id}/names": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Public Person Names",
|
|
"operationId": "public_person_names_api_v1_public_trees__tree_id__persons__person_id__names_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "person_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/NameRead"
|
|
},
|
|
"title": "Response Public Person Names Api V1 Public Trees Tree Id Persons Person Id Names Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/public/trees/{tree_id}/persons/{person_id}/events": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Public Person Events",
|
|
"operationId": "public_person_events_api_v1_public_trees__tree_id__persons__person_id__events_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "person_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EventRead"
|
|
},
|
|
"title": "Response Public Person Events Api V1 Public Trees Tree Id Persons Person Id Events Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/members": {
|
|
"get": {
|
|
"tags": [
|
|
"members"
|
|
],
|
|
"summary": "List Members",
|
|
"operationId": "list_members_api_v1_trees__tree_id__members_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MembershipRead"
|
|
},
|
|
"title": "Response List Members Api V1 Trees Tree Id Members Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"members"
|
|
],
|
|
"summary": "Add Member",
|
|
"operationId": "add_member_api_v1_trees__tree_id__members_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemberAdd"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MembershipRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/members/{membership_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"members"
|
|
],
|
|
"summary": "Update Member",
|
|
"operationId": "update_member_api_v1_trees__tree_id__members__membership_id__patch",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "membership_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Membership Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemberRoleUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MembershipRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"members"
|
|
],
|
|
"summary": "Remove Member",
|
|
"operationId": "remove_member_api_v1_trees__tree_id__members__membership_id__delete",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "membership_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Membership Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/proposals": {
|
|
"get": {
|
|
"tags": [
|
|
"proposals"
|
|
],
|
|
"summary": "List Proposals",
|
|
"operationId": "list_proposals_api_v1_trees__tree_id__proposals_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "status",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ChangeProposalStatus"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Status"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChangeProposalRead"
|
|
},
|
|
"title": "Response List Proposals Api V1 Trees Tree Id Proposals Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"proposals"
|
|
],
|
|
"summary": "Create Proposal",
|
|
"operationId": "create_proposal_api_v1_trees__tree_id__proposals_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChangeProposalCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChangeProposalRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/proposals/{proposal_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"proposals"
|
|
],
|
|
"summary": "Get Proposal",
|
|
"operationId": "get_proposal_api_v1_trees__tree_id__proposals__proposal_id__get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "proposal_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Proposal Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChangeProposalRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"proposals"
|
|
],
|
|
"summary": "Delete Proposal",
|
|
"operationId": "delete_proposal_api_v1_trees__tree_id__proposals__proposal_id__delete",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "proposal_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Proposal Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/proposals/{proposal_id}/apply": {
|
|
"post": {
|
|
"tags": [
|
|
"proposals"
|
|
],
|
|
"summary": "Apply Proposal",
|
|
"operationId": "apply_proposal_api_v1_trees__tree_id__proposals__proposal_id__apply_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "proposal_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Proposal Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ProposalReview"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Data"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChangeProposalRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/proposals/{proposal_id}/reject": {
|
|
"post": {
|
|
"tags": [
|
|
"proposals"
|
|
],
|
|
"summary": "Reject Proposal",
|
|
"operationId": "reject_proposal_api_v1_trees__tree_id__proposals__proposal_id__reject_post",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "proposal_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Proposal Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ProposalReview"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Data"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChangeProposalRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/trees/{tree_id}/ai": {
|
|
"get": {
|
|
"tags": [
|
|
"ai"
|
|
],
|
|
"summary": "Get Ai Policy",
|
|
"operationId": "get_ai_policy_api_v1_trees__tree_id__ai_get",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TreeAiPolicyRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"ai"
|
|
],
|
|
"summary": "Update Ai Policy",
|
|
"operationId": "update_ai_policy_api_v1_trees__tree_id__ai_patch",
|
|
"parameters": [
|
|
{
|
|
"name": "tree_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TreeAiPolicyUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TreeAiPolicyRead"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/admin/instance": {
|
|
"get": {
|
|
"tags": [
|
|
"admin"
|
|
],
|
|
"summary": "Instance Status",
|
|
"description": "Operator dashboard data. Requires the caller to be an instance owner.",
|
|
"operationId": "instance_status_api_v1_admin_instance_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InstanceStatus"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"Body_delete_account_api_v1_users_me_delete": {
|
|
"properties": {
|
|
"confirm_email": {
|
|
"type": "string",
|
|
"title": "Confirm Email"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"confirm_email"
|
|
],
|
|
"title": "Body_delete_account_api_v1_users_me_delete"
|
|
},
|
|
"Body_import_account_api_v1_users_me_import_post": {
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"file"
|
|
],
|
|
"title": "Body_import_account_api_v1_users_me_import_post"
|
|
},
|
|
"Body_import_gedcom_api_v1_trees__tree_id__gedcom_import_post": {
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File"
|
|
},
|
|
"default_action": {
|
|
"type": "string",
|
|
"title": "Default Action",
|
|
"default": "new"
|
|
},
|
|
"resolutions": {
|
|
"type": "string",
|
|
"title": "Resolutions",
|
|
"default": "{}"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"file"
|
|
],
|
|
"title": "Body_import_gedcom_api_v1_trees__tree_id__gedcom_import_post"
|
|
},
|
|
"Body_preview_gedcom_api_v1_trees__tree_id__gedcom_preview_post": {
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"file"
|
|
],
|
|
"title": "Body_preview_gedcom_api_v1_trees__tree_id__gedcom_preview_post"
|
|
},
|
|
"Body_preview_gender_api_v1_trees__tree_id__cleanup_gender_preview_post": {
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"file"
|
|
],
|
|
"title": "Body_preview_gender_api_v1_trees__tree_id__cleanup_gender_preview_post"
|
|
},
|
|
"Body_upload_media_api_v1_trees__tree_id__media_post": {
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File"
|
|
},
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"person_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Person Id"
|
|
},
|
|
"event_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Event Id"
|
|
},
|
|
"source_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"file"
|
|
],
|
|
"title": "Body_upload_media_api_v1_trees__tree_id__media_post"
|
|
},
|
|
"ChangeProposalCreate": {
|
|
"properties": {
|
|
"summary": {
|
|
"type": "string",
|
|
"title": "Summary"
|
|
},
|
|
"rationale": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rationale"
|
|
},
|
|
"origin": {
|
|
"$ref": "#/components/schemas/ChangeProposalOrigin",
|
|
"default": "contributor"
|
|
},
|
|
"operations": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ProposalOperation"
|
|
},
|
|
"type": "array",
|
|
"title": "Operations"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"summary",
|
|
"operations"
|
|
],
|
|
"title": "ChangeProposalCreate"
|
|
},
|
|
"ChangeProposalOrigin": {
|
|
"type": "string",
|
|
"enum": [
|
|
"assistant",
|
|
"contributor"
|
|
],
|
|
"title": "ChangeProposalOrigin"
|
|
},
|
|
"ChangeProposalRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"tree_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
},
|
|
"status": {
|
|
"$ref": "#/components/schemas/ChangeProposalStatus"
|
|
},
|
|
"origin": {
|
|
"$ref": "#/components/schemas/ChangeProposalOrigin"
|
|
},
|
|
"created_by_user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By User Id"
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"title": "Summary"
|
|
},
|
|
"rationale": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rationale"
|
|
},
|
|
"operations": {
|
|
"items": {},
|
|
"type": "array",
|
|
"title": "Operations"
|
|
},
|
|
"reviewed_by_user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reviewed By User Id"
|
|
},
|
|
"reviewed_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reviewed At"
|
|
},
|
|
"review_note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Review Note"
|
|
},
|
|
"apply_error": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Apply Error"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"tree_id",
|
|
"status",
|
|
"origin",
|
|
"created_by_user_id",
|
|
"summary",
|
|
"rationale",
|
|
"operations",
|
|
"reviewed_by_user_id",
|
|
"reviewed_at",
|
|
"review_note",
|
|
"apply_error",
|
|
"created_at"
|
|
],
|
|
"title": "ChangeProposalRead"
|
|
},
|
|
"ChangeProposalStatus": {
|
|
"type": "string",
|
|
"enum": [
|
|
"pending",
|
|
"applied",
|
|
"rejected"
|
|
],
|
|
"title": "ChangeProposalStatus"
|
|
},
|
|
"CitationConfidence": {
|
|
"type": "string",
|
|
"enum": [
|
|
"high",
|
|
"medium",
|
|
"low"
|
|
],
|
|
"title": "CitationConfidence"
|
|
},
|
|
"CitationCreate": {
|
|
"properties": {
|
|
"source_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Source Id"
|
|
},
|
|
"person_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Person Id"
|
|
},
|
|
"event_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Event Id"
|
|
},
|
|
"name_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name Id"
|
|
},
|
|
"relationship_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Relationship Id"
|
|
},
|
|
"page": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Page"
|
|
},
|
|
"detail": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Detail"
|
|
},
|
|
"confidence": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/CitationConfidence"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"source_id"
|
|
],
|
|
"title": "CitationCreate"
|
|
},
|
|
"CitationRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"tree_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
},
|
|
"source_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Source Id"
|
|
},
|
|
"person_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Person Id"
|
|
},
|
|
"event_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Event Id"
|
|
},
|
|
"name_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name Id"
|
|
},
|
|
"relationship_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Relationship Id"
|
|
},
|
|
"page": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Page"
|
|
},
|
|
"detail": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Detail"
|
|
},
|
|
"confidence": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/CitationConfidence"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"tree_id",
|
|
"source_id",
|
|
"person_id",
|
|
"event_id",
|
|
"name_id",
|
|
"relationship_id",
|
|
"page",
|
|
"detail",
|
|
"confidence",
|
|
"created_at"
|
|
],
|
|
"title": "CitationRead"
|
|
},
|
|
"CitationUpdate": {
|
|
"properties": {
|
|
"page": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Page"
|
|
},
|
|
"detail": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Detail"
|
|
},
|
|
"confidence": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/CitationConfidence"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "CitationUpdate"
|
|
},
|
|
"CleanupResult": {
|
|
"properties": {
|
|
"updated": {
|
|
"type": "integer",
|
|
"title": "Updated"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"updated"
|
|
],
|
|
"title": "CleanupResult"
|
|
},
|
|
"ConfiguredProvider": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"model": {
|
|
"type": "string",
|
|
"title": "Model"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"model"
|
|
],
|
|
"title": "ConfiguredProvider"
|
|
},
|
|
"DeceasedApply": {
|
|
"properties": {
|
|
"person_ids": {
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"type": "array",
|
|
"title": "Person Ids"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"person_ids"
|
|
],
|
|
"title": "DeceasedApply"
|
|
},
|
|
"DeceasedCandidate": {
|
|
"properties": {
|
|
"person_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"birth_year": {
|
|
"type": "integer",
|
|
"title": "Birth Year"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"person_id",
|
|
"name",
|
|
"birth_year"
|
|
],
|
|
"title": "DeceasedCandidate"
|
|
},
|
|
"DuplicateMatch": {
|
|
"properties": {
|
|
"xref": {
|
|
"type": "string",
|
|
"title": "Xref"
|
|
},
|
|
"incoming_name": {
|
|
"type": "string",
|
|
"title": "Incoming Name"
|
|
},
|
|
"incoming_birth_year": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Incoming Birth Year"
|
|
},
|
|
"existing_person_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Existing Person Id"
|
|
},
|
|
"existing_name": {
|
|
"type": "string",
|
|
"title": "Existing Name"
|
|
},
|
|
"existing_birth_year": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Existing Birth Year"
|
|
},
|
|
"score": {
|
|
"type": "string",
|
|
"title": "Score"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"xref",
|
|
"incoming_name",
|
|
"existing_person_id",
|
|
"existing_name",
|
|
"score"
|
|
],
|
|
"title": "DuplicateMatch"
|
|
},
|
|
"EventCreate": {
|
|
"properties": {
|
|
"event_type": {
|
|
"type": "string",
|
|
"title": "Event Type"
|
|
},
|
|
"person_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Person Id"
|
|
},
|
|
"relationship_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Relationship Id"
|
|
},
|
|
"place_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Place Id"
|
|
},
|
|
"date_value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date Value"
|
|
},
|
|
"date_start": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date Start"
|
|
},
|
|
"date_end": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date End"
|
|
},
|
|
"date_precision": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date Precision"
|
|
},
|
|
"calendar": {
|
|
"type": "string",
|
|
"title": "Calendar",
|
|
"default": "gregorian"
|
|
},
|
|
"detail": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Detail"
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notes"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"event_type"
|
|
],
|
|
"title": "EventCreate"
|
|
},
|
|
"EventRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"tree_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
},
|
|
"event_type": {
|
|
"type": "string",
|
|
"title": "Event Type"
|
|
},
|
|
"person_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Person Id"
|
|
},
|
|
"relationship_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Relationship Id"
|
|
},
|
|
"place_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Place Id"
|
|
},
|
|
"date_value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date Value"
|
|
},
|
|
"date_start": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date Start"
|
|
},
|
|
"date_end": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date End"
|
|
},
|
|
"date_precision": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date Precision"
|
|
},
|
|
"calendar": {
|
|
"type": "string",
|
|
"title": "Calendar"
|
|
},
|
|
"detail": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Detail"
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notes"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"tree_id",
|
|
"event_type",
|
|
"person_id",
|
|
"relationship_id",
|
|
"place_id",
|
|
"date_value",
|
|
"date_start",
|
|
"date_end",
|
|
"date_precision",
|
|
"calendar",
|
|
"detail",
|
|
"notes",
|
|
"created_at"
|
|
],
|
|
"title": "EventRead"
|
|
},
|
|
"EventUpdate": {
|
|
"properties": {
|
|
"event_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Event Type"
|
|
},
|
|
"place_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Place Id"
|
|
},
|
|
"date_value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date Value"
|
|
},
|
|
"date_start": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date Start"
|
|
},
|
|
"date_end": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date End"
|
|
},
|
|
"date_precision": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Date Precision"
|
|
},
|
|
"calendar": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Calendar"
|
|
},
|
|
"detail": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Detail"
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notes"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "EventUpdate"
|
|
},
|
|
"GenderApply": {
|
|
"properties": {
|
|
"updates": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenderUpdate"
|
|
},
|
|
"type": "array",
|
|
"title": "Updates"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"updates"
|
|
],
|
|
"title": "GenderApply"
|
|
},
|
|
"GenderProposal": {
|
|
"properties": {
|
|
"person_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"proposed_gender": {
|
|
"type": "string",
|
|
"title": "Proposed Gender"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"person_id",
|
|
"name",
|
|
"proposed_gender"
|
|
],
|
|
"title": "GenderProposal"
|
|
},
|
|
"GenderUpdate": {
|
|
"properties": {
|
|
"person_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
},
|
|
"gender": {
|
|
"type": "string",
|
|
"title": "Gender"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"person_id",
|
|
"gender"
|
|
],
|
|
"title": "GenderUpdate"
|
|
},
|
|
"HTTPValidationError": {
|
|
"properties": {
|
|
"detail": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ValidationError"
|
|
},
|
|
"type": "array",
|
|
"title": "Detail"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "HTTPValidationError"
|
|
},
|
|
"ImportPreview": {
|
|
"properties": {
|
|
"counts": {
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object",
|
|
"title": "Counts"
|
|
},
|
|
"potential_duplicates": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DuplicateMatch"
|
|
},
|
|
"type": "array",
|
|
"title": "Potential Duplicates"
|
|
},
|
|
"unmapped_tags": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Unmapped Tags"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"counts",
|
|
"potential_duplicates",
|
|
"unmapped_tags"
|
|
],
|
|
"title": "ImportPreview"
|
|
},
|
|
"ImportReport": {
|
|
"properties": {
|
|
"counts": {
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object",
|
|
"title": "Counts"
|
|
},
|
|
"unmapped_tags": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Unmapped Tags"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"counts",
|
|
"unmapped_tags"
|
|
],
|
|
"title": "ImportReport"
|
|
},
|
|
"InstanceStatus": {
|
|
"properties": {
|
|
"version": {
|
|
"type": "string",
|
|
"title": "Version"
|
|
},
|
|
"env": {
|
|
"type": "string",
|
|
"title": "Env"
|
|
},
|
|
"owner_emails": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Owner Emails"
|
|
},
|
|
"require_email_verification": {
|
|
"type": "boolean",
|
|
"title": "Require Email Verification"
|
|
},
|
|
"user_count": {
|
|
"type": "integer",
|
|
"title": "User Count"
|
|
},
|
|
"tree_count": {
|
|
"type": "integer",
|
|
"title": "Tree Count"
|
|
},
|
|
"default_llm_provider": {
|
|
"type": "string",
|
|
"title": "Default Llm Provider"
|
|
},
|
|
"ai_providers": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ConfiguredProvider"
|
|
},
|
|
"type": "array",
|
|
"title": "Ai Providers"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"version",
|
|
"env",
|
|
"owner_emails",
|
|
"require_email_verification",
|
|
"user_count",
|
|
"tree_count",
|
|
"default_llm_provider",
|
|
"ai_providers"
|
|
],
|
|
"title": "InstanceStatus"
|
|
},
|
|
"LoginRequest": {
|
|
"properties": {
|
|
"email": {
|
|
"type": "string",
|
|
"title": "Email"
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"title": "Password"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"email",
|
|
"password"
|
|
],
|
|
"title": "LoginRequest"
|
|
},
|
|
"MediaRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"tree_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
},
|
|
"original_filename": {
|
|
"type": "string",
|
|
"title": "Original Filename"
|
|
},
|
|
"content_type": {
|
|
"type": "string",
|
|
"title": "Content Type"
|
|
},
|
|
"byte_size": {
|
|
"type": "integer",
|
|
"title": "Byte Size"
|
|
},
|
|
"checksum_sha256": {
|
|
"type": "string",
|
|
"title": "Checksum Sha256"
|
|
},
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"person_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Person Id"
|
|
},
|
|
"event_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Event Id"
|
|
},
|
|
"source_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source Id"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"tree_id",
|
|
"original_filename",
|
|
"content_type",
|
|
"byte_size",
|
|
"checksum_sha256",
|
|
"title",
|
|
"person_id",
|
|
"event_id",
|
|
"source_id",
|
|
"created_at"
|
|
],
|
|
"title": "MediaRead"
|
|
},
|
|
"MediaUpdate": {
|
|
"properties": {
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"person_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Person Id"
|
|
},
|
|
"event_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Event Id"
|
|
},
|
|
"source_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "MediaUpdate"
|
|
},
|
|
"MemberAdd": {
|
|
"properties": {
|
|
"email": {
|
|
"type": "string",
|
|
"title": "Email"
|
|
},
|
|
"role": {
|
|
"$ref": "#/components/schemas/MembershipRole",
|
|
"default": "viewer"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"email"
|
|
],
|
|
"title": "MemberAdd"
|
|
},
|
|
"MemberRoleUpdate": {
|
|
"properties": {
|
|
"role": {
|
|
"$ref": "#/components/schemas/MembershipRole"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"role"
|
|
],
|
|
"title": "MemberRoleUpdate"
|
|
},
|
|
"MembershipRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"user_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "User Id"
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"title": "Email"
|
|
},
|
|
"display_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Display Name"
|
|
},
|
|
"role": {
|
|
"$ref": "#/components/schemas/MembershipRole"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"user_id",
|
|
"email",
|
|
"display_name",
|
|
"role",
|
|
"created_at"
|
|
],
|
|
"title": "MembershipRead"
|
|
},
|
|
"MembershipRole": {
|
|
"type": "string",
|
|
"enum": [
|
|
"owner",
|
|
"editor",
|
|
"viewer"
|
|
],
|
|
"title": "MembershipRole"
|
|
},
|
|
"NameApply": {
|
|
"properties": {
|
|
"edits": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/NameEdit"
|
|
},
|
|
"type": "array",
|
|
"title": "Edits"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"edits"
|
|
],
|
|
"title": "NameApply"
|
|
},
|
|
"NameCreate": {
|
|
"properties": {
|
|
"name_type": {
|
|
"type": "string",
|
|
"title": "Name Type",
|
|
"default": "birth"
|
|
},
|
|
"given": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Given"
|
|
},
|
|
"surname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Surname"
|
|
},
|
|
"prefix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prefix"
|
|
},
|
|
"suffix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Suffix"
|
|
},
|
|
"nickname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nickname"
|
|
},
|
|
"is_primary": {
|
|
"type": "boolean",
|
|
"title": "Is Primary",
|
|
"default": false
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "NameCreate"
|
|
},
|
|
"NameEdit": {
|
|
"properties": {
|
|
"name_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Name Id"
|
|
},
|
|
"given": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Given"
|
|
},
|
|
"surname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Surname"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name_id"
|
|
],
|
|
"title": "NameEdit"
|
|
},
|
|
"NameIssue": {
|
|
"properties": {
|
|
"name_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Name Id"
|
|
},
|
|
"person_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
},
|
|
"given": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Given"
|
|
},
|
|
"surname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Surname"
|
|
},
|
|
"issue": {
|
|
"type": "string",
|
|
"title": "Issue"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name_id",
|
|
"person_id",
|
|
"issue"
|
|
],
|
|
"title": "NameIssue"
|
|
},
|
|
"NameRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"tree_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
},
|
|
"person_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person Id"
|
|
},
|
|
"name_type": {
|
|
"type": "string",
|
|
"title": "Name Type"
|
|
},
|
|
"given": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Given"
|
|
},
|
|
"surname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Surname"
|
|
},
|
|
"prefix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prefix"
|
|
},
|
|
"suffix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Suffix"
|
|
},
|
|
"nickname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nickname"
|
|
},
|
|
"is_primary": {
|
|
"type": "boolean",
|
|
"title": "Is Primary"
|
|
},
|
|
"sort_order": {
|
|
"type": "integer",
|
|
"title": "Sort Order"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"tree_id",
|
|
"person_id",
|
|
"name_type",
|
|
"given",
|
|
"surname",
|
|
"prefix",
|
|
"suffix",
|
|
"nickname",
|
|
"is_primary",
|
|
"sort_order",
|
|
"created_at"
|
|
],
|
|
"title": "NameRead"
|
|
},
|
|
"NameUpdate": {
|
|
"properties": {
|
|
"name_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name Type"
|
|
},
|
|
"given": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Given"
|
|
},
|
|
"surname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Surname"
|
|
},
|
|
"prefix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prefix"
|
|
},
|
|
"suffix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Suffix"
|
|
},
|
|
"nickname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nickname"
|
|
},
|
|
"is_primary": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Is Primary"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "NameUpdate"
|
|
},
|
|
"ParentChildQualifier": {
|
|
"type": "string",
|
|
"enum": [
|
|
"biological",
|
|
"adoptive",
|
|
"step",
|
|
"foster",
|
|
"donor",
|
|
"guardian"
|
|
],
|
|
"title": "ParentChildQualifier",
|
|
"description": "Qualifies a parent_child edge so adoption/donor/blended families are\nfirst-class rather than edge cases (ARCHITECTURE \u00a75)."
|
|
},
|
|
"PasswordChange": {
|
|
"properties": {
|
|
"current_password": {
|
|
"type": "string",
|
|
"title": "Current Password"
|
|
},
|
|
"new_password": {
|
|
"type": "string",
|
|
"minLength": 8,
|
|
"title": "New Password"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"current_password",
|
|
"new_password"
|
|
],
|
|
"title": "PasswordChange"
|
|
},
|
|
"PasswordResetConfirm": {
|
|
"properties": {
|
|
"token": {
|
|
"type": "string",
|
|
"title": "Token"
|
|
},
|
|
"new_password": {
|
|
"type": "string",
|
|
"minLength": 8,
|
|
"title": "New Password"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"token",
|
|
"new_password"
|
|
],
|
|
"title": "PasswordResetConfirm"
|
|
},
|
|
"PasswordResetRequest": {
|
|
"properties": {
|
|
"email": {
|
|
"type": "string",
|
|
"title": "Email"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"email"
|
|
],
|
|
"title": "PasswordResetRequest"
|
|
},
|
|
"PersonCreate": {
|
|
"properties": {
|
|
"given": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Given"
|
|
},
|
|
"surname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Surname"
|
|
},
|
|
"gender": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Gender"
|
|
},
|
|
"is_living": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Is Living"
|
|
},
|
|
"privacy": {
|
|
"$ref": "#/components/schemas/PersonPrivacy",
|
|
"default": "inherit"
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notes"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "PersonCreate"
|
|
},
|
|
"PersonPrivacy": {
|
|
"type": "string",
|
|
"enum": [
|
|
"inherit",
|
|
"private",
|
|
"public"
|
|
],
|
|
"title": "PersonPrivacy",
|
|
"description": "Per-person override of the tree's visibility (PRD US-041)."
|
|
},
|
|
"PersonRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"tree_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
},
|
|
"primary_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Primary Name"
|
|
},
|
|
"gender": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Gender"
|
|
},
|
|
"is_living": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Is Living"
|
|
},
|
|
"privacy": {
|
|
"$ref": "#/components/schemas/PersonPrivacy"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"tree_id",
|
|
"gender",
|
|
"is_living",
|
|
"privacy",
|
|
"created_at"
|
|
],
|
|
"title": "PersonRead"
|
|
},
|
|
"PersonUpdate": {
|
|
"properties": {
|
|
"given": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Given"
|
|
},
|
|
"surname": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Surname"
|
|
},
|
|
"gender": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Gender"
|
|
},
|
|
"is_living": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Is Living"
|
|
},
|
|
"privacy": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PersonPrivacy"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notes"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "PersonUpdate"
|
|
},
|
|
"ProposalOperation": {
|
|
"properties": {
|
|
"op": {
|
|
"type": "string",
|
|
"title": "Op"
|
|
},
|
|
"entity_type": {
|
|
"type": "string",
|
|
"title": "Entity Type"
|
|
},
|
|
"entity_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Entity Id"
|
|
},
|
|
"payload": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Payload",
|
|
"default": {}
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"op",
|
|
"entity_type"
|
|
],
|
|
"title": "ProposalOperation"
|
|
},
|
|
"ProposalReview": {
|
|
"properties": {
|
|
"note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Note"
|
|
},
|
|
"operations": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ProposalOperation"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Operations"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "ProposalReview"
|
|
},
|
|
"PublicTreeRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"visibility": {
|
|
"$ref": "#/components/schemas/TreeVisibility"
|
|
},
|
|
"home_person_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Home Person Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"description",
|
|
"visibility"
|
|
],
|
|
"title": "PublicTreeRead",
|
|
"description": "Tree projection for the public surface \u2014 deliberately omits owner_id so a\npublic/unlisted tree doesn't reveal which account owns it."
|
|
},
|
|
"RegisterRequest": {
|
|
"properties": {
|
|
"email": {
|
|
"type": "string",
|
|
"title": "Email"
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"minLength": 8,
|
|
"title": "Password"
|
|
},
|
|
"display_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Display Name"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"email",
|
|
"password"
|
|
],
|
|
"title": "RegisterRequest"
|
|
},
|
|
"RelationshipCreate": {
|
|
"properties": {
|
|
"type": {
|
|
"$ref": "#/components/schemas/RelationshipType"
|
|
},
|
|
"person_from_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person From Id"
|
|
},
|
|
"person_to_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person To Id"
|
|
},
|
|
"qualifier": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ParentChildQualifier"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notes"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"type",
|
|
"person_from_id",
|
|
"person_to_id"
|
|
],
|
|
"title": "RelationshipCreate"
|
|
},
|
|
"RelationshipRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"tree_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
},
|
|
"type": {
|
|
"$ref": "#/components/schemas/RelationshipType"
|
|
},
|
|
"person_from_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person From Id"
|
|
},
|
|
"person_to_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Person To Id"
|
|
},
|
|
"qualifier": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ParentChildQualifier"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notes"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"tree_id",
|
|
"type",
|
|
"person_from_id",
|
|
"person_to_id",
|
|
"qualifier",
|
|
"notes",
|
|
"created_at"
|
|
],
|
|
"title": "RelationshipRead"
|
|
},
|
|
"RelationshipType": {
|
|
"type": "string",
|
|
"enum": [
|
|
"parent_child",
|
|
"partnership",
|
|
"sibling"
|
|
],
|
|
"title": "RelationshipType"
|
|
},
|
|
"RelationshipUpdate": {
|
|
"properties": {
|
|
"qualifier": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ParentChildQualifier"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"notes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notes"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "RelationshipUpdate"
|
|
},
|
|
"SessionRead": {
|
|
"properties": {
|
|
"user": {
|
|
"$ref": "#/components/schemas/UserRead"
|
|
},
|
|
"token": {
|
|
"type": "string",
|
|
"title": "Token"
|
|
},
|
|
"expires_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Expires At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"user",
|
|
"token",
|
|
"expires_at"
|
|
],
|
|
"title": "SessionRead"
|
|
},
|
|
"SourceCreate": {
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"author": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Author"
|
|
},
|
|
"source_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source Type"
|
|
},
|
|
"repository": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Repository"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
},
|
|
"citation_text": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Citation Text"
|
|
},
|
|
"publication_info": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Publication Info"
|
|
},
|
|
"quality_note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Quality Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"title"
|
|
],
|
|
"title": "SourceCreate"
|
|
},
|
|
"SourceRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"tree_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Tree Id"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"author": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Author"
|
|
},
|
|
"source_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source Type"
|
|
},
|
|
"repository": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Repository"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
},
|
|
"citation_text": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Citation Text"
|
|
},
|
|
"publication_info": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Publication Info"
|
|
},
|
|
"quality_note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Quality Note"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"tree_id",
|
|
"title",
|
|
"author",
|
|
"source_type",
|
|
"repository",
|
|
"url",
|
|
"citation_text",
|
|
"publication_info",
|
|
"quality_note",
|
|
"created_at"
|
|
],
|
|
"title": "SourceRead"
|
|
},
|
|
"SourceUpdate": {
|
|
"properties": {
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"author": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Author"
|
|
},
|
|
"source_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source Type"
|
|
},
|
|
"repository": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Repository"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
},
|
|
"citation_text": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Citation Text"
|
|
},
|
|
"publication_info": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Publication Info"
|
|
},
|
|
"quality_note": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Quality Note"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "SourceUpdate"
|
|
},
|
|
"TokenRequest": {
|
|
"properties": {
|
|
"token": {
|
|
"type": "string",
|
|
"title": "Token"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"token"
|
|
],
|
|
"title": "TokenRequest"
|
|
},
|
|
"TreeAiPolicyRead": {
|
|
"properties": {
|
|
"member_provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Member Provider"
|
|
},
|
|
"recommender_provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Recommender Provider"
|
|
},
|
|
"configured_providers": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ConfiguredProvider"
|
|
},
|
|
"type": "array",
|
|
"title": "Configured Providers"
|
|
},
|
|
"default_provider": {
|
|
"type": "string",
|
|
"title": "Default Provider"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"member_provider",
|
|
"recommender_provider",
|
|
"configured_providers",
|
|
"default_provider"
|
|
],
|
|
"title": "TreeAiPolicyRead"
|
|
},
|
|
"TreeAiPolicyUpdate": {
|
|
"properties": {
|
|
"member_provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Member Provider"
|
|
},
|
|
"recommender_provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Recommender Provider"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "TreeAiPolicyUpdate"
|
|
},
|
|
"TreeCreate": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"visibility": {
|
|
"$ref": "#/components/schemas/TreeVisibility",
|
|
"default": "private"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"title": "TreeCreate"
|
|
},
|
|
"TreeRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"visibility": {
|
|
"$ref": "#/components/schemas/TreeVisibility"
|
|
},
|
|
"owner_id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Owner Id"
|
|
},
|
|
"home_person_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Home Person Id"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"description",
|
|
"visibility",
|
|
"owner_id",
|
|
"created_at"
|
|
],
|
|
"title": "TreeRead"
|
|
},
|
|
"TreeUpdate": {
|
|
"properties": {
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"visibility": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/TreeVisibility"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"home_person_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Home Person Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "TreeUpdate"
|
|
},
|
|
"TreeVisibility": {
|
|
"type": "string",
|
|
"enum": [
|
|
"public",
|
|
"site_members",
|
|
"unlisted",
|
|
"private"
|
|
],
|
|
"title": "TreeVisibility"
|
|
},
|
|
"UserRead": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"title": "Id"
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"title": "Email"
|
|
},
|
|
"display_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Display Name"
|
|
},
|
|
"email_verified_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Email Verified At"
|
|
},
|
|
"self_person_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Self Person Id"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
},
|
|
"is_instance_owner": {
|
|
"type": "boolean",
|
|
"title": "Is Instance Owner",
|
|
"default": false
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"email",
|
|
"display_name",
|
|
"email_verified_at",
|
|
"created_at"
|
|
],
|
|
"title": "UserRead"
|
|
},
|
|
"UserSelfPersonUpdate": {
|
|
"properties": {
|
|
"self_person_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Self Person Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "UserSelfPersonUpdate"
|
|
},
|
|
"ValidationError": {
|
|
"properties": {
|
|
"loc": {
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer"
|
|
}
|
|
]
|
|
},
|
|
"type": "array",
|
|
"title": "Location"
|
|
},
|
|
"msg": {
|
|
"type": "string",
|
|
"title": "Message"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"title": "Error Type"
|
|
},
|
|
"input": {
|
|
"title": "Input"
|
|
},
|
|
"ctx": {
|
|
"type": "object",
|
|
"title": "Context"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"loc",
|
|
"msg",
|
|
"type"
|
|
],
|
|
"title": "ValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|