{"openapi":"3.1.0","info":{"title":"Tool Store Developer API","description":"Tool Development Services API - Infrastructure services for tools","version":"1.0.0"},"paths":{"/v1/tool-user-data/":{"post":{"tags":["Tool User Data"],"summary":"Create User Data","description":"Create new tool user data","operationId":"create_user_data_v1_tool_user_data__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolUserDataCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolUserDataResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/tool-user-data/{dev_slug}/{tool_slug}/user/{user_id}":{"get":{"tags":["Tool User Data"],"summary":"Get User Data By User Id","description":"Get tool user data by user ID","operationId":"get_user_data_by_user_id_v1_tool_user_data__dev_slug___tool_slug__user__user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolUserDataResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Tool User Data"],"summary":"Update User Data By User Id","description":"Update tool user data by user ID","operationId":"update_user_data_by_user_id_v1_tool_user_data__dev_slug___tool_slug__user__user_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolUserDataUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolUserDataResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Tool User Data"],"summary":"Delete User Data By User Id","description":"Delete tool user data by user ID","operationId":"delete_user_data_by_user_id_v1_tool_user_data__dev_slug___tool_slug__user__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tool-user-data/{dev_slug}/{tool_slug}/document/{doc_id}":{"get":{"tags":["Tool User Data"],"summary":"Get User Data By Document Id","description":"Get tool user data by document ID","operationId":"get_user_data_by_document_id_v1_tool_user_data__dev_slug___tool_slug__document__doc_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","title":"Doc Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolUserDataResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Tool User Data"],"summary":"Update User Data By Document Id","description":"Update tool user data by document ID","operationId":"update_user_data_by_document_id_v1_tool_user_data__dev_slug___tool_slug__document__doc_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","title":"Doc Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolUserDataUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolUserDataResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Tool User Data"],"summary":"Delete User Data By Document Id","description":"Delete tool user data by document ID","operationId":"delete_user_data_by_document_id_v1_tool_user_data__dev_slug___tool_slug__document__doc_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","title":"Doc Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tool-user-data/{dev_slug}/{tool_slug}":{"get":{"tags":["Tool User Data"],"summary":"List User Data","description":"List all tool user data with pagination","operationId":"list_user_data_v1_tool_user_data__dev_slug___tool_slug__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":10,"title":"Per Page"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolUserDataList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tool-user-data/{dev_slug}/{tool_slug}/user/{user_id}/all":{"get":{"tags":["Tool User Data"],"summary":"List User Data By User","description":"List all tool user data for a specific user","operationId":"list_user_data_by_user_v1_tool_user_data__dev_slug___tool_slug__user__user_id__all_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ToolUserDataResponse"},"title":"Response List User Data By User V1 Tool User Data  Dev Slug   Tool Slug  User  User Id  All Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tool-user-data/sub-collection":{"post":{"tags":["Tool User Data"],"summary":"Create Sub Collection Data","description":"Create new document in sub-collection","operationId":"create_sub_collection_data_v1_tool_user_data_sub_collection_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"query","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"query","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_id","in":"query","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"sub_collection","in":"query","required":true,"schema":{"type":"string","title":"Sub Collection"}},{"name":"document_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolUserDataResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tool-user-data/sub-collection/{dev_slug}/{tool_slug}/{user_id}/{sub_collection}/{document_id}":{"get":{"tags":["Tool User Data"],"summary":"Get Sub Collection Data","description":"Get document from sub-collection","operationId":"get_sub_collection_data_v1_tool_user_data_sub_collection__dev_slug___tool_slug___user_id___sub_collection___document_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"sub_collection","in":"path","required":true,"schema":{"type":"string","title":"Sub Collection"}},{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolUserDataResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Tool User Data"],"summary":"Update Sub Collection Data","description":"Update document in sub-collection","operationId":"update_sub_collection_data_v1_tool_user_data_sub_collection__dev_slug___tool_slug___user_id___sub_collection___document_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"sub_collection","in":"path","required":true,"schema":{"type":"string","title":"Sub Collection"}},{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolUserDataResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Tool User Data"],"summary":"Delete Sub Collection Data","description":"Delete document from sub-collection","operationId":"delete_sub_collection_data_v1_tool_user_data_sub_collection__dev_slug___tool_slug___user_id___sub_collection___document_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"sub_collection","in":"path","required":true,"schema":{"type":"string","title":"Sub Collection"}},{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tool-user-data/sub-collection/{dev_slug}/{tool_slug}/{user_id}/{sub_collection}":{"get":{"tags":["Tool User Data"],"summary":"List Sub Collection Data","description":"List documents in sub-collection with pagination","operationId":"list_sub_collection_data_v1_tool_user_data_sub_collection__dev_slug___tool_slug___user_id___sub_collection__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"sub_collection","in":"path","required":true,"schema":{"type":"string","title":"Sub Collection"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":10,"title":"Per Page"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolUserDataList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Tool User Data"],"summary":"Delete Entire Sub Collection","description":"Delete entire sub-collection and all its documents","operationId":"delete_entire_sub_collection_v1_tool_user_data_sub_collection__dev_slug___tool_slug___user_id___sub_collection__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"sub_collection","in":"path","required":true,"schema":{"type":"string","title":"Sub Collection"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tool-user-data/health":{"get":{"tags":["Tool User Data"],"summary":"Health Check","description":"Health check for tool user data service","operationId":"health_check_v1_tool_user_data_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/tool-storage/upload":{"post":{"tags":["Tool Storage"],"summary":"Upload File","description":"Upload a file to tool storage","operationId":"upload_file_v1_tool_storage_upload_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"query","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"query","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_slug","in":"query","required":true,"schema":{"type":"string","title":"User Slug"}},{"name":"file_name","in":"query","required":true,"schema":{"type":"string","title":"File Name"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_file_v1_tool_storage_upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolStorageUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tool-storage/generate-upload-url":{"post":{"tags":["Tool Storage"],"summary":"Generate Upload Url","description":"Generate a presigned URL for direct file upload","operationId":"generate_upload_url_v1_tool_storage_generate_upload_url_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolStorageUploadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolStorageUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/tool-storage/download/{dev_slug}/{tool_slug}/{user_slug}/{file_name}":{"get":{"tags":["Tool Storage"],"summary":"Download File","description":"Get download information for a file","operationId":"download_file_v1_tool_storage_download__dev_slug___tool_slug___user_slug___file_name__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_slug","in":"path","required":true,"schema":{"type":"string","title":"User Slug"}},{"name":"file_name","in":"path","required":true,"schema":{"type":"string","title":"File Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolStorageDownloadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tool-storage/delete/{dev_slug}/{tool_slug}/{user_slug}/{file_name}":{"delete":{"tags":["Tool Storage"],"summary":"Delete File","description":"Delete a file from tool storage","operationId":"delete_file_v1_tool_storage_delete__dev_slug___tool_slug___user_slug___file_name__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_slug","in":"path","required":true,"schema":{"type":"string","title":"User Slug"}},{"name":"file_name","in":"path","required":true,"schema":{"type":"string","title":"File Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tool-storage/list/{dev_slug}/{tool_slug}/{user_slug}":{"get":{"tags":["Tool Storage"],"summary":"List Files","description":"List files in tool storage for a specific user","operationId":"list_files_v1_tool_storage_list__dev_slug___tool_slug___user_slug__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_slug","in":"path","required":true,"schema":{"type":"string","title":"User Slug"}},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"File path prefix to filter results","title":"Prefix"},"description":"File path prefix to filter results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolStorageListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tool-storage/delete-all/{dev_slug}/{tool_slug}/{user_slug}":{"delete":{"tags":["Tool Storage"],"summary":"Delete All User Files","description":"Delete all files for a specific user","operationId":"delete_all_user_files_v1_tool_storage_delete_all__dev_slug___tool_slug___user_slug__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dev_slug","in":"path","required":true,"schema":{"type":"string","title":"Dev Slug"}},{"name":"tool_slug","in":"path","required":true,"schema":{"type":"string","title":"Tool Slug"}},{"name":"user_slug","in":"path","required":true,"schema":{"type":"string","title":"User Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tool-storage/health":{"get":{"tags":["Tool Storage"],"summary":"Health Check","description":"Health check for tool storage service","operationId":"health_check_v1_tool_storage_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/tool-auth/refresh":{"post":{"tags":["Tool Auth"],"summary":"Refresh Oauth Token","description":"Refresh an OAuth access token for a provider.\n\nSecurity: Requires a valid Firebase bearer token via the standard auth dependency.","operationId":"refresh_oauth_token_v1_tool_auth_refresh_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthRefreshRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthRefreshResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/tool-auth/health":{"get":{"tags":["Tool Auth"],"summary":"Health Check","description":"Health check for tool auth service.","operationId":"health_check_v1_tool_auth_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health Check","description":"Health check endpoint","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Root","description":"Root endpoint with API information","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"ApiResponse":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether operation was successful"},"message":{"type":"string","title":"Message","description":"Response message"},"data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Data","description":"Response data"}},"type":"object","required":["success","message"],"title":"ApiResponse","description":"Standard API response"},"Body_upload_file_v1_tool_storage_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_file_v1_tool_storage_upload_post"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"OAuthRefreshRequest":{"properties":{"provider":{"type":"string","title":"Provider","description":"OAuth provider (e.g., 'google')"},"dev_slug":{"type":"string","title":"Dev Slug","description":"Developer slug"},"tool_slug":{"type":"string","title":"Tool Slug","description":"Tool slug"},"user_id":{"type":"string","title":"User Id","description":"User ID"},"user_slug":{"type":"string","title":"User Slug","description":"User slug"},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token","description":"Refresh token for the provider"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope","description":"Optional scope override for the provider refresh request"}},"type":"object","required":["provider","dev_slug","tool_slug","user_id","user_slug"],"title":"OAuthRefreshRequest","description":"Request payload to refresh an OAuth access token.\n\n- provider: OAuth provider identifier (e.g., \"google\").\n- dev_slug/tool_slug: Identify the tool; useful for auditing and policy.\n- user_id/user_slug: Identify the user; useful for policy and storage associations.\n- refresh_token: Optional. If omitted, the server may look up a stored token\n  via internal mechanisms (not implemented in this version).\n- scope: Optional provider scope override."},"OAuthRefreshResponse":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether refresh succeeded"},"message":{"type":"string","title":"Message","description":"Response message"},"provider":{"type":"string","title":"Provider","description":"OAuth provider"},"access_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token","description":"New access token"},"token_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Type","description":"Token type (e.g., Bearer)"},"expires_in":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires In","description":"Seconds until expiry"},"expiry":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expiry","description":"Epoch seconds for token expiry when available (computed from expires_in)"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope","description":"Scopes associated with the token"},"id_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id Token","description":"ID token when returned by provider"},"raw":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Raw","description":"Raw provider response for debugging/auditing"}},"type":"object","required":["success","message","provider"],"title":"OAuthRefreshResponse","description":"Response payload containing refreshed token information."},"ToolStorageDownloadResponse":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether download was successful"},"message":{"type":"string","title":"Message","description":"Response message"},"file_path":{"type":"string","title":"File Path","description":"Full path of the file"},"download_url":{"type":"string","title":"Download Url","description":"Download URL for the file"},"content_type":{"type":"string","title":"Content Type","description":"MIME type of the file"},"file_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size","description":"File size in bytes"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At","description":"File creation timestamp"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"File last update timestamp"}},"type":"object","required":["success","message","file_path","download_url","content_type"],"title":"ToolStorageDownloadResponse","description":"Response model for file download"},"ToolStorageFileInfo":{"properties":{"file_name":{"type":"string","title":"File Name","description":"File name with path"},"file_path":{"type":"string","title":"File Path","description":"Full storage path"},"content_type":{"type":"string","title":"Content Type","description":"MIME type of the file"},"file_size":{"type":"integer","title":"File Size","description":"File size in bytes"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"File creation timestamp"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"File last update timestamp"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url","description":"Download URL for the file"}},"type":"object","required":["file_name","file_path","content_type","file_size","created_at","updated_at"],"title":"ToolStorageFileInfo","description":"Information about a file in tool storage"},"ToolStorageListResponse":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether listing was successful"},"message":{"type":"string","title":"Message","description":"Response message"},"files":{"items":{"$ref":"#/components/schemas/ToolStorageFileInfo"},"type":"array","title":"Files","description":"List of files"},"total_files":{"type":"integer","title":"Total Files","description":"Total number of files"},"total_size":{"type":"integer","title":"Total Size","description":"Total size of all files in bytes"}},"type":"object","required":["success","message","files","total_files","total_size"],"title":"ToolStorageListResponse","description":"Response model for listing files"},"ToolStorageUploadRequest":{"properties":{"dev_slug":{"type":"string","title":"Dev Slug","description":"Developer slug identifier"},"tool_slug":{"type":"string","title":"Tool Slug","description":"Tool slug identifier"},"user_slug":{"type":"string","title":"User Slug","description":"User slug identifier"},"file_name":{"type":"string","title":"File Name","description":"File name with optional path (e.g., 'images/profile.jpg')"},"content_type":{"type":"string","title":"Content Type","description":"MIME type of the file"}},"type":"object","required":["dev_slug","tool_slug","user_slug","file_name","content_type"],"title":"ToolStorageUploadRequest","description":"Request model for uploading file to tool storage"},"ToolStorageUploadResponse":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether upload was successful"},"message":{"type":"string","title":"Message","description":"Response message"},"file_path":{"type":"string","title":"File Path","description":"Full path where file was stored"},"upload_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Upload Url","description":"Presigned upload URL if applicable"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url","description":"Download URL for the file"}},"type":"object","required":["success","message","file_path"],"title":"ToolStorageUploadResponse","description":"Response model for file upload"},"ToolUserDataCreate":{"properties":{"dev_slug":{"type":"string","title":"Dev Slug","description":"Developer slug identifier"},"tool_slug":{"type":"string","title":"Tool Slug","description":"Tool slug identifier"},"user_id":{"type":"string","title":"User Id","description":"User ID who owns this data"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"User email associated with this data"},"data":{"additionalProperties":true,"type":"object","title":"Data","description":"User data to store"},"sub_collection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Collection","description":"Sub-collection name (e.g., 'notes', 'profiles')"},"document_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Id","description":"Custom document ID for sub-collection"}},"type":"object","required":["dev_slug","tool_slug","user_id","data"],"title":"ToolUserDataCreate","description":"Request model for creating tool user data"},"ToolUserDataList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ToolUserDataResponse"},"type":"array","title":"Items","description":"List of user data entries"},"total":{"type":"integer","title":"Total","description":"Total number of entries"},"page":{"type":"integer","title":"Page","description":"Current page number"},"per_page":{"type":"integer","title":"Per Page","description":"Number of items per page"}},"type":"object","required":["items","total","page","per_page"],"title":"ToolUserDataList","description":"Response model for listing tool user data"},"ToolUserDataResponse":{"properties":{"id":{"type":"string","title":"Id","description":"Document ID"},"dev_slug":{"type":"string","title":"Dev Slug","description":"Developer slug identifier"},"tool_slug":{"type":"string","title":"Tool Slug","description":"Tool slug identifier"},"user_id":{"type":"string","title":"User Id","description":"User ID who owns this data"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"User email associated with this data"},"data":{"additionalProperties":true,"type":"object","title":"Data","description":"User data"},"sub_collection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Collection","description":"Sub-collection name if applicable"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Last update timestamp"}},"type":"object","required":["id","dev_slug","tool_slug","user_id","data","created_at","updated_at"],"title":"ToolUserDataResponse","description":"Response model for tool user data"},"ToolUserDataUpdate":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data","description":"User data to update"}},"type":"object","required":["data"],"title":"ToolUserDataUpdate","description":"Request model for updating tool user data"},"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"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}