openapi: 3.0.0 info: title: Acall Public API version: v1 servers: - url: https://api.workstyleos.com/v1/ security: - Bearer: [] tags: - name: User API x-displayName: ユーザー API - name: Facility API x-displayName: 設備 API - name: Event API x-displayName: イベント API - name: Gate API x-displayName: ゲート API - name: Spot API x-displayName: スポット API - name: Spot Reservation API x-displayName: スポット予約 API paths: /users: get: operationId: getUsers parameters: - description: 取得件数を指定します explode: true in: query name: limit required: false schema: type: integer style: form - description: オフセットを指定します explode: true in: query name: offset required: false schema: type: integer style: form - description: 名前、Emailアドレス、検索キー、部署名からあいまい検索します explode: true in: query name: freeword required: false schema: type: string style: form responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/User' type: array description: ユーザー 一覧を返します summary: ユーザー 一覧取得 tags: - User API /users/{user_id}: get: operationId: getUser parameters: - explode: false in: path name: user_id required: true schema: type: string style: simple responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserDetail' description: ユーザー 詳細を返します summary: ユーザー 詳細取得 tags: - User API /facilities: get: operationId: getFacilities parameters: - description: 取得件数を指定します explode: true in: query name: limit required: false schema: type: integer style: form - description: オフセットを指定します explode: true in: query name: offset required: false schema: type: integer style: form - description: 設備名と場所からあいまい検索します explode: true in: query name: freeword required: false schema: type: string style: form responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/Facility' type: array description: 設備 一覧を返します summary: 設備 一覧取得 tags: - Facility API /facilities/{facility_id}: get: operationId: getFacility parameters: - explode: false in: path name: facility_id required: true schema: type: string style: simple responses: '200': content: application/json: schema: $ref: '#/components/schemas/FacilityDetail' description: 設備 詳細を返します summary: 設備 詳細取得 tags: - Facility API /events: get: operationId: getEvents parameters: - description: 取得件数を指定します explode: true in: query name: limit required: false schema: type: integer style: form - description: オフセットを指定します explode: true in: query name: offset required: false schema: type: integer style: form - description: イベントのタイトル、説明、アジェンダからあいまい検索します explode: true in: query name: freeword required: false schema: type: string style: form - description: 検索期間の開始日時を指定します explode: true in: query name: starting_at required: false schema: format: date-time type: string style: form - description: 検索期間の終了日時を指定します explode: true in: query name: ending_at required: false schema: format: date-time type: string style: form responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/Event' type: array description: イベント 一覧を返します summary: イベント 一覧取得 tags: - Event API /events/{event_id}: get: operationId: getEvent parameters: - explode: false in: path name: event_id required: true schema: type: string style: simple responses: '200': content: application/json: schema: $ref: '#/components/schemas/EventDetail' description: イベント 詳細を返します summary: イベント 詳細取得 tags: - Event API /gates/logs: get: operationId: getGateLogs parameters: - description: 取得件数を指定します explode: true in: query name: limit required: false schema: type: integer style: form - description: オフセットを指定します explode: true in: query name: offset required: false schema: type: integer style: form - description: ゲート名、解錠者名からあいまい検索します explode: true in: query name: freeword required: false schema: type: string style: form - description: 検索期間の開始日時を指定します explode: true in: query name: starting_at required: false schema: format: date-time type: string style: form - description: 検索期間の終了日時を指定します explode: true in: query name: ending_at required: false schema: format: date-time type: string style: form responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/GateLog' type: array description: ゲートアクセスログ 一覧を返します summary: ゲートアクセスログ 一覧取得 tags: - Gate API /spots: get: operationId: getSpots parameters: - description: 取得件数を指定します explode: true in: query name: limit required: false schema: type: integer style: form - description: オフセットを指定します explode: true in: query name: offset required: false schema: type: integer style: form - description: spot_idより下の階層のスポット一覧を検索します explode: true in: query name: root_spot_id required: false schema: type: string style: form responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/Spot' type: array description: スポット 一覧を返します summary: スポット 一覧取得 tags: - Spot API /spot_reservations/: get: operationId: getSpotReservations parameters: - description: 取得件数を指定します explode: true in: query name: limit required: false schema: type: integer style: form - description: オフセットを指定します explode: true in: query name: offset required: false schema: type: integer style: form - description: spot_idより下の階層のスポット一覧を検索します explode: true in: query name: root_spot_id required: false schema: type: string style: form - description: 検索期間の開始日時を指定します explode: true in: query name: starting_at required: false schema: format: date-time type: string style: form - description: 検索期間の終了日時を指定します explode: true in: query name: ending_at required: false schema: format: date-time type: string style: form responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/SpotReservation' type: array description: スポット予約 一覧を返します summary: スポット予約 一覧取得 tags: - Spot Reservation API post: operationId: postSpotReservation requestBody: $ref: '#/components/requestBodies/inline_object' responses: '201': content: application/json: schema: $ref: '#/components/schemas/SpotReservationDetail' description: 予約の作成に成功しました。 summary: スポット予約 新規作成 tags: - Spot Reservation API /spot_reservations/{spot_reservation_id}: delete: operationId: deleteSpotReservation parameters: - explode: false in: path name: spot_reservation_id required: true schema: type: string style: simple requestBody: $ref: '#/components/requestBodies/inline_object_1' responses: '204': description: 指定されたスポット予約を削除します summary: スポット予約 削除 (複数スポットに紐づく予約データは削除不可) tags: - Spot Reservation API get: operationId: getSpotReservation parameters: - explode: false in: path name: spot_reservation_id required: true schema: type: string style: simple responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/SpotReservationDetail' type: array description: 指定されたスポット予約の詳細を返します summary: スポット予約 詳細取得 tags: - Spot Reservation API patch: operationId: putSpotReservation parameters: - explode: false in: path name: spot_reservation_id required: true schema: type: string style: simple requestBody: $ref: '#/components/requestBodies/inline_object_2' responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/SpotReservationDetail' type: array description: 指定されたスポット予約の更新結果を返します summary: スポット予約 更新 tags: - Spot Reservation API components: requestBodies: inline_object_1: content: application/json: schema: $ref: '#/components/schemas/inline_object_1' required: true inline_object: content: application/json: schema: $ref: '#/components/schemas/inline_object' inline_object_2: content: application/json: schema: $ref: '#/components/schemas/inline_object_2' required: true schemas: User: example: user_id: 00000000-0000-0000-0000-0000000000000 family_name: 山田 given_name: 太郎 family_name_phonetic: やまだ given_name_phonetic: たろう email: yamada@example.com tel: 000-0000-0000 role_names: - admin groups: - group_id: 00000000-0000-0000-0000-0000000000000 group_name: 営業部 - group_id: 00000000-0000-0000-0000-0000000000000 group_name: 開発部 properties: user_id: type: string family_name: type: string given_name: type: string family_name_phonetic: type: string given_name_phonetic: type: string email: type: string tel: type: string role_names: items: type: string type: array belong_groups: items: $ref: '#/components/schemas/UserBelongGroup' type: array UserBelongGroup: example: group_id: 00000000-0000-0000-0000-0000000000000 group_name: 営業部 properties: group_id: type: string group_name: type: string UserDetail: example: user_id: 00000000-0000-0000-0000-0000000000000 family_name: 山田 given_name: 太郎 family_name_phonetic: やまだ given_name_phonetic: たろう email: yamada@example.com tel: 000-0000-0000 role_names: - admin groups: - group_id: 00000000-0000-0000-0000-0000000000000 group_name: 営業部 - group_id: 00000000-0000-0000-0000-0000000000000 group_name: 開発部 properties: user_id: type: string family_name: type: string given_name: type: string family_name_phonetic: type: string given_name_phonetic: type: string email: type: string tel: type: string role_names: items: type: string type: array belong_groups: items: $ref: '#/components/schemas/UserDetailBelongGroup' type: array UserDetailBelongGroup: example: group_id: 00000000-0000-0000-0000-0000000000000 group_name: 営業部 properties: group_id: type: string group_name: type: string Facility: example: facilityID: 00000000-0000-0000-0000-0000000000000 facility_name: メイン会議室 location: 神戸本社 type: room usage: - 社内 - 来客 description: 神戸本社で一番広い会議室 properties: facility_id: type: string facility_name: type: string location: type: string type: enum: - room - equipment type: string usage: items: type: string type: array description: type: string FacilityDetail: example: facility_id: 00000000-0000-0000-0000-0000000000000 facility_name: メイン会議室 location: 神戸本社 type: room usage: - 社内 - 来客 description: 神戸本社で一番広い会議室 properties: facility_id: type: string facility_name: type: string location: type: string type: enum: - room - equipment type: string usage: items: type: string type: array description: type: string Event: example: event_id: 00000000-0000-0000-0000-0000000000000 title: 打ち合わせ guests: - guest_id: 00000000-0000-0000-0000-0000000000000 family_name: 相田 given_name: 晴香 family_name_phonetic: あいだ given_name_phonetic: はるか guest_company_name: 〇〇銀行 emails: - aida@example.com - haruka@example.com - guest_id: 00000000-0000-0000-0000-0000000000000 family_name: 坂上 given_name: 茜 family_name_phonetic: さかがみ given_name_phonetic: あかね guest_company_name: 〇〇金融 emails: - sakagami@example.com - akane@example.com starting_at: '2020-03-06T16:10:00+09:00' ending_at: '2020-03-06T16:40:00+09:00' attend_users: - user_id: 00000000-0000-0000-0000-0000000000000 family_name: 田中 given_name: 宗次 email: s-tanaka@example.com - user_id: 00000000-0000-0000-0000-0000000000001 family_name: 佐藤 given_name: 圭一 email: k-sato@example.com facilities: - facility_id: 00000000-0000-0000-0000-0000000000000 facility_name: メイン会議室 facility_type: room - facility_id: 00000000-0000-0000-0000-0000000000001 facility_name: サブ会議室 facility_type: room note: 打ち合わせのメモ agendas: - agenda1 - agenda2 mail_template_id: 00000000-0000-0000-0000-0000000000000 access_policy: tenant properties: event_id: type: string title: type: string guests: items: $ref: '#/components/schemas/EventGuest' type: array starting_at: format: date-time type: string ending_at: format: date-time type: string attend_users: items: $ref: '#/components/schemas/EventAttendUser' type: array facilities: items: $ref: '#/components/schemas/EventFacility' type: array note: type: string agendas: items: type: string type: array mail_template_id: type: string access_policy: description: 「tenant」の場合、来訪者情報閲覧ポリシーに従ってイベントが公開されます。「attend_user」の場合出席者のみにイベントが公開されます。 enum: - tenant - attend_user type: string EventGuest: example: guest_id: 00000000-0000-0000-0000-0000000000000 family_name: 相田 given_name: 晴香 family_name_phonetic: あいだ given_name_phonetic: はるか guest_company_name: 〇〇銀行 emails: - aida@example.com - haruka@example.com properties: guest_id: type: string family_name: type: string given_name: type: string family_name_phonetic: type: string given_name_phonetic: type: string guest_company_name: type: string emails: items: type: string type: array EventAttendUser: example: user_id: 00000000-0000-0000-0000-0000000000000 properties: user_id: type: string family_name: type: string given_name: type: string email: type: string EventFacility: example: facility_id: 00000000-0000-0000-0000-0000000000000 properties: facility_id: type: string facility_name: type: string facility_type: type: string EventDetail: example: event_id: 00000000-0000-0000-0000-0000000000000 title: 打ち合わせ guests: - guest_id: 00000000-0000-0000-0000-0000000000000 family_name: 相田 given_name: 晴香 family_name_phonetic: あいだ given_name_phonetic: はるか guest_company_name: 〇〇銀行 emails: - aida@example.com - haruka@example.com - guest_id: 00000000-0000-0000-0000-0000000000000 family_name: 坂上 given_name: 茜 family_name_phonetic: さかがみ given_name_phonetic: あかね guest_company_name: 〇〇金融 emails: - sakagami@example.com - akane@example.com starting_at: '2020-03-06T16:10:00+09:00' ending_at: '2020-03-06T16:40:00+09:00' attend_users: - user_id: 00000000-0000-0000-0000-0000000000000 family_name: 田中 given_name: 宗次 email: s-tanaka@example.com - user_id: 00000000-0000-0000-0000-0000000000001 family_name: 佐藤 given_name: 圭一 email: k-sato@example.com facilities: - facility_id: 00000000-0000-0000-0000-0000000000000 facility_name: メイン会議室 facility_type: room - facility_id: 00000000-0000-0000-0000-0000000000001 facility_name: サブ会議室 facility_type: room note: 打ち合わせのメモ agendas: - agenda1 - agenda2 mail_template_id: 00000000-0000-0000-0000-0000000000000 access_policy: tenant properties: event_id: type: string title: type: string guests: items: $ref: '#/components/schemas/EventDetailGuest' type: array starting_at: format: date-time type: string ending_at: format: date-time type: string attend_users: items: $ref: '#/components/schemas/EventDetailAttendUser' type: array facilities: items: $ref: '#/components/schemas/EventDetailFacility' type: array note: type: string agendas: items: type: string type: array mail_template_id: type: string access_policy: description: 「tenant」の場合、来訪者情報閲覧ポリシーに従ってイベントが公開されます。「attend_user」の場合出席者のみにイベントが公開されます。 enum: - tenant - attend_user type: string EventDetailGuest: example: guest_id: 00000000-0000-0000-0000-0000000000000 family_name: 相田 given_name: 晴香 family_name_phonetic: あいだ given_name_phonetic: はるか guest_company_name: 〇〇銀行 emails: - aida@example.com - haruka@example.com properties: guest_id: type: string family_name: type: string given_name: type: string family_name_phonetic: type: string given_name_phonetic: type: string guest_company_name: type: string emails: items: type: string type: array EventDetailAttendUser: example: user_id: 00000000-0000-0000-0000-0000000000000 properties: user_id: type: string family_name: type: string given_name: type: string email: type: string EventDetailFacility: example: facility_id: 00000000-0000-0000-0000-0000000000000 properties: facility_id: type: string facility_name: type: string facility_type: type: string GateLog: example: gate_name: エントランスゲート status: ok opened_at: '2020-03-06T16:10:00+09:00' operators: - operator_type: guest operator_name: 山田太郎 - operator_type: guest operator_name: 相田晴香 passers: - id: 00000000-0000-0000-0000-0000000000000 family_name: 山田 given_name: 太郎 family_name_ruby: やまだ given_name_ruby: たろう - id: 00000000-0000-0000-0000-0000000000001 family_name: 相田 given_name: 晴香 family_name_ruby: そうだ given_name_ruby: はるか properties: gate_id: type: string gate_name: type: string status: enum: - ok - expired - forbidden - timeout - not_found - internal_server_error type: string opened_at: format: date-time type: string operators: items: $ref: '#/components/schemas/GateOperator' type: array passers: items: $ref: '#/components/schemas/GatePasser' type: array GateOperator: example: operator_type: guest operator_name: 山田太郎 properties: operator_type: enum: - user - guest type: string operator_name: type: string GatePasser: example: id: 00000000-0000-0000-0000-0000000000000 family_name: 山田 given_name: 太郎 family_name_ruby: やまだ given_name_ruby: たろう properties: id: type: string family_name: type: string given_name: type: string family_name_ruby: type: string given_name_ruby: type: string Spot: example: spot_id: 00000000-0000-0000-0000-0000000000000 name: 座席A qr_token: '00000000000000000000000000000000' properties: spot_id: type: string name: type: string qr_token: type: string SpotReservation: example: spot_reservation_id: 00000000-0000-0000-0000-0000000000000 spot_id: 00000000-0000-0000-0000-0000000000000 starting_at: '2021-08-01T16:10:00+09:00' ending_at: '2021-08-01T17:10:00+09:00' invited_users: - user_id: 00000000-0000-0000-0000-0000000000000 - user_id: 00000000-0000-0000-0000-0000000000000 title: 〇〇の打ち合わせ description: 〇〇について話します properties: spot_reservation_id: type: string spot_id: type: string starting_at: format: date-time type: string ending_at: format: date-time type: string invited_users: items: $ref: '#/components/schemas/InvitedUser' type: array title: type: string description: type: string InvitedUser: example: user_id: 00000000-0000-0000-0000-0000000000000 properties: user_id: type: string SpotReservationDetail: example: spot_reservation_id: 00000000-0000-0000-0000-0000000000000 spot_id: 00000000-0000-0000-0000-0000000000000 starting_at: '2021-08-01T16:10:00+09:00' ending_at: '2021-08-01T17:10:00+09:00' invited_users: - user_id: 00000000-0000-0000-0000-0000000000000 - user_id: 00000000-0000-0000-0000-0000000000000 title: 〇〇の打ち合わせ description: 〇〇について話します properties: spot_reservation_id: type: string spot_id: type: string starting_at: format: date-time type: string ending_at: format: date-time type: string invited_users: items: $ref: '#/components/schemas/InvitedUser' type: array title: type: string description: type: string inline_object: example: spot_id: 00000000-0000-0000-0000-0000000000000 starting_at: '2021-08-06T16:00:00+09:00' ending_at: '2021-08-06T17:00:00+09:00' send_mail: true invited_user_ids: - 00000000-0000-0000-0000-0000000000000 - 00000000-0000-0000-0000-0000000000000 title: 〇〇の打ち合わせ description: 〇〇について話します properties: spot_id: type: string starting_at: format: date-time type: string ending_at: format: date-time type: string send_mail: type: boolean invited_user_ids: items: type: string type: array title: type: string description: type: string type: object inline_object_1: example: send_mail: true properties: send_mail: type: boolean type: object inline_object_2: example: starting_at: '2021-08-06T16:00:00+09:00' ending_at: '2021-08-06T17:00:00+09:00' send_mail: true invited_user_ids: - 00000000-0000-0000-0000-0000000000000 - 00000000-0000-0000-0000-0000000000000 title: 予約1 description: 〇〇について話します properties: starting_at: format: date-time type: string ending_at: format: date-time type: string send_mail: type: boolean invited_user_ids: items: type: string type: array title: type: string description: type: string type: object securitySchemes: Bearer: description: Access token for API scheme: bearer type: http