swagger: '2.0' info: description: | HRBox mobile app API Since HRBOX is multitenant application you need to find out domain and endpoint to start working with this API (Option 1) QR-code will contain this info - hrbox://bind/?url={url} where {url} will be url to /mobile/bind method. You should make POST request to this URL sending "device" param in body just like described in /mobile/bind method. In the response you will find endpoint (Option 2) Manual bind - user will provice you with {domain} {email} and {password} and you should send this info to https://{domain}/api/v2/mobile/manual-bind like described in /mobile/manual-bind method. In the response you will find endpoint Once you will get endpoint and tenantId, use it in every request you make, using endpoint as base path, and passing tenantId as header "x-hrbox-tenant-id: {tenantId}" To authorize you session, make call to {endpoint}/mobile/auth sending "x-hrbox-tenant-id: {tenantId}" header, and sending body that described in /mobile/auth method To sign your requests with session id, pass folowing headers with each request: x-hrbox-tenant-id: {tenantId} x-hrbox-device-id: {deviceId} x-hrbox-session-id: {sessionId} x-hrbox-session-code: {sessionSecret} x-hrbox-embed: true {tenantId} - you will get this form /mobile/auth or /mobile/bind methods {sessionId} - you will get this form /mobile/auth method {sessionSecret} - you will get this form /mobile/auth method the last one (x-hrbox-embed) is for opening web pages in WebView to remove website footer and header version: 2.0.0 title: HRbox Mobile API contact: email: yuriy@hrbox.io # host: api.hrbox.io # basePath: /api/v2 tags: - name: mobile description: Binding device and authorizing - name: account description: Methods for getting current user data (assignments, notifications etc.) - name: department description: Methods for browsing and searching through Org Structure - name: user description: Methods for getting user and employment information - name: article description: Methods News, Categories and Articles - name: postcard description: Methods for working with postcards - name: dashboard description: Methods for getting dashboards and widgets data # schemes: # - http paths: /mobile/bind/{id}/{token}: post: tags: - mobile summary: Bind device by token. This URL will be taken by parsing QR code operationId: mobileBind consumes: - application/json produces: - application/json parameters: - name: id in: path description: ID required: true type: string - name: token in: path description: ID required: true type: string - in: body name: body description: Device info required: true schema: type: object properties: device: $ref: '#/definitions/device' responses: 200: description: successful operation schema: type: object properties: accountSecret: $ref: '#/definitions/accountSecret' tenantInfo: $ref: '#/definitions/tenantInfo' 400: description: Invalid input 403: description: Invalid id or token /mobile/request-two-factor: post: tags: - mobile summary: Запросить код двухфакторной аутентификации. Код будет выслан если она включена. operationId: mobileRequestTwoFactor consumes: - application/json produces: - application/json parameters: - in: body name: body description: Email Password and Device info. Also Code if 2FAuth enabled required: true schema: type: object properties: email: type: string format: email password: type: string format: password responses: 200: description: Если Двухфакторная аутентификация включена и код был выслан то в ответе будет codeRequired = true иначе codeRequired=false schema: type: object properties: codeRequired: type: boolean tenantInfo: $ref: '#/definitions/tenantInfo' delayTime: type: number 400: description: Invalid input 403: description: Invalid Email or Password 500: description: Server Error /mobile/manual-bind: post: tags: - mobile summary: Bind device by user's emial and password operationId: mobileManualBind consumes: - application/json produces: - application/json parameters: - in: body name: body description: Email Password and Device info. Also Code if 2FAuth enabled required: true schema: type: object properties: email: type: string format: email password: type: string format: password code: type: string format: password description: two-factor authorization code device: $ref: '#/definitions/device' responses: 200: description: successful operation schema: type: object properties: accountSecret: $ref: '#/definitions/accountSecret' tenantInfo: $ref: '#/definitions/tenantInfo' 400: description: Invalid input 403: description: Invalid Email or Password 500: description: Server Error /mobile/auth: post: tags: - mobile summary: Authorize user by accountSecret that you got from /mobile/bind or /mobile/manual-bind operationId: mobileAuth consumes: - application/json produces: - application/json parameters: - in: body name: body description: secret, userId and deviceId required: true schema: type: object properties: secret: type: string format: email userId: type: string deviceId: type: string responses: 200: description: successful authorization schema: type: object properties: sessionId: type: string sessionSecret: type: string tenantInfo: $ref: '#/definitions/tenantInfo' 400: description: Invalid input 401: description: Authorization failed, secret is invalid 404: description: Device not found 500: description: Server Error /mobile/save-push-token: post: tags: - mobile summary: Save Firebase push token to server operationId: mobileSavePushToken consumes: - application/json produces: - application/json parameters: - in: body name: body description: token - the token that you get from Firebase Cloud Messaging. Provider should be "firebase", not other providers supported for now. deviceId - same device id that you used in bind or auth required: true schema: type: object properties: token: type: string provider: type: string default: firebase deviceId: type: string responses: 200: description: push token successfully saved schema: type: object properties: sucess: type: boolean default: true 400: description: Invalid input 401: description: Unathorized request 403: description: Unathorized request 500: description: Server Error /mobile/unbind: post: tags: - mobile summary: Unbind device by deviceId operationId: mobileUnbind consumes: - application/json produces: - application/json parameters: - name: deviceId in: query description: ID required: true type: string responses: 200: description: successful operation schema: type: object properties: tenantInfo: $ref: '#/definitions/tenantInfo' 400: description: Invalid input 403: description: Invalid Email or Password 500: description: Server Error /user/profile: get: tags: - user summary: Get User's profile info operationId: userProfile consumes: - application/json produces: - application/json parameters: - name: id in: query description: User ID required: true type: string responses: 200: description: User profile data schema: $ref: '#/definitions/userProfile' 400: description: Invalid input (malformed id) 401: description: Unathorized request 403: description: Unathorized request 404: description: User not found 500: description: Server Error /user/items: get: tags: - user summary: User items. operationId: actionItems parameters: - name: q in: query type: string consumes: - application/json produces: - application/json responses: 200: description: User items. schema: properties: data: type: array items: type: object properties: id: type: string format: uuid name: type: string faceUrl: type: string 400: description: Bad Request. 401: description: Unathorized request. 403: description: Unathorized request. 404: description: Calendar event not found. 500: description: Server Error. /user-group/items: get: tags: - userGroup summary: User group items. operationId: actionItems parameters: - name: q in: query type: string - name: only_with_calendar_events in: query type: integer description: Only used in calendar event example: '0 or 1' consumes: - application/json produces: - application/json responses: 200: description: User group items. schema: properties: data: type: array items: type: object properties: id: type: string format: uuid name: type: string faceUrl: type: string 400: description: Bad Request. 401: description: Unathorized request. 403: description: Unathorized request. 404: description: Calendar event not found. 500: description: Server Error. /account/status-text: post: tags: - account summary: Set user's status text operationId: accountStatusText consumes: - application/json produces: - application/json parameters: - in: body name: body description: user's status text required: true schema: type: object properties: activeTypes: type: string responses: 200: description: status text saved schema: type: object properties: activeTypes: type: string 400: description: Invalid input 401: description: Unathorized request 403: description: Unathorized request 500: description: Server Error /account/status-active-types: post: tags: - account summary: Set user's active statuses operationId: accountStatusActiveTypes consumes: - application/json produces: - application/json parameters: - in: body name: body description: user's active statuses required: true schema: type: object properties: activeTypes: type: array items: type: string responses: 200: description: user's active statuses saved schema: type: object properties: statusTypes: type: array items: type: string 400: description: Invalid input 401: description: Unathorized request 403: description: Unathorized request 500: description: Server Error /notifications/pushes: get: tags: - notifications summary: Push notifications index. Infinite scroll done by paginating with {page} parameter operationId: notificationPushes consumes: - application/json produces: - application/json parameters: - name: per-page in: query description: How many items return in one page type: integer default: 10 - name: page in: query description: Current page type: integer default: 1 responses: 200: description: Returns array of push notifications and pagination related data schema: type: object properties: _meta: $ref: '#/definitions/meta' data: type: array items: $ref: '#/definitions/notification' 401: description: Unathorized request 403: description: Unathorized request 500: description: Server Error /notifications/mark-seen: post: tags: - notifications summary: Mark notification as seen operationId: notificationMarkSeen consumes: - application/json produces: - application/json parameters: - in: query name: notificationId description: notificationId required: true type: string format: uuid responses: 200: description: Notification marked as seen schema: type: object properties: badge: type: number description: unseen notification count date: type: string format: date 400: description: Invalid input 401: description: Unathorized request 403: description: Unathorized request 500: description: Server Error /notifications/mark-seen-all: post: tags: - notifications summary: Mark all notifications as seen operationId: notificationMarkSeenAll consumes: - application/json produces: - application/json responses: 200: description: All marked as seen schema: type: object properties: badge: type: number description: unseen notification count date: type: string format: date 400: description: Invalid input 401: description: Unathorized request 403: description: Unathorized request 500: description: Server Error /department/tree-node: get: tags: - department summary: Get departments inner struture operationId: departmentTreeNode consumes: - application/json produces: - application/json parameters: - name: id in: query description: Parent department ID type: string responses: 200: description: Department children (Departments and Users) type="user" - means user node, type="department" - means department node. [isBoss], [position] are "user" only properties. [employemntsCount], [empty] - are "department" only properties. schema: type: object properties: id: type: string format: uuid name: type: string default: "Department name" path: type: string default: "Department hierarchy path" items: type: array items: $ref: '#/definitions/structureItem' 400: description: Invalid input (malformed id) 401: description: Unathorized request 403: description: Unathorized request 404: description: Department not found 500: description: Server Error #["office"] /department/search: get: tags: - department summary: Search Org Structure for matching users and departments operationId: departmentSearch consumes: - application/json produces: - application/json parameters: - name: q in: query description: Search query string type: string responses: 200: description: Search results (Departments and Users) type="user" - means user node, type="department" - means department node. [isBoss], [position] are "user" only properties. [employemntsCount], [empty] - are "department" only properties. schema: type: object properties: q: type: string default: "Search query string" items: type: array items: $ref: '#/definitions/structureItem' 400: description: Invalid input 401: description: Unathorized request 403: description: Unathorized request 500: description: Server Error /postcard/user-view: get: tags: - postcard summary: Details about postcard sent to user operationId: postcardUserView consumes: - application/json produces: - application/json parameters: - name: id in: query description: UserPostcard item ID required: true type: string responses: 200: description: Postcard details schema: $ref: '#/definitions/userPostcard' 400: description: Invalid input (malformed id) 401: description: Unathorized request 403: description: Unathorized request 404: description: Postcard not found 500: description: Server Error /article/news: get: tags: - article summary: News index. Infinite scroll done by paginating with {page} parameter operationId: articleNews consumes: - application/json produces: - application/json parameters: - name: per-page in: query description: How many items return in one page type: integer default: 10 - name: page in: query description: Current page type: integer default: 1 responses: 200: description: Returns array of news and pagination related data schema: type: object properties: _meta: $ref: '#/definitions/meta' data: type: array items: $ref: '#/definitions/article' 401: description: Unathorized request 403: description: Unathorized request 500: description: Server Error /article/category: get: tags: - article summary: Browse or search catalog categories. Displays catalog items which can be category or article operationId: articleCategory consumes: - application/json produces: - application/json parameters: - name: id in: query description: ID of category type: string - name: q in: query description: Search query string type: string responses: 200: description: Contents of category or search results (categories and articles). entity="category" - means category node, entity="article" - means article node. Category id can be used in /article/category method to browse its content schema: type: object properties: category: type: object description: Current category properties: id: type: string format: uuid title: type: string default: "Current category name" q: type: string default: "Search query string" items: type: array items: $ref: '#/definitions/catalogItem' 400: description: Invalid input 401: description: Unathorized request 403: description: Unathorized request 500: description: Server Error /dashboard: get: tags: - dashboard summary: Get dashboards and widgets by specifying needed widgets through get parameter. Personal user feed widgets starts with "my" prefix. Global company feed widgets starts with "upd" prefix operationId: dashboard consumes: - application/json produces: - application/json parameters: - name: widgets in: query description: names of required widgets separated with comma. For example - widgets=myLms,mySurvey,myAchievements,myTeam,myFavorites,myPostcards type: string enum: - myLms - mySurvey - myAchievements - myTeam - myFavorites - myPostcards - updNews - updVoting - updIdeas - updAchievements - updBirthday - updNewbies - updBooks - name: info in: query description: names of required info separated with comma. For example - info=profileBrief,notificationsBadge. notificationsBadge - Current notification bell badge value. profileBrief - Current user brief info type: string enum: - profileBrief - notificationsBadge responses: 200: description: Rreturns all the dashboard data about requested widgets. In responce object only requested info/widgets keys will be presented. If widget is not available for current user, this widget will not exists in responce of will be null schema: type: object properties: profileBrief: $ref: '#/definitions/profileBrief' description: Current user brief info notificationsBadge: type: integer default: 0 description: Current notification bell badge value widgets: type: object properties: myLms: description: User feed - Assigned test and courses $ref: '#/definitions/dashboardWidget' mySurvey: description: User feed - Assigned surveys $ref: '#/definitions/dashboardWidget' myAchievements: description: User feed - Assigned achievements $ref: '#/definitions/dashboardWidget' myTeam: description: User feed - Teammates of current user $ref: '#/definitions/dashboardWidget' myFavorites: description: User feed - Favorites (in development, not used) $ref: '#/definitions/dashboardWidget' myPostcards: description: User feed - Recevied postcards $ref: '#/definitions/dashboardWidget' updNews: description: Company feed - New news $ref: '#/definitions/dashboardWidget' updVoting: description: Company feed - New contests $ref: '#/definitions/dashboardWidget' updIdeas: description: Company feed - New ideas $ref: '#/definitions/dashboardWidget' updAchievements: description: Company feed - New achievements achieved by users $ref: '#/definitions/dashboardWidget' updBirthday: description: Company feed - Users that have birthday today $ref: '#/definitions/dashboardWidget' updNewbies: description: Company feed - Recently employed employees $ref: '#/definitions/dashboardWidget' updBooks: description: Company feed - New books in library $ref: '#/definitions/dashboardWidget' 400: description: Invalid input 401: description: Unathorized request 403: description: Unathorized request 500: description: Server Error /feedback/add: post: tags: - feedback operationId: actionAdd summary: Creates a feedback about a department or user. consumes: - application/json produces: - application/json parameters: - in: body name: body description: userId - User ID from which the feedback will be created.
type - Entity type (department, user).
id - Entity id.
score - Feedback score from 1 to 5.
text - Feedback text.
isAnonymous - Anonymous feedback. required: true schema: type: object properties: userId: type: string description: User ID from which the feedback will be created. example: cd1a4391-9fa7-4ae3-80c1-f9b46ad1838d required: false type: type: string description: Entity type. enum: [ department, user ] example: department required: true id: type: string description: Entity id. example: cd1a4391-9fa7-4ae3-80c1-f9b46ad1838d required: true score: type: number description: Feedback score. minimum: 1 maximum: 5 example: 5 required: true text: type: string description: Feedback text. example: Example text. required: true isAnonymous: type: boolean description: Anonymous feedback. example: true default: false required: false responses: 200: description: Returns the success status and data of the generated feedback. schema: type: object properties: success: type: boolean feedback: type: object $ref: '#/definitions/feedback' 400: description: Bad Request. Returns a message with the error details. 401: description: Unathorized request. 403: description: Unathorized request. 404: description: Not found. Returns a message with the error details. 500: description: Server Error. /feedback/view: get: tags: - feedback summary: Details about feedback. operationId: actionView consumes: - application/json produces: - application/json parameters: - name: id in: query description: Feedback item ID. type: string required: true responses: 200: description: Feedback details. schema: $ref: '#/definitions/feedback' 400: description: Bad Request. 401: description: Unathorized request. 403: description: Unathorized request. 404: description: Feedback not found. 500: description: Server Error. /calendar-event/view: get: tags: - calendarEvent summary: Details about calendar event. operationId: actionView consumes: - application/json produces: - application/json parameters: - name: id in: query description: Calendar event item ID. type: string - name: parent_id in: query description: Calendar event parent item ID. type: string - name: rec_date in: query description: Calendar event recurring date. type: string format: date responses: 200: description: Calendar event details. schema: properties: calendarEvent: $ref: '#/definitions/calendarEvent' calendarEventUser: $ref: '#/definitions/calendarEventUser' calendarEventBid: $ref: '#/definitions/calendarEventBid' hasCalendarEventBid: type: boolean canCreateCalendarEventBid: type: boolean 400: description: Bad Request. 401: description: Unathorized request. 403: description: Unathorized request. 404: description: Calendar event not found. 500: description: Server Error. /calendar-event: get: tags: - calendarEvent summary: Calendar event index. operationId: actionIndex parameters: - name: title in: query type: string - name: title_exact in: query type: string - name: start_date_time in: query type: string format: 'date-time' description: Default current month example: '2023-01-01 10:00:00' - name: end_date_time in: query type: string format: 'date-time' description: Default current month +3 month example: '2023-04-01 10:00:00' - name: calendar_event_type_id in: query type: string enum: [1, 2, 3, 4, 5, 6] description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT, 6 - WEBINAR example: '1,2,3 or 1' - name: entity_id in: query type: integer enum: [1030] description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace - name: calendar_event_entity_item_id in: query type: string format: uuid - name: user_id in: query type: string format: uuid - name: visible_to in: query description: Visible to user group type: string format: uuid example: '9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd or 3a7539cb-d85e-4455-af41-fc505d1ce6dd' consumes: - application/json produces: - application/json responses: 200: description: Calendar event index. schema: properties: data: type: array items: $ref: '#/definitions/calendarEvent' 400: description: Bad Request. 401: description: Unathorized request. 403: description: Unathorized request. 404: description: Calendar event not found. 500: description: Server Error. /calendar-event/items: get: tags: - calendarEvent summary: Calendar event items. operationId: actionItems parameters: - name: q in: query type: string - name: calendar_event_type_id in: query type: string enum: [1, 2, 3, 4, 5, 6] description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT, 6 - WEBINAR example: '1,2,3 or 1' - name: entity_id in: query type: integer enum: [1030] description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace - name: calendar_event_entity_item_id in: query type: string format: uuid - name: user_id in: query type: string format: uuid - name: visible_to in: query description: Visible to user group type: string format: uuid example: '9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd or 3a7539cb-d85e-4455-af41-fc505d1ce6dd' consumes: - application/json produces: - application/json responses: 200: description: Calendar event items. schema: properties: data: type: array items: type: object properties: id: type: string format: uuid title: type: string 400: description: Bad Request. 401: description: Unathorized request. 403: description: Unathorized request. 404: description: Calendar event not found. 500: description: Server Error. /calendar-event/my: get: tags: - calendarEvent summary: Calendar event my. operationId: actionMy parameters: - name: title in: query type: string - name: title_exact in: query type: string - name: start_date_time in: query type: string format: 'date-time' description: Default current month example: '2023-01-01 10:00:00' - name: end_date_time in: query type: string format: 'date-time' description: Default current month +3 month example: '2023-04-01 10:00:00' - name: calendar_event_type_id in: query type: string enum: [1, 2, 3, 4, 5, 6] description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT, 6 - WEBINAR example: '1,2,3 or 1' - name: entity_id in: query type: integer enum: [1030] description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace - name: calendar_event_entity_item_id in: query type: string format: uuid - name: user_id in: query type: string format: uuid - name: visible_to in: query description: Visible to user group type: string format: uuid example: '9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd or 3a7539cb-d85e-4455-af41-fc505d1ce6dd' consumes: - application/json produces: - application/json responses: 200: description: Calendar event index. schema: properties: data: type: array items: $ref: '#/definitions/calendarEvent' 400: description: Bad Request. 401: description: Unathorized request. 403: description: Unathorized request. 404: description: Calendar event not found. 500: description: Server Error. /calendar-event-request: post: tags: - calendarEventRequest summary: Calendar event request create. operationId: actionCreate parameters: - in: body name: body required: true schema: type: object properties: calendar_event_id: type: string format: uuid description: Calendar event ID calendar_event_parent_id: type: string format: uuid description: Calendar event parent ID calendar_event_rec_date: type: string format: date description: Calendar event recurring date responses: 200: description: Returns the calendar event request schema: type: object properties: success: type: boolean message: type: string errors: type: array items: type: string data: type: object $ref: '#/definitions/calendarEventBid' 400: description: Bad Request. Returns a message with the error details. 401: description: Unathorized request. 403: description: Unathorized request. 404: description: Not found. Returns a message with the error details. 500: description: Server Error. /calendar-event-request/cancel: post: tags: - calendarEventRequest summary: Calendar event request cancel. operationId: actionCreate parameters: - in: body name: body required: true schema: type: object properties: id: type: string format: uuid description: Calendar event request ID responses: 200: description: Returns the calendar event request schema: type: object properties: success: type: boolean message: type: string errors: type: array items: type: string 400: description: Bad Request. Returns a message with the error details. 401: description: Unathorized request. 403: description: Unathorized request. 404: description: Not found. Returns a message with the error details. 500: description: Server Error. definitions: accountSecret: type: object properties: userId: type: string format: uuid secret: type: string format: uuid tenantId: type: integer format: int64 default: 101 xml: name: accountSecret tenantInfo: type: object properties: endpoint: type: string default: https://demo.hrbox.io/api/v2 tenantId: type: integer format: int64 default: 101 tenantName: type: string default: Demo Company domain: type: string default: demo.hrbox.io brandColor: type: string default: #FF0000 logoUrl: type: string default: https://demo.hrbox.io/logo.png logoSqUrl: type: string default: https://demo.hrbox.io/logo-sq.png xml: name: tenantInfo userProfile: type: object properties: id: type: string format: uuid name: type: string default: "Chintan Rana" first_name: type: string default: "Chintan" last_name: type: string default: "Rana" middle_name: type: string default: null faceUrl: type: string default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/300.jpg" iconUrl: type: string default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/60.jpg" reg_status_id: type: integer default: 3 gender_id: type: integer default: 1 country_id: type: string default: "ru" timezone_id: type: string default: "Europe/Moscow" city_id: type: string default: "BBDAEADC-FCCA-ABCB-AEFE-FBDCEAFAAEDB" isBoss: type: boolean default: false is_external: type: boolean default: false bithdayDate: type: string default: "29 of May" cityName: type: string default: "Moscow" region: type: string default: "Arizona" office: type: string default: "106a" description: Office number employment: $ref: '#/definitions/employment' emails: type: array items: $ref: '#/definitions/contact' phones: type: array items: $ref: '#/definitions/contact' messengers: type: array items: $ref: '#/definitions/contact' achievements: type: array items: $ref: '#/definitions/achievement' userGroupsVisible: type: array items: $ref: '#/definitions/userGroup' structureItem: type: object properties: type: type: string enum: - department - user id: type: string format: uuid name: type: string default: "Name of department or user" isBoss: type: boolean default: false description: For user only iconUrl: type: string default: "https://pentest.hrbox.io/file/resize/60x0/299c6542-c541-4296-a528-90f08d835b8b.png" description: User's face uamge url position: type: string description: User's employment position employmentsCount: type: integer default: 0 description: Amount of employees in department empty: type: boolean default: false description: If department is empty catalogItem: type: object properties: entity: type: string description: Tells whether its category or article enum: - category - article id: type: string format: uuid title: type: string url: type: string description: type: string thumbUrl: type: string description: Thumbnail image url status_id: type: integer description: 1 - active, 2 - disabledy, 3 - deleted default: 1 enum: - 1 - 2 - 3 thumb_style_id: type: integer description: Type of thumb 1 - image + picture, 2 - text only, 3 - image only (square image) default: 1 enum: - 1 - 2 - 3 tags: type: array items: $ref: '#/definitions/tag' calendarEvent: type: object properties: id: type: string format: uuid parent_id: type: string format: uuid title: type: string description: type: string image_id: type: string format: uuid url: type: string entity_id: type: integer reference_id: type: string format: uuid start_date_time: type: string format: 'date-time' end_date_time: type: string format: 'date-time' day_duration: type: integer is_all_day: type: boolean is_recurring: type: boolean freq: type: integer interval: type: integer by_month: type: integer by_monthday: type: array items: type: integer by_day: type: array items: type: integer visible_to: type: array items: type: string format: uuid quantity_place: type: integer created_user_id: type: string format: uuid updated_user_id: type: string format: uuid created_at: type: string format: 'date-time' updated_at: type: string format: 'date-time' calendar_event_type_id: type: integer create_bid_deadline_at: type: string format: 'date-time' start_date: type: string format: date end_date: type: string format: date start_time: type: string end_time: type: string start_date_time_localized: type: string end_date_time_localized: type: string created_at_localized: type: string create_bid_deadline_at_localized: type: string rec_date: type: string format: date rec_date_formatted: type: string send_notification_start: type: boolean send_notification_before_start_minutes: type: array items: type: integer duration_seconds: type: integer duration_seconds_formatted: type: string duration_seconds_formatted_data: type: object properties: hours: type: integer minutes: type: integer rrule_string: type: string type_name: type: string is_started: type: boolean is_ended: type: boolean is_ended_text: type: string is_virtual_recurring: type: boolean is_deadline_create_bid: type: boolean url_view: type: string calendarEventUser: type: object properties: id: type: string format: uuid calendar_event_id: type: string format: uuid calendar_event_parent_id: type: string format: uuid user_id: type: string format: uuid status_id: type: integer is_visited: type: boolean where_from_type_id: type: integer calendar_event_rec_date: type: string format: date status_name: type: string is_visited_text: type: string where_from_type_name: type: string calendarEventBid: type: object properties: id: type: string format: uuid calendar_event_id: type: string format: uuid calendar_event_parent_id: type: string format: uuid calendar_event_bid_status_id: type: integer calendar_event_rec_date: type: string format: date user_id: type: string format: uuid status_name: type: string user_name: type: string article: type: object properties: id: type: string format: uuid title: type: string url: type: string imageUrl: type: string description: type: string thumb_style_id: type: integer description: Type of thumb 1 - image + picture, 2 - text only, 3 - image only (square image) default: 1 enum: - 1 - 2 - 3 post_type_id: type: integer description: Post type 2 - only url (redirect to another page), 3 - page with actual content default: 2 enum: - 2 - 3 created_at: type: string format: datetime publish_at: type: string format: datetime description: Date and time from when article available to view by users updated_at: type: string format: datetime status_id: type: integer description: 1 - active, 2 - disabledy, 3 - deleted default: 1 enum: - 1 - 2 - 3 likesCount: type: integer viewsCount: type: integer commentsCount: type: integer tags: type: array items: $ref: '#/definitions/tag' tag: type: object properties: id: type: string format: uuid name: type: string calendarEventTypeId: type: integer enum: [1, 2, 3, 4, 5, 6] description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT, 6 - WEBINAR meta: type: object properties: totalCount: type: integer default: 0 description: Total items count in database pageCount: type: integer default: 1 description: How much pages there are with current perPage value currentPage: type: integer default: 1 description: Current page number perPage: type: integer default: 10 description: How much items per page contact: type: object properties: value: type: string default: "dev@hrbox.io" description: Email of phone number type: type: string default: "corporate" enum: - corporate - personal readonly: type: boolean default: true notification: type: object properties: id: type: string format: uuid subject: type: string text: type: string params: type: object properties: url: type: string default: "Url that should be opened if user taps on Notification, and there are no any other logic exists for this type of notification" description: Property os optional. Url that should be opened if user taps on Notification, and there are no any other logic exists for this type of notification imageUrl: type: string default: "Property os optional" description: Property is optional notificationTypeId: type: string enum: - user-postcard - two-factor - etc. description: Serverside identifier of notification type. Sme logic can depend on it created_at: type: string format: datetime seen_at: type: string format: datetime description: if not null - notification was viewed by user userPostcard: type: object properties: id: type: string format: uuid user_id: type: string format: uuid postcard_id: type: string format: uuid text: type: string status_id: type: integer description: 1 - active, 2 - disabled, 3 - deleted enum: - 1 - 2 - 3 settings: type: object properties: hide_signature: type: boolean description: Is this postcard anonymous status_view_id: type: integer description: 1 - visible to everyone, 2 - visible only to recipient enum: - 1 - 2 created_at: type: string format: date senderId: type: string format: uuid? senderName: type: string default: "Alex" senderIconUrl: type: string description: Sender user's face icon imageUrl: description: Postcard's iamge type: string is_seen: type: boolean description: Did user seen this postcard? userGroup: type: object properties: id: type: string format: uuid name: type: string default: Managers description: type: string default: "All the managers" iconUrl: type: string default: "https://pentest.hrbox.io/file/resize/60x0/299c6542-c541-4296-a528-90f08d835b8b.png" thumbUrl: type: string default: "https://pentest.hrbox.io/file/resize/400x0/299c6542-c541-4296-a528-90f08d835b8b.png" achievement: type: object properties: id: type: string format: uuid title: type: string default: Best sales of Year description: type: string default: One who sold most this year imageUrl: type: string default: "https://pentest.hrbox.io/file/resize/400x0/299c6542-c541-4296-a528-90f08d835b8b.png" iconUrl: type: string default: "https://pentest.hrbox.io/file/resize/60x0/299c6542-c541-4296-a528-90f08d835b8b.png" employment: type: object properties: id: type: string format: uuid experience: type: string default: 1 year 2 months position: type: string default: Chief Salesman department: $ref: '#/definitions/departmentLabel' chiefUser: $ref: '#/definitions/userLabel' departmentLabel: type: object properties: id: type: string format: uuid name: type: string default: Marketing departmentPath: type: string default: "Company / Sales / Marketing" userLabel: type: object properties: id: type: string format: uuid name: type: string default: Alex faceUrl: type: string default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/300.jpg" iconUrl: type: string default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/60.jpg" device: type: object properties: id: type: string format: uuid name: type: string default: Alex's iPhone model: type: string default: iPhone os: type: string default: iOS osVersion: type: string default: 14.0.1 xml: name: device profileBrief: type: object properties: userId: type: string format: uuid name: type: string position: type: string experience: type: string departmentName: type: string photoUrl: type: string faceUrl: type: string iconUrl: type: string statusText: type: string statusTypes: type: array items: $ref: '#/definitions/profileStatusType' xml: name: profileBrief profileStatusType: type: object properties: id: type: string label: type: string enabled: type: boolean xml: name: item dashboardWidget: type: object properties: ref: type: string label: type: string url: type: string totalCount: type: integer format: int64 items: type: array items: $ref: '#/definitions/dashboardWidgetItem' xml: name: widgetId dashboardWidgetItem: type: object properties: id: type: string format: uuid itemTitle: type: string itemUrl: type: string itemImageUrl: type: string itemDate: type: string format: datetime itemTip: type: string itemEntityId: type: integer format: int64 actorId: type: string format: uuid actorName: type: string actorIconUrl: type: string actionTitle: type: string actionStyle: type: string description: define color enum: - info - success - warning - danger xml: name: item feedback: type: object properties: id: description: Feedback model ID. type: string format: uuid user_id: description: User model ID. type: string format: uuid default: null department_id: description: Department model ID. type: string format: uuid default: null score: description: Feedback score. type: integer example: 5 text: description: Feedback text. type: string example: Example text. is_anonymous: description: Anonymous feedback. type: boolean example: false default: false user_name: description: The user name to which the feedback was left. type: string default: "" department_name: description: The department name to which the feedback was left. type: string default: "" created_user_name: description: The name of the user who left the feedback if it was not anonymous. type: string # Added by API Auto Mocking Plugin # host: api.hrbox.io # basePath: /api/v2 schemes: - https # Added by API Auto Mocking Plugin host: virtserver.swaggerhub.com basePath: /hrbox.io/Mobile/2.0.0