{"info":{"title":"Barong","description":"RESTful API for barong OAuth server","version":"2.7.0"},"swagger":"2.0","produces":["application/json"],"host":"www.alvand.local","basePath":"/api/v2/barong","tags":[{"name":"api","description":"Operations about apis"}],"paths":{"/api/v2/barong/identity/users/password/reset":{"post":{"description":"Sets new account password(for forgot password)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"email","description":"user email","type":"string","required":true},{"in":"formData","name":"code","description":"code from email again","type":"string","required":true},{"in":"formData","name":"password","description":"User new password","type":"string","required":true},{"in":"formData","name":"confirm_password","description":"User new password","type":"string","required":true}],"responses":{"201":{"description":"Resets password"},"400":{"description":"Required params are empty"},"404":{"description":"Record is not found"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongIdentityUsersPasswordReset"}},"/api/v2/barong/identity/users/password/confirm_code":{"post":{"description":"Just check confirm code for reset password(check authorization for forget password)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"email","description":"Account email","type":"string","required":true},{"in":"formData","name":"code","description":"Confirm code","type":"string","required":true},{"in":"formData","name":"captcha_response","description":"Response from captcha widget","type":"string","required":false}],"responses":{"201":{"description":"reset code is ok"},"400":{"description":"Required params are missing"},"422":{"description":"Validation errors"},"404":{"description":"User doesn't exist"}},"tags":["api"],"operationId":"postApiV2BarongIdentityUsersPasswordConfirmCode"}},"/api/v2/barong/identity/users/password/generate_code":{"post":{"description":"Send password reset instructions(forget password)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"email","description":"Account email","type":"string","required":true},{"in":"formData","name":"captcha_response","description":"Response from captcha widget","type":"string","required":false}],"responses":{"201":{"description":"Generated password reset code"},"400":{"description":"Required params are missing"},"422":{"description":"Validation errors"},"404":{"description":"User doesn't exist"}},"tags":["api"],"operationId":"postApiV2BarongIdentityUsersPasswordGenerateCode"}},"/api/v2/barong/identity/users/email/confirm_email":{"post":{"description":"Confirms an account by Authorization code (verify user email and achieve first label)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"code","description":"Code from email","type":"string","required":true},{"in":"formData","name":"email","description":"user email","type":"string","required":true}],"responses":{"201":{"description":"Confirms an account by Authorization code (verify user email and achieve first label)","schema":{"$ref":"#/definitions/API_V2_Entities_UserWithFullInfo"}},"400":{"description":"Required code are missing"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongIdentityUsersEmailConfirmEmail"}},"/api/v2/barong/identity/users/email/generate_email_code":{"post":{"description":"Send confirmations instructions (code in email)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"email","description":"Account email","type":"string","required":true},{"in":"formData","name":"captcha_response","description":"Response from captcha widget","type":"string","required":false}],"responses":{"201":{"description":"Generated verification code"},"400":{"description":"Required params are missing"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongIdentityUsersEmailGenerateEmailCode"}},"/api/v2/barong/identity/users/register_geetest":{"get":{"description":"Register Geetest captcha","produces":["application/json"],"responses":{"200":{"description":"Register Geetest captcha"}},"tags":["api"],"operationId":"getApiV2BarongIdentityUsersRegisterGeetest"}},"/api/v2/barong/identity/users":{"post":{"description":"Creates new user (sign up)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"email","description":"User Email","type":"string","required":true},{"in":"formData","name":"password","description":"User Password","type":"string","required":true},{"in":"formData","name":"refid","description":"Referral uid","type":"string","required":false},{"in":"formData","name":"captcha_response","description":"Response from captcha widget","type":"string","required":false},{"in":"formData","name":"data","description":"Any additional key: value pairs in json string format","type":"string","required":false}],"responses":{"201":{"description":"Creates new user (sign up)","schema":{"$ref":"#/definitions/API_V2_Entities_UserWithFullInfo"}},"400":{"description":"Required params are missing"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongIdentityUsers"}},"/api/v2/barong/identity/users/access":{"post":{"description":"Creates new whitelist restriction","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"whitelink_token","type":"string","required":true}],"responses":{"200":{"description":"Whitelist restriction was created"},"400":{"description":"Required params are missing"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongIdentityUsersAccess"}},"/api/v2/barong/identity/sessions/resend":{"post":{"description":"Resend confirmations code(authorization code)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"data","description":"Account email or Telephone number","type":"string","required":true},{"in":"formData","name":"action","description":"for what need auth code","type":"string","required":true},{"in":"formData","name":"channel","description":"channel that send in","type":"string","default":"email","required":false},{"in":"formData","name":"captcha_response","description":"Response from captcha widget","type":"string","required":false}],"responses":{"201":{"description":"Generated verification code"},"400":{"description":"Required params are missing"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongIdentitySessionsResend"}},"/api/v2/barong/identity/sessions/auth0":{"post":{"description":"Auth0 authentication by id_token","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"id_token","description":"ID Token","type":"string","required":true}],"responses":{"200":{"description":"User authenticated"},"400":{"description":"Required params are empty"},"404":{"description":"Record is not found"}},"tags":["api"],"operationId":"postApiV2BarongIdentitySessionsAuth0"}},"/api/v2/barong/identity/sessions":{"delete":{"description":"Destroy current session for LogOut","produces":["application/json"],"responses":{"204":{"description":"Session was destroyed"},"400":{"description":"Required params are empty"},"404":{"description":"Record is not found"}},"tags":["api"],"operationId":"deleteApiV2BarongIdentitySessions"},"post":{"description":"Start a new session for every LogIn","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"email","type":"string","required":true},{"in":"formData","name":"password","type":"string","required":true},{"in":"formData","name":"captcha_response","description":"Response from captcha widget","type":"string","required":false},{"in":"formData","name":"otp_code","description":"Code from Google Authenticator","type":"string","required":false}],"responses":{"201":{"description":"Start a new session for every LogIn"},"400":{"description":"Required params are empty"},"404":{"description":"Record is not found"}},"tags":["api"],"operationId":"postApiV2BarongIdentitySessions"}},"/api/v2/barong/identity/configs":{"get":{"description":"Get barong configurations","produces":["application/json"],"responses":{"200":{"description":"Get barong configurations"}},"tags":["api"],"operationId":"getApiV2BarongIdentityConfigs"}},"/api/v2/barong/identity/version":{"get":{"description":"Get barong version","produces":["application/json"],"responses":{"200":{"description":"Get barong version"}},"tags":["api"],"operationId":"getApiV2BarongIdentityVersion"}},"/api/v2/barong/identity/time":{"get":{"description":"Get server current unix timestamp.","produces":["application/json"],"responses":{"200":{"description":"Get server current unix timestamp."}},"tags":["api"],"operationId":"getApiV2BarongIdentityTime"}},"/api/v2/barong/identity/ping":{"get":{"description":"Test connectivity","produces":["application/json"],"responses":{"200":{"description":"Test connectivity"}},"tags":["api"],"operationId":"getApiV2BarongIdentityPing"}},"/api/v2/barong/identity/password/validate":{"post":{"description":"Password strength testing","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"password","description":"User password","type":"string","required":true}],"responses":{"201":{"description":"Password strength testing"}},"tags":["api"],"operationId":"postApiV2BarongIdentityPasswordValidate"}},"/api/v2/barong/resource/swagger_doc/{name}":{"get":{"description":"Swagger compatible API description for specific API","produces":["application/json"],"parameters":[{"in":"path","name":"name","description":"Resource name of mounted API","type":"string","required":true},{"in":"query","name":"locale","description":"Locale of API documentation","type":"string","required":false}],"responses":{"200":{"description":"Swagger compatible API description for specific API"}},"tags":["api"],"operationId":"getApiV2BarongResourceSwaggerDocName"}},"/api/v2/barong/resource/swagger_doc":{"get":{"description":"Swagger compatible API description","produces":["application/json"],"responses":{"200":{"description":"Swagger compatible API description"}},"tags":["api"],"operationId":"getApiV2BarongResourceSwaggerDoc"}},"/api/v2/barong/resource/service_accounts/api_keys/{kid}":{"put":{"description":"Updates an api key","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"service_account_uid","type":"string","required":true},{"in":"path","name":"kid","description":"Service account kid","type":"string","required":true},{"in":"formData","name":"scope","description":"Comma separated scopes","type":"string","required":false},{"in":"formData","name":"state","description":"State of API Key. \"active\" state means key is active and can be used for auth","type":"string","required":false},{"in":"formData","name":"totp_code","description":"Code from Google Authenticator","type":"string","required":true}],"responses":{"200":{"description":"Updates an api key","schema":{"$ref":"#/definitions/API_V2_Entities_APIKey"}},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"putApiV2BarongResourceServiceAccountsApiKeysKid"},"delete":{"description":"Delete an api key for specific service account","produces":["application/json"],"parameters":[{"in":"query","name":"service_account_uid","type":"string","required":true},{"in":"path","name":"kid","description":"Service account kid","type":"string","required":true},{"in":"query","name":"totp_code","description":"Code from Google Authenticator","type":"string","required":true}],"responses":{"204":{"description":"Succefully deleted"},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"}},"tags":["api"],"operationId":"deleteApiV2BarongResourceServiceAccountsApiKeysKid"}},"/api/v2/barong/resource/service_accounts/api_keys":{"post":{"description":"Create api key for specific service account.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"service_account_uid","type":"string","required":true},{"in":"formData","name":"algorithm","description":"Service account algorithm","type":"string","required":true},{"in":"formData","name":"scope","description":"Comma separated scopes","type":"string","required":false},{"in":"formData","name":"totp_code","description":"Code from Google Authenticator","type":"string","required":true}],"responses":{"201":{"description":"Create api key for specific service account.","schema":{"$ref":"#/definitions/API_V2_Entities_APIKey"}},"400":{"description":"Require 2FA and totp code"},"401":{"description":"Invalid bearer token"}},"tags":["api"],"operationId":"postApiV2BarongResourceServiceAccountsApiKeys"},"get":{"description":"List all api keys for specific service account.","produces":["application/json"],"parameters":[{"in":"query","name":"ordering","description":"If set, returned values will be sorted in specific order, defaults to 'asc'.","type":"string","default":"asc","required":false},{"in":"query","name":"order_by","description":"Name of the field, which result will be ordered by.","type":"string","default":"id","required":false},{"in":"query","name":"page","description":"Page number (defaults to 1).","type":"integer","format":"int32","default":1,"required":false},{"in":"query","name":"limit","description":"Number of users per page (defaults to 100, maximum is 100).","type":"integer","format":"int32","default":100,"minimum":1,"maximum":100,"required":false},{"in":"query","name":"service_account_uid","type":"string","required":true}],"responses":{"200":{"description":"List all api keys for specific service account.","schema":{"$ref":"#/definitions/API_V2_Entities_APIKey"}},"400":{"description":"Require 2FA and totp code"},"401":{"description":"Invalid bearer token"}},"tags":["api"],"operationId":"getApiV2BarongResourceServiceAccountsApiKeys"}},"/api/v2/barong/resource/service_accounts":{"get":{"description":"List all service accounts for current user.","produces":["application/json"],"security":[{"BearerToken":[]}],"responses":{"200":{"description":"List all service accounts for current user."},"400":{"description":"Require 2FA and totp code"},"401":{"description":"Invalid bearer token"}},"tags":["api"],"operationId":"getApiV2BarongResourceServiceAccounts"}},"/api/v2/barong/resource/data_storage":{"post":{"description":"Create data storage","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"title","description":"Storage title","type":"string","required":true},{"in":"formData","name":"data","description":"Storage data","type":"string","required":true}],"responses":{"201":{"description":"Data Storage was created"},"401":{"description":"Invalid bearer token"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceDataStorage"}},"/api/v2/barong/resource/api_keys":{"get":{"description":"List all api keys for current account.","produces":["application/json"],"parameters":[{"in":"query","name":"ordering","description":"If set, returned values will be sorted in specific order, defaults to 'asc'.","type":"string","default":"asc","required":false},{"in":"query","name":"order_by","description":"Name of the field, which result will be ordered by.","type":"string","default":"id","required":false},{"in":"query","name":"page","description":"Page number (defaults to 1).","type":"integer","format":"int32","default":1,"required":false},{"in":"query","name":"limit","description":"Number of users per page (defaults to 100, maximum is 100).","type":"integer","format":"int32","default":100,"minimum":1,"maximum":100,"required":false}],"responses":{"200":{"description":"List all api keys for current account.","schema":{"$ref":"#/definitions/API_V2_Entities_APIKey"}},"400":{"description":"Require 2FA and totp code"},"401":{"description":"Invalid bearer token"}},"tags":["api"],"operationId":"getApiV2BarongResourceApiKeys"},"post":{"description":"Create an api key","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"algorithm","description":"API key algorithm","type":"string","required":true},{"in":"formData","name":"scope","description":"Comma separated scopes","type":"string","required":false},{"in":"formData","name":"totp_code","description":"Code from Google Authenticator","type":"string","required":true}],"responses":{"201":{"description":"Create an api key","schema":{"$ref":"#/definitions/API_V2_Entities_APIKey"}},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceApiKeys"}},"/api/v2/barong/resource/api_keys/{kid}":{"delete":{"description":"Delete an api key","produces":["application/json"],"parameters":[{"in":"path","name":"kid","description":"API key kid","type":"string","required":true},{"in":"query","name":"totp_code","description":"Code from Google Authenticator","type":"string","required":true}],"responses":{"204":{"description":"Succefully deleted"},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"}},"tags":["api"],"operationId":"deleteApiV2BarongResourceApiKeysKid"},"patch":{"description":"Updates an api key","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","name":"kid","description":"API key kid","type":"string","required":true},{"in":"formData","name":"scope","description":"Comma separated scopes","type":"string","required":false},{"in":"formData","name":"state","description":"State of API Key. \"active\" state means key is active and can be used for auth","type":"string","required":false},{"in":"formData","name":"totp_code","description":"Code from Google Authenticator","type":"string","required":true}],"responses":{"200":{"description":"Updates an api key","schema":{"$ref":"#/definitions/API_V2_Entities_APIKey"}},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"patchApiV2BarongResourceApiKeysKid"}},"/api/v2/barong/resource/otp/verify":{"post":{"description":"Verify 2FA code(for checking 2fa)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"code","description":"Code from Google Authenticator","type":"string","required":true}],"responses":{"200":{"description":"2FA was verified"},"400":{"description":"2FA has not been enabled for this account or code is missing"},"401":{"description":"Invalid bearer token"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceOtpVerify"}},"/api/v2/barong/resource/otp/disable_email":{"post":{"description":"enter authorization code that send by email (second step for disabling 2FA)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"code","description":"Code from Google Authenticator","type":"string","required":true}],"responses":{"200":{"description":"2FA was disabled"},"400":{"description":"2FA has been enabled for this account or code is missing"},"401":{"description":"Invalid bearer token"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceOtpDisableEmail"}},"/api/v2/barong/resource/otp/disable":{"post":{"description":"Disable 2FA request and send authorization code(first step disabling)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"code","description":"Code from Google Authenticator","type":"string","required":true}],"responses":{"200":{"description":"2FA was disabled"},"400":{"description":"2FA has not been enabled for this account or code is missing"},"401":{"description":"Invalid bearer token"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceOtpDisable"}},"/api/v2/barong/resource/otp/enable_2fa":{"post":{"description":"enter authorization key and enable 2fa(third step for enabling)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"code","description":"Code from email","type":"string","required":true}],"responses":{"200":{"description":"2FA was enabled"},"400":{"description":"2FA has been enabled for this account or code is missing"},"401":{"description":"Invalid bearer token"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceOtpEnable2fa"}},"/api/v2/barong/resource/otp/enable":{"post":{"description":"enter google authenticator code and send authorization code by email(second step for enabling)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"code","description":"Code from Google Authenticator","type":"string","required":true}],"responses":{"200":{"description":"2FA was enabled"},"400":{"description":"2FA has been enabled for this account or code is missing"},"401":{"description":"Invalid bearer token"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceOtpEnable"}},"/api/v2/barong/resource/otp/generate_qrcode":{"post":{"description":"Generate qr code for 2FA (first step for enabling)","produces":["application/json"],"consumes":["application/json"],"responses":{"200":{"description":"QR code was generated"},"400":{"description":"2FA has been enabled for this account"},"401":{"description":"Invalid bearer token"}},"tags":["api"],"operationId":"postApiV2BarongResourceOtpGenerateQrcode"}},"/api/v2/barong/resource/phones/verify":{"post":{"description":"Verify a phone (enter code and verify number)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"phone_number","description":"Phone number with country code(in iran with +98)","type":"string","required":true},{"in":"formData","name":"verification_code","description":"Verification code from call","type":"string","required":true}],"responses":{"201":{"description":"Verify a phone (enter code and verify number)","schema":{"$ref":"#/definitions/API_V2_Entities_UserWithFullInfo"}},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"}},"tags":["api"],"operationId":"postApiV2BarongResourcePhonesVerify"}},"/api/v2/barong/resource/phones/send_code":{"post":{"description":"Resend activation code in call","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"phone_number","description":"Phone number with country code","type":"string","required":true},{"in":"formData","name":"channel","description":"The verification method to use","type":"string","default":"call","enum":["call","sms"],"required":false}],"responses":{"200":{"description":"Activation code was resend"},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourcePhonesSendCode"}},"/api/v2/barong/resource/phones":{"post":{"description":"Add new phone","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"phone_number","description":"Phone number with country code(in iran +98)","type":"string","required":true},{"in":"formData","name":"channel","description":"The verification method to use","type":"string","default":"call","enum":["call","sms"],"required":false}],"responses":{"200":{"description":"New phone was added"},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourcePhones"}},"/api/v2/barong/resource/mobiles/verify":{"post":{"description":"Verify a mobile(enter code and verify number)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"phone_number","description":"phone number with country code(in iran with +98)","type":"string","required":true},{"in":"formData","name":"verification_code","description":"Verification code from sms(this param is for legacy structure must be sms)","type":"string","required":true}],"responses":{"201":{"description":"Verify a mobile(enter code and verify number)","schema":{"$ref":"#/definitions/API_V2_Entities_UserWithFullInfo"}},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"}},"tags":["api"],"operationId":"postApiV2BarongResourceMobilesVerify"}},"/api/v2/barong/resource/mobiles/send_code":{"post":{"description":"Resend activation code for mobile sms","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"phone_number","description":"Phone number with country code( in iran +98 )","type":"string","required":true},{"in":"formData","name":"channel","description":"The verification method to use(this param is for legacy structure must be sms)","type":"string","default":"sms","enum":["call","sms"],"required":false}],"responses":{"200":{"description":"Activation code was resend"},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceMobilesSendCode"}},"/api/v2/barong/resource/mobiles":{"post":{"description":"Add new mobile","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"phone_number","description":"Phone number with country code(in iran +98)","type":"string","required":true},{"in":"formData","name":"channel","description":"The verification method to use(this param is for legacy structure must be sms)","type":"string","default":"sms","enum":["call","sms"],"required":false}],"responses":{"200":{"description":"New phone was added"},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceMobiles"},"get":{"description":"Returns list of user's phones","produces":["application/json"],"responses":{"200":{"description":"Returns list of user's phones","schema":{"$ref":"#/definitions/API_V2_Entities_Phone"}},"401":{"description":"Invalid bearer token"}},"tags":["api"],"operationId":"getApiV2BarongResourceMobiles"}},"/api/v2/barong/resource/documents":{"post":{"description":"Upload a new document for current user","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"doc_type","description":"Document type","type":"string","required":true},{"in":"formData","name":"doc_number","description":"Document number","type":"string","required":true},{"in":"formData","name":"upload","description":"Array of Rack::Multipart::UploadedFile","type":"string","required":true},{"in":"formData","name":"doc_expire","description":"Document expiration date","type":"string","format":"date","required":false},{"in":"formData","name":"doc_category","description":"Category of the submitted document - front/back/selfie etc.","type":"string","required":false},{"in":"formData","name":"identificator","description":"Identificator for documents to be supplied together","type":"string","required":false},{"in":"formData","name":"metadata","description":"Any additional key: value pairs in json string format","type":"string","required":false}],"responses":{"201":{"description":"Document is uploaded"},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceDocuments"},"get":{"description":"Return current user documents list","produces":["application/json"],"responses":{"200":{"description":"Return current user documents list","schema":{"$ref":"#/definitions/API_V2_Entities_Document"}},"401":{"description":"Invalid bearer token"}},"tags":["api"],"operationId":"getApiV2BarongResourceDocuments"}},"/api/v2/barong/resource/profiles/address":{"post":{"description":"Adding Address","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"city","description":"city name","type":"string","required":true},{"in":"formData","name":"province","description":"province name","type":"string","required":true},{"in":"formData","name":"address","description":"address","type":"string","required":true},{"in":"formData","name":"postcode","description":"post code","type":"string","required":true},{"in":"formData","name":"upload","description":"Array of Rack::Multipart::UploadedFile","type":"string","required":true}],"responses":{"201":{"description":"Adding Address","schema":{"$ref":"#/definitions/API_V2_Entities_Profile"}},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"needed data doesnt exist"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceProfilesAddress"}},"/api/v2/barong/resource/profiles/selfie":{"post":{"description":"Create Level two - step three - selfie","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"upload","description":"Array of Rack::Multipart::UploadedFile","type":"string","required":true},{"in":"formData","name":"confirm","description":"Profile confirmation","type":"boolean","default":true,"required":false}],"responses":{"201":{"description":"Create Level two - step three - selfie","schema":{"$ref":"#/definitions/API_V2_Entities_Profile"}},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"409":{"description":"Selfie already exists"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceProfilesSelfie"}},"/api/v2/barong/resource/profiles/treasury/list":{"get":{"description":"Return list of treasuries","produces":["application/json"],"responses":{"200":{"description":"Return list of treasuries","schema":{"$ref":"#/definitions/API_V2_Entities_Treasury"}},"401":{"description":"Invalid bearer token"},"404":{"description":"User has no treasuries"}},"tags":["api"],"operationId":"getApiV2BarongResourceProfilesTreasuryList"}},"/api/v2/barong/resource/profiles/treasury/{id}":{"delete":{"description":"Delete a treasury","produces":["application/json"],"parameters":[{"in":"path","name":"id","type":"integer","format":"int32","required":true}],"responses":{"204":{"description":"Successfully deleted"},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"}},"tags":["api"],"operationId":"deleteApiV2BarongResourceProfilesTreasuryId"}},"/api/v2/barong/resource/profiles/treasury":{"post":{"description":"Create Level one - step three - info bank ","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"data","description":"treasury number","type":"string","required":true},{"in":"formData","name":"kind","description":"iban or card","type":"string","required":true},{"in":"formData","name":"title","description":"treasury name","type":"string","required":false},{"in":"formData","name":"confirm","description":"Treasury confirmation","type":"boolean","default":true,"required":false}],"responses":{"201":{"description":"Create Level one - step three - info bank ","schema":{"$ref":"#/definitions/API_V2_Entities_Profile"}},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"409":{"description":"Bank info already exists"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceProfilesTreasury"}},"/api/v2/barong/resource/profiles":{"put":{"description":"Update a profile for current_user","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"first_name","description":"First Name","type":"string","required":true},{"in":"formData","name":"last_name","description":"Last Name","type":"string","required":true},{"in":"formData","name":"dob","description":"Date of Birth","type":"string","format":"date","required":true},{"in":"formData","name":"national_code","description":"national code","type":"string","required":true},{"in":"formData","name":"upload","description":"Array of Rack::Multipart::UploadedFile","type":"string","required":true},{"in":"formData","name":"confirm","description":"Profile confirmation","type":"boolean","default":true,"required":false}],"responses":{"200":{"description":"Update a profile for current_user","schema":{"$ref":"#/definitions/API_V2_Entities_Profile"}},"401":{"description":"Invalid bearer token"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"putApiV2BarongResourceProfiles"},"post":{"description":"Create Level one - step one - personal info in profiles","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"first_name","description":"First Name","type":"string","required":true},{"in":"formData","name":"last_name","description":"Last Name","type":"string","required":true},{"in":"formData","name":"dob","description":"Date of Birth","type":"string","format":"date","required":true},{"in":"formData","name":"national_code","description":"national code","type":"string","required":true},{"in":"formData","name":"upload","description":"Array of Rack::Multipart::UploadedFile","type":"string","required":true},{"in":"formData","name":"confirm","description":"Profile confirmation","type":"boolean","default":true,"required":false}],"responses":{"201":{"description":"Create Level one - step one - personal info in profiles","schema":{"$ref":"#/definitions/API_V2_Entities_Profile"}},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"409":{"description":"Profile already exists"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceProfiles"}},"/api/v2/barong/resource/profiles/me":{"get":{"description":"Return profiles of current resource owner","produces":["application/json"],"responses":{"200":{"description":"Return profiles of current resource owner","schema":{"$ref":"#/definitions/API_V2_Entities_Profile"}},"401":{"description":"Invalid bearer token"},"404":{"description":"User has no profile"}},"tags":["api"],"operationId":"getApiV2BarongResourceProfilesMe"}},"/api/v2/barong/resource/labels/{key}":{"delete":{"description":"Delete a label with 'public' scope.","produces":["application/json"],"parameters":[{"in":"path","name":"key","description":"Label key.","type":"string","required":true}],"responses":{"204":{"description":"Succefully deleted"},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"}},"tags":["api"],"operationId":"deleteApiV2BarongResourceLabelsKey"},"patch":{"description":"Update a label with 'public' scope.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","name":"key","description":"Label key.","type":"string","required":true},{"in":"formData","name":"value","description":"Label value.","type":"string","required":true}],"responses":{"200":{"description":"Update a label with 'public' scope.","schema":{"$ref":"#/definitions/API_V2_Entities_Label"}},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"patchApiV2BarongResourceLabelsKey"},"get":{"description":"Return a label by key.","produces":["application/json"],"parameters":[{"in":"path","name":"key","description":"Label key.","type":"string","required":true}],"responses":{"200":{"description":"Return a label by key.","schema":{"$ref":"#/definitions/API_V2_Entities_Label"}},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"404":{"description":"Record is not found"}},"tags":["api"],"operationId":"getApiV2BarongResourceLabelsKey"}},"/api/v2/barong/resource/labels":{"post":{"description":"Create a label with 'public' scope.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"key","description":"Label key.","type":"string","required":true},{"in":"formData","name":"value","description":"Label value.","type":"string","required":true}],"responses":{"201":{"description":"Create a label with 'public' scope.","schema":{"$ref":"#/definitions/API_V2_Entities_Label"}},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceLabels"},"get":{"description":"List all labels for current user.","produces":["application/json"],"parameters":[{"in":"query","name":"ordering","description":"If set, returned labels sorted in specific order, default to \"asc\".","type":"string","default":"asc","enum":["asc","desc"],"required":false}],"responses":{"200":{"description":"List all labels for current user.","schema":{"$ref":"#/definitions/API_V2_Entities_Label"}},"401":{"description":"Invalid bearer token"}},"tags":["api"],"operationId":"getApiV2BarongResourceLabels"}},"/api/v2/barong/resource/users/confirm_password":{"post":{"description":"Confirm account password(enter authorization code)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"code","description":"Totp Code from email","type":"string","required":true}],"responses":{"201":{"description":"Changes password"},"400":{"description":"Required params are empty"},"404":{"description":"Record is not found"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceUsersConfirmPassword"}},"/api/v2/barong/resource/users/password":{"put":{"description":"Sets new account password(change password)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"old_password","description":"Previous account password","type":"string","required":true},{"in":"formData","name":"new_password","description":"User password","type":"string","required":true},{"in":"formData","name":"confirm_password","description":"User password","type":"string","required":true}],"responses":{"201":{"description":"Code sent for confirm password"},"400":{"description":"Required params are empty"},"404":{"description":"Record is not found"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"putApiV2BarongResourceUsersPassword"}},"/api/v2/barong/resource/users/activity/{topic}":{"get":{"description":"Returns user activity","produces":["application/json"],"parameters":[{"in":"path","name":"topic","description":"Topic of user activity. Allowed: [all, password, session, otp]","type":"string","required":true},{"in":"query","name":"time_from","description":"An integer represents the seconds elapsed since Unix epoch.If set, only activities created after the time will be returned.","type":"integer","format":"int32","required":false},{"in":"query","name":"time_to","description":"An integer represents the seconds elapsed since Unix epoch.If set, only activities created before the time will be returned.","type":"integer","format":"int32","required":false},{"in":"query","name":"result","description":"Result of user activity. Allowed: [succeed, failed, denied]","type":"string","required":false},{"in":"query","name":"page","description":"Page number (defaults to 1).","type":"integer","format":"int32","default":1,"required":false},{"in":"query","name":"limit","description":"Number of users per page (defaults to 100, maximum is 100).","type":"integer","format":"int32","default":100,"minimum":1,"maximum":100,"required":false}],"responses":{"200":{"description":"Returns user activity","schema":{"$ref":"#/definitions/API_V2_Entities_Activity"}}},"tags":["api"],"operationId":"getApiV2BarongResourceUsersActivityTopic"}},"/api/v2/barong/resource/users/me":{"delete":{"description":"Blocks current user","produces":["application/json"],"parameters":[{"in":"query","name":"password","description":"Account password","type":"string","required":true},{"in":"query","name":"otp_code","description":"Code from Google Authenticator","type":"string","required":false}],"responses":{"204":{"description":"Current user was blocked"}},"tags":["api"],"operationId":"deleteApiV2BarongResourceUsersMe"},"put":{"description":"Updates current user data field","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"data","description":"Any additional key: value pairs in json string format","type":"string","required":true}],"responses":{"200":{"description":"Updates current user data field","schema":{"$ref":"#/definitions/API_V2_Entities_UserWithFullInfo"}}},"tags":["api"],"operationId":"putApiV2BarongResourceUsersMe"},"get":{"description":"Returns current user","produces":["application/json"],"responses":{"200":{"description":"Returns current user","schema":{"$ref":"#/definitions/API_V2_Entities_UserWithFullInfo"}}},"tags":["api"],"operationId":"getApiV2BarongResourceUsersMe"}},"/api/v2/barong/resource/addresses":{"post":{"description":"Upload a new address approval document for current user(this is what ui using now)","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"country","description":"country name","type":"string","required":true},{"in":"formData","name":"address","description":"address","type":"string","required":true},{"in":"formData","name":"upload","description":"Array of Rack::Multipart::UploadedFile","type":"string","required":true},{"in":"formData","name":"city","description":"city name","type":"string","required":true},{"in":"formData","name":"postcode","description":"Any additional key: value pairs in json string format","type":"string","required":true}],"responses":{"201":{"description":"New address approval document was uploaded"},"400":{"description":"Required params are empty"},"401":{"description":"Invalid bearer token"},"422":{"description":"Validation errors"}},"tags":["api"],"operationId":"postApiV2BarongResourceAddresses"}},"/api/v2/barong/public/configs/auth0":{"get":{"description":"Get auth0 configuration","produces":["application/json"],"responses":{"200":{"description":"Get auth0 configuration"}},"tags":["api"],"operationId":"getApiV2BarongPublicConfigsAuth0"}},"/api/v2/barong/public/configs":{"get":{"description":"Get barong configurations","produces":["application/json"],"responses":{"200":{"description":"Get barong configurations"}},"tags":["api"],"operationId":"getApiV2BarongPublicConfigs"}},"/api/v2/barong/public/version":{"get":{"description":"Get barong version","produces":["application/json"],"responses":{"200":{"description":"Get barong version"}},"tags":["api"],"operationId":"getApiV2BarongPublicVersion"}},"/api/v2/barong/public/time":{"get":{"description":"Get server current unix timestamp.","produces":["application/json"],"responses":{"200":{"description":"Get server current unix timestamp."}},"tags":["api"],"operationId":"getApiV2BarongPublicTime"}},"/api/v2/barong/public/ping":{"get":{"description":"Test connectivity","produces":["application/json"],"responses":{"200":{"description":"Test connectivity"}},"tags":["api"],"operationId":"getApiV2BarongPublicPing"}},"/api/v2/barong/public/password/validate":{"post":{"description":"Password strength testing","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"formData","name":"password","description":"User password","type":"string","required":true}],"responses":{"201":{"description":"Password strength testing"}},"tags":["api"],"operationId":"postApiV2BarongPublicPasswordValidate"}},"/api/v2/barong/public/kyc":{"post":{"description":"KYC callback","produces":["application/json"],"consumes":["application/json"],"responses":{"201":{"description":"KYC callback"}},"tags":["api"],"operationId":"postApiV2BarongPublicKyc"}}},"definitions":{"API_V2_Entities_UserWithFullInfo":{"type":"object","properties":{"email":{"type":"string","description":"User Email"},"uid":{"type":"string","description":"User UID"},"role":{"type":"string","description":"User role"},"level":{"type":"integer","format":"int32","description":"User level"},"otp":{"type":"boolean","description":"is 2FA enabled for account"},"state":{"type":"string","description":"User state: active, pending, inactive"},"referral_uid":{"type":"string","description":"UID of referrer"},"data":{"type":"string","description":"Additional phone and profile info"},"csrf_token":{"type":"string","description":"Сsrf protection token"},"labels":{"$ref":"#/definitions/API_V2_Entities_Label"},"phones":{"$ref":"#/definitions/API_V2_Entities_Phone"},"profiles":{"$ref":"#/definitions/API_V2_Entities_Profile"},"data_storages":{"$ref":"#/definitions/API_V2_Entities_DataStorage"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"description":"Returns current user"},"API_V2_Entities_Label":{"type":"object","properties":{"key":{"type":"string","description":"Label key. [a-z0-9_-]+ should be used. Min - 3, max - 255 characters."},"value":{"type":"string","description":"Label value. [A-Za-z0-9_-] should be used. Min - 3, max - 255 characters."},"scope":{"type":"string","description":"Label scope: 'public' or 'private'"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"description":"List all labels for current user."},"API_V2_Entities_Phone":{"type":"object","properties":{"country":{"type":"string","description":"Phone country"},"number":{"type":"string","description":"Submasked phone number"},"validated_at":{"type":"s","format":"g","description":"Phone validation date"}},"description":"Returns list of user's phones"},"API_V2_Entities_Profile":{"type":"object","properties":{"first_name":{"type":"string","description":"First Name"},"last_name":{"type":"string","description":"Submasked last name"},"national_code":{"type":"string","description":"Submasked national code"},"dob":{"type":"string","format":"date","description":"Submasked birth date"},"address":{"type":"string","description":"Address"},"postcode":{"type":"string","description":"Address Postcode"},"city":{"type":"string","description":"City name"},"country":{"type":"string","description":"Country name"},"state":{"type":"string","description":"Profile state: drafted, submitted, verified, rejected"},"metadata":{"type":"object","description":"Profile additional fields"},"upload":{"type":"string","description":"Address Postcode"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"description":"Return profiles of current resource owner"},"API_V2_Entities_DataStorage":{"type":"object","properties":{"title":{"type":"string","description":"Any additional data title"},"data":{"type":"string","description":"Any additional data json key:value pairs"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"API_V2_Entities_APIKey":{"type":"object","properties":{"kid":{"type":"string","description":"JWT public key"},"algorithm":{"type":"string","description":"Cryptographic hash function type"},"scope":{"type":"string","description":"Serialized array of scopes"},"state":{"type":"string","description":"active/non-active state of key"},"secret":{"type":"string","description":"Api key secret"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"description":"Create an api key"},"API_V2_Entities_Document":{"type":"object","properties":{"upload":{"type":"string","description":"File Upload"},"url":{"type":"string","description":"File url"},"doc_type":{"type":"string","description":"Document type: passport, driver license, utility bill, identity card, institutional, address, residental"},"doc_number":{"type":"string","description":"Submasked document number: AB123123 type"},"doc_expire":{"type":"string","description":"Expire date of uploaded documents"},"metadata":{"type":"string","description":"Any additional stored data"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"description":"Return current user documents list"},"API_V2_Entities_Treasury":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"id of record"},"title":{"type":"string","description":"title"},"state":{"type":"string","description":"state"},"kind":{"type":"string","description":"kind"},"data":{"type":"string","description":"Submasked data"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"description":"Return list of treasuries"},"API_V2_Entities_Activity":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"Activity ID"},"user_ip":{"type":"string","description":"User IP"},"user_agent":{"type":"string","description":"User Browser Agent"},"topic":{"type":"string","description":"Defined topic (session, adjustments) or general by default"},"action":{"type":"string","description":"API action: POST =\u003e 'create', PUT =\u003e 'update', GET =\u003e 'read', DELETE =\u003e 'delete', PATCH =\u003e 'update' or system if there is no match of HTTP method"},"result":{"type":"string","description":"Status of API response: succeed, failed, denied"},"data":{"type":"string","description":"Parameters which was sent to specific API endpoint"},"created_at":{"type":"string"}},"description":"Returns user activity"},"API_V2_Entities_Level":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"Level identifier, level number"},"key":{"type":"string","description":"Label key. [A-Za-z0-9_-] should be used. Min - 3, max - 255 characters."},"value":{"type":"string","description":"Label value. [A-Za-z0-9_-] should be used. Min - 3, max - 255 characters."}}},"API_V2_Entities_User":{"type":"object","properties":{"email":{"type":"string","description":"User Email"},"uid":{"type":"string","description":"User UID"},"role":{"type":"string","description":"User role"},"level":{"type":"integer","format":"int32","description":"User level"},"otp":{"type":"boolean","description":"is 2FA enabled for account"},"state":{"type":"string","description":"User state: active, pending, inactive"},"referral_uid":{"type":"string","description":"UID of referrer"},"data":{"type":"string","description":"Additional phone and profile info"}}},"API_V2_Entities_UserWithProfile":{"type":"object","properties":{"email":{"type":"string","description":"User Email"},"uid":{"type":"string","description":"User UID"},"role":{"type":"string","description":"User role"},"level":{"type":"integer","format":"int32","description":"User level"},"otp":{"type":"boolean","description":"is 2FA enabled for account"},"state":{"type":"string","description":"User state: active, pending, inactive"},"referral_uid":{"type":"string","description":"UID of referrer"},"data":{"type":"string","description":"Additional phone and profile info"},"profiles":{"$ref":"#/definitions/API_V2_Entities_Profile"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"API_V2_Entities_UserWithKYC":{"type":"object","properties":{"email":{"type":"string","description":"User Email"},"uid":{"type":"string","description":"User UID"},"role":{"type":"string","description":"User role"},"level":{"type":"integer","format":"int32","description":"User level"},"otp":{"type":"boolean","description":"is 2FA enabled for account"},"state":{"type":"string","description":"User state: active, pending, inactive"},"referral_uid":{"type":"string","description":"UID of referrer"},"data":{"type":"string","description":"Additional phone and profile info"},"profiles":{"$ref":"#/definitions/API_V2_Entities_Profile"},"labels":{"$ref":"#/definitions/API_V2_Entities_AdminLabelView"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"API_V2_Entities_AdminLabelView":{"type":"object","properties":{"key":{"type":"string","description":"Label key. [a-z0-9_-]+ should be used. Min - 3, max - 255 characters."},"value":{"type":"string","description":"Label value. [A-Za-z0-9_-] should be used. Min - 3, max - 255 characters."},"scope":{"type":"string","description":"Label scope: 'public' or 'private'"},"description":{"type":"string","description":"Label desc: json string with any additional information"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"API_V2_Entities_ServiceAccounts":{"type":"object","properties":{"email":{"type":"string","description":"User Email"},"uid":{"type":"string","description":"User UID"},"role":{"type":"string","description":"Service Account Role"},"level":{"type":"integer","format":"int32","description":"User Level"},"state":{"type":"string","description":"Service Account State: active, disabled"},"user":{"$ref":"#/definitions/API_V2_Entities_User"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"API_V2_Entities_Comment":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"Comment id"},"author_uid":{"type":"string","description":"Comment author UID"},"title":{"type":"string","description":"Comment title"},"data":{"type":"string","description":"Comment plain text"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}