{ "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/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" } } } } } } }, "/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" } } } } } }, "delete": { "tags": [ "trees" ], "summary": "Delete Tree", "operationId": "delete_tree_api_v1_trees__tree_id__delete", "parameters": [ { "name": "tree_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Tree Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/trees/{tree_id}/restore": { "post": { "tags": [ "trees" ], "summary": "Restore Tree", "operationId": "restore_tree_api_v1_trees__tree_id__restore_post", "parameters": [ { "name": "tree_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Tree Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TreeRead" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/trees/{tree_id}/persons": { "post": { "tags": [ "persons" ], "summary": "Create Person", "operationId": "create_person_api_v1_trees__tree_id__persons_post", "parameters": [ { "name": "tree_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Tree Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonRead" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "persons" ], "summary": "List Persons", "operationId": "list_persons_api_v1_trees__tree_id__persons_get", "parameters": [ { "name": "tree_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Tree Id" } }, { "name": "deleted", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Deleted" } } ], "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}": { "delete": { "tags": [ "persons" ], "summary": "Delete Person", "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" } } ], "responses": { "204": { "description": "Successful Response" }, "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}/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}": { "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}": { "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" } } } } } }, "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}": { "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}": { "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/import": { "post": { "tags": [ "gedcom" ], "summary": "Import Gedcom", "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" } } } } } } } }, "components": { "schemas": { "Body_import_gedcom_api_v1_trees__tree_id__gedcom_import_post": { "properties": { "file": { "type": "string", "contentMediaType": "application/octet-stream", "title": "File" } }, "type": "object", "required": [ "file" ], "title": "Body_import_gedcom_api_v1_trees__tree_id__gedcom_import_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" }, "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" }, "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" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "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" }, "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" }, "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)." }, "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" }, "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" }, "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" }, "TokenRequest": { "properties": { "token": { "type": "string", "title": "Token" } }, "type": "object", "required": [ "token" ], "title": "TokenRequest" }, "TreeCreate": { "properties": { "name": { "type": "string", "title": "Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "visibility": { "$ref": "#/components/schemas/TreeVisibility", "default": "private" } }, "type": "object", "required": [ "name" ], "title": "TreeCreate" }, "TreeRead": { "properties": { "id": { "type": "string", "format": "uuid", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "visibility": { "$ref": "#/components/schemas/TreeVisibility" }, "owner_id": { "type": "string", "format": "uuid", "title": "Owner Id" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" } }, "type": "object", "required": [ "id", "name", "description", "visibility", "owner_id", "created_at" ], "title": "TreeRead" }, "TreeVisibility": { "type": "string", "enum": [ "public", "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" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" } }, "type": "object", "required": [ "id", "email", "display_name", "email_verified_at", "created_at" ], "title": "UserRead" }, "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" } } } }