{ "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}/purge": { "post": { "tags": [ "trees" ], "summary": "Purge Tree", "description": "Permanently delete a soft-deleted tree and all its data \u2014 irreversible.\nOwner-only; the tree must be in the trash and `confirm_name` must match.", "operationId": "purge_tree_api_v1_trees__tree_id__purge_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/TreePurge" } } } }, "responses": { "204": { "description": "Successful Response" }, "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" } }, { "name": "ids", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Ids" } } ], "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/deceased-by-child": { "get": { "tags": [ "cleanup" ], "summary": "Preview Deceased By Child", "description": "People with a child born on/before the cutoff \u2014 necessarily deceased even\nwhen their own birth date is missing. Apply via POST .../cleanup/deceased.", "operationId": "preview_deceased_by_child_api_v1_trees__tree_id__cleanup_deceased_by_child_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": 1900, "title": "Born On Or Before" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DeceasedByChildCandidate" }, "title": "Response Preview Deceased By Child Api V1 Trees Tree Id Cleanup Deceased By Child Get" } } } }, "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" }, "DeceasedByChildCandidate": { "properties": { "person_id": { "type": "string", "format": "uuid", "title": "Person Id" }, "name": { "type": "string", "title": "Name" }, "child_birth_year": { "type": "integer", "title": "Child Birth Year" } }, "type": "object", "required": [ "person_id", "name", "child_birth_year" ], "title": "DeceasedByChildCandidate" }, "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" }, "TreePurge": { "properties": { "confirm_name": { "type": "string", "title": "Confirm Name" } }, "type": "object", "required": [ "confirm_name" ], "title": "TreePurge" }, "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" } } } }