{"openapi":"3.0.1","info":{"title":"User API","description":"API для управления пользователями банка.\n\n## Основные возможности:\n- Создание пользователя (требуется заголовок X-secret)\n- Получение пользователя по ID\n- Получение списка всех пользователей\n- Удаление пользователя (требуется заголовок X-secret)\n\n## Авторизация:\nДля операций создания и удаления требуется заголовок `X-secret` с корректным значением.\n\n## Форматы данных:\n- **phone** - 11 цифр, начинается с 7 (например: 79001234567)\n- **email** - валидный email адрес\n- **passportData.series** - ровно 4 цифры\n- **passportData.number** - ровно 6 цифр\n- **birthDate/issueDate** - формат DD-MM-YYYY\n- **embossingName** - только заглавные латинские буквы и пробелы\n- **managerPin** - формат X_XXXX (буква, подчеркивание, 4 символа)\n- **gender** - MALE или FEMALE\n- **clientType** - UP, FL или IP\n- **account** - RUR, USD или EUR\n","contact":{"name":"Alfa Campus QA","email":"campus-qa@alfabank.ru"},"version":"1.0"},"servers":[{"url":"http://alfa-campus-qa.ru/rest/practice/cards/user-api","description":"Generated server url"}],"paths":{"/api/v1/users":{"get":{"tags":["user-controller"],"operationId":"getAllUsers","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserResponseDto"}}}}}}},"post":{"tags":["user-controller"],"operationId":"createUser","parameters":[{"name":"X-secret","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRequestDto"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserResponseDto"}}}}}}},"/api/v1/users/{id}":{"get":{"tags":["user-controller"],"operationId":"getUserById","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserResponseDto"}}}}}},"delete":{"tags":["user-controller"],"operationId":"deleteUser","parameters":[{"name":"X-secret","in":"header","required":false,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}}},"components":{"schemas":{"AddressDto":{"required":["building","city","country","region","street"],"type":"object","properties":{"country":{"maxLength":150,"minLength":0,"type":"string"},"region":{"maxLength":150,"minLength":0,"type":"string"},"city":{"maxLength":150,"minLength":0,"type":"string"},"street":{"maxLength":150,"minLength":0,"type":"string"},"building":{"maxLength":150,"minLength":0,"type":"string"},"apartment":{"maxLength":150,"minLength":0,"type":"string"}}},"ContactInfoDto":{"required":["email","phone"],"type":"object","properties":{"phone":{"pattern":"^7\\d{10}$","type":"string"},"email":{"maxLength":150,"minLength":0,"type":"string"}}},"PassportDataDto":{"required":["birthDate","birthPlace","issueDate","number","series"],"type":"object","properties":{"birthDate":{"pattern":"^\\d{2}-\\d{2}-\\d{4}$","type":"string"},"birthPlace":{"maxLength":150,"minLength":0,"type":"string"},"issueDate":{"pattern":"^\\d{2}-\\d{2}-\\d{4}$","type":"string"},"series":{"pattern":"^\\d{4}$","type":"string"},"number":{"pattern":"^\\d{6}$","type":"string"}}},"UserRequestDto":{"required":["account","actualAddress","bankruptEntrepreneur","bankruptIndividual","clientType","contactInfo","embossingName","firstName","gender","lastName","managerPin","passportData","registrationAddress"],"type":"object","properties":{"firstName":{"maxLength":150,"minLength":0,"type":"string"},"middleName":{"maxLength":150,"minLength":0,"type":"string"},"lastName":{"maxLength":150,"minLength":0,"type":"string"},"gender":{"type":"string","enum":["MALE","FEMALE"]},"clientType":{"pattern":"^(UP|FL|IP)$","type":"string"},"bankruptIndividual":{"type":"boolean"},"bankruptEntrepreneur":{"type":"boolean"},"contactInfo":{"$ref":"#/components/schemas/ContactInfoDto"},"embossingName":{"maxLength":150,"minLength":0,"pattern":"^[A-Z\\s]+$","type":"string"},"passportData":{"$ref":"#/components/schemas/PassportDataDto"},"actualAddress":{"$ref":"#/components/schemas/AddressDto"},"registrationAddress":{"$ref":"#/components/schemas/AddressDto"},"account":{"pattern":"^(RUR|USD|EUR)$","type":"string"},"managerPin":{"maxLength":20,"minLength":0,"pattern":"^[A-Z]_[A-Z0-9]{4}$","type":"string"}}},"UserResponseDto":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string"},"middleName":{"type":"string"},"lastName":{"type":"string"},"gender":{"type":"string","enum":["MALE","FEMALE"]},"clientType":{"type":"string"},"bankruptIndividual":{"type":"boolean"},"bankruptEntrepreneur":{"type":"boolean"},"contactInfo":{"$ref":"#/components/schemas/ContactInfoDto"},"embossingName":{"type":"string"},"passportData":{"$ref":"#/components/schemas/PassportDataDto"},"actualAddress":{"$ref":"#/components/schemas/AddressDto"},"registrationAddress":{"$ref":"#/components/schemas/AddressDto"},"account":{"type":"string"},"managerPin":{"type":"string"}}}}}}