swagger: "2.0" info: version: 0.0.2 title: "auth0" description: "Auth0 Swagger Definition" termsOfService: "http://taxnexus.net/terms/" contact: email: "noc@taxnexus.net" license: name: "Proprietary - Copyright (c) 2018-2020 by Taxnexus, Inc." schemes: - "https" host: "taxnexus.auth0.com" consumes: - "application/json" produces: - "application/json" parameters: CredentialsRequest: name: CredentialsRequest in: body required: true description: Get Authentation Token schema: $ref: "#/definitions/CredentialsRequest" email: name: email in: query type: string required: true authHeader: name: Authorization in: header type: string required: true UserRequest: description: An array of User records in: body name: UserRequest required: true schema: $ref: "#/definitions/UserRequest" RoleUsersRequest: description: An array of User IDs to add to a Role in: body name: RoleUsersRequest required: true schema: $ref: "#/definitions/RoleUsersRequest" UserRolesRequest: description: An array of User IDs to add to a Role in: body name: UserRolesRequest required: true schema: $ref: "#/definitions/UserRolesRequest" roleId: name: roleId description: An Auth0 Role ID type: string in: path required: true userId: name: userId description: An Auth0 User ID type: string in: path required: true responses: AccessForbidden: description: "Access forbidden, account lacks access" schema: $ref: "#/definitions/Error" NotFound: description: Resource was not found schema: $ref: "#/definitions/Error" ServerError: description: Server Internal Error schema: $ref: "#/definitions/Error" Unauthorized: description: "Access Unauthorized, invalid API-KEY was used" schema: $ref: "#/definitions/Error" UnprocessableEntity: description: "Unprocessable Entity, likely a bad parameter" schema: $ref: "#/definitions/Error" UserResponse: description: Taxnexus Response with User objects schema: items: $ref: "#/definitions/User" type: array RoleResponse: description: Taxnexus Response with User objects schema: $ref: "#/definitions/RoleResponse" CredentialsResponse: description: Credentials response from Auth0 schema: $ref: "#/definitions/CredentialsResponse" paths: /oauth/token: post: summary: post to /oauth/token operationId: postCredentials description: Get credential token parameters: - $ref: "#/parameters/CredentialsRequest" tags: - Auth responses: "200": $ref: "#/responses/CredentialsResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" /api/v2/roles: get: summary: Get Roles from Auth0 operationId: getRoles description: Get Roles from Auth0 tags: - Role parameters: - $ref: "#/parameters/authHeader" responses: "200": $ref: "#/responses/UserResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" /api/v2/roles/{roleId}/users: post: summary: Add users to role operationId: postRoleUsers description: Add users to role parameters: - $ref: "#/parameters/authHeader" - $ref: "#/parameters/RoleUsersRequest" - $ref: "#/parameters/roleId" tags: - Role responses: "200": description: Role users successfully updated "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "500": $ref: "#/responses/ServerError" /api/v2/users/{userId}/roles: delete: parameters: - $ref: "#/parameters/authHeader" - $ref: "#/parameters/userId" - $ref: "#/parameters/UserRolesRequest" tags: - User responses: "204": description: User roles successfully removed "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "500": $ref: "#/responses/ServerError" get: summary: Get a User's Roles description: Get a User's Roles operationId: getUserRoles parameters: - $ref: "#/parameters/authHeader" - $ref: "#/parameters/userId" tags: - User responses: "200": $ref: "#/responses/RoleResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "500": $ref: "#/responses/ServerError" /api/v2/users: get: summary: Get all users from Auth0 operationId: getUsers description: Get all users from Auth0 parameters: - $ref: "#/parameters/authHeader" tags: - User responses: "200": $ref: "#/responses/UserResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "500": $ref: "#/responses/ServerError" /api/v2/users-by-email: get: summary: Get a single user from Auth0 by Email Address operationId: getUserByEmail description: Get a single user from Auth0 by Email Address parameters: - $ref: "#/parameters/authHeader" - $ref: "#/parameters/email" tags: - User responses: "200": $ref: "#/responses/UserResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "500": $ref: "#/responses/ServerError" post: summary: Create new Auth0 user operationId: postUsers description: create new Auth0 user parameters: - $ref: "#/parameters/authHeader" - $ref: "#/parameters/UserRequest" tags: - User responses: "201": description: New user created "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "409": description: User already exists "500": $ref: "#/responses/ServerError" definitions: Error: properties: code: format: int32 type: integer fields: type: string message: type: string type: object Role: properties: id: type: "string" example: "rol_oWVoMn2Zx2qDSGUL" name: type: "string" example: "Developer" description: type: "string" example: "Taxnexus API Developer" type: "object" RoleResponse: type: object properties: roles: type: array items: $ref: "#/definitions/Role" RoleUsersRequest: properties: users: type: array items: type: string UserRolesRequest: properties: roles: type: array items: type: string CredentialsRequest: type: object properties: client_id: type: string client_secret: type: string audience: type: string grant_type: type: string CredentialsResponse: type: object properties: access_token: type: string scope: type: string expires_in: type: number format: int64 token_type: format: string NewUser: type: object properties: email: type: "string" example: "john.doe@gmail.com" phone_number: type: "string" example: "+199999999999999" blocked: type: "boolean" example: false email_verified: type: "boolean" example: false phone_verified: type: "boolean" example: false given_name: type: "string" example: "John" family_name: type: "string" example: "Doe" name: type: "string" example: "John Doe" nickname: type: "string" example: "Johnny" picture: type: "string" example: "https://secure.gravatar.com/avatar/15626c5e0c749cb912f9d1ad48dba440?s=480&r=pg&d=https%3A%2F%2Fssl.gstatic.com%2Fs2%2Fprofiles%2Fimages%2Fsilhouette80.png" user_id: type: "string" example: "abc" connection: type: "string" example: "Initial-Connection" password: type: "string" example: "secret" verify_email: type: "boolean" example: false username: type: "string" example: "johndoe" User: properties: email: type: "string" example: "vern@taxnexus.net" email_verified: type: "boolean" example: true user_id: type: "string" example: "auth0|5b180537157859716f2c9df5" picture: type: "string" example: "https://s.gravatar.com/avatar/a08710b8d49416c729a0da8a9c34cdb0?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fve.png" nickname: type: "string" example: "vern" identities: type: "array" items: type: "object" properties: connection: type: "string" example: "Username-Password-Authentication" provider: type: "string" example: "auth0" user_id: type: "string" example: "5b180537157859716f2c9df5" isSocial: type: "boolean" example: false updated_at: type: "string" example: "2020-09-22T19:19:02.706Z" created_at: type: "string" example: "2018-06-06T16:00:55.930Z" name: type: "string" example: "Vernon Keenan" last_password_reset: type: "string" example: "2020-09-21T00:11:47.397Z" multifactor_last_modified: type: "string" example: "2020-09-21T00:30:34.081Z" family_name: type: "string" example: "Keenan" given_name: type: "string" example: "Vernon" user_metadata: properties: taxnexus_email: type: "string" example: "vern@taxnexus.net" taxnexus_firstname: type: "string" example: "Vernon" taxnexus_fullname: type: "string" example: "Vernon Keenan" taxnexus_lastname: type: "string" example: "Keenan" taxnexus_phone: type: "string" example: "+15106791900" type: "object" app_metadata: properties: taxnexus_account_id: type: "string" example: "7f661ca6-ae4a-486f-9c3c-cd292685a46d" taxnexus_contact_id: type: "string" example: "9f79dca8-e875-4e2b-a5ad-001a3d32e83d" taxnexus_user_id: type: "string" example: "f04da03d-70ad-46df-a46c-a676388aadd7" roles: type: "array" items: type: "string" example: - "login" type: "object" last_ip: type: "string" example: "67.188.106.161" last_login: type: "string" example: "2020-09-22T19:19:02.706Z" logins_count: type: "number" example: 178 format: int64 UserRequest: description: An array Auth0 new user objects properties: users: items: $ref: "#/definitions/NewUser" type: array type: object