AlayaCare visit inbox API

The visit inbox API from AlayaCare — 14 operation(s) for visit inbox.

OpenAPI Specification

alayacare-visit-inbox-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.19-oas3
  title: AlayaCare Accounting Accounts visit inbox API
  description: '**AlayaCare IDs:**

    The following terms are used to reference IDs that identify resources in AlayaCare:

    - id

    - visit_id

    - premium_id

    - visit_premium_id

    - employee_id

    - cost_centre_id

    - client_id


    **External IDs**

    The following terms are used to reference IDs that identify resources systems external to AlayaCare:

    - employee_external_id

    - client_external_id


    External IDs are required to be unique.

    No other assumptions are made regarding their format they are treated as strings.

    '
servers:
- url: https://example.alayacare.com/ext/api/v2/accounting
security:
- basic_auth: []
tags:
- name: visit inbox
paths:
  /v1/inbox/visits:
    get:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin` who was assigned the associated referral or service.


        # Description

        Get a collection of Visits for a given referral or service.


        One of `referral_id` or `service_id` must be provided.

        '
      parameters:
      - $ref: '#/components/parameters/ReferralIdQueryParam'
      - $ref: '#/components/parameters/ServiceIdQueryParam'
      - $ref: '#/components/parameters/PageNumberParam'
      - $ref: '#/components/parameters/ItemsPerPageParam'
      - in: query
        name: sort_by
        schema:
          type: string
          enum:
          - last_modified
          - start_at
          default: start_at
      - $ref: '#/components/parameters/SortOrderParam'
      responses:
        200:
          description: Successfully retrieved a collection of Visits.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxVisitPageResponse'
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
  /v1/inbox/visits/{visit_id}:
    get:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin` who created or was assigned the visit.


        # Description

        Get the details of a Visit for a given Visit ID.

        '
      parameters:
      - $ref: '#/components/parameters/VisitIdPathParam'
      responses:
        200:
          description: Successfully retrieved a Visit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxVisitDetailResponse'
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
  /v1/inbox/visits/by_inbox_id/{visit_inbox_id}:
    get:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin` who created or was assigned the visit.


        # Description

        Get the details of a Visit for a given inbox Visit ID.

        '
      parameters:
      - in: path
        name: visit_inbox_id
        schema:
          type: string
        description: ID of a visit in the supply system.
        required: true
      responses:
        200:
          description: Successfully retrieved a Visit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxVisitDetailResponse'
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
  /v1/inbox/visits/schedule:
    post:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin`.


        # Description

        Schedule a visit by the Supply organization for an associated service or

        referral.


        One of `referral_id` or `service_id` must be provided.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InboxVisitScheduleRequest'
      responses:
        201:
          description: Successfully scheduled a Visit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxVisitScheduleResponse'
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
  /v1/inbox/visits/{visit_id}/assign:
    parameters:
    - $ref: '#/components/parameters/VisitIdPathParam'
    post:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin`.


        # Description

        Assign an employee to a visit.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InboxVisitAssignRequest'
      responses:
        204:
          description: Successfully assigned an employee to the visit.
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
  /v1/inbox/visits/{visit_id}/unassign:
    parameters:
    - $ref: '#/components/parameters/VisitIdPathParam'
    post:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin`.


        # Description

        Unassign an employee from a visit.

        '
      responses:
        204:
          description: Successfully unassigned the employee from the visit.
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
  /v1/inbox/visits/{visit_id}/delete:
    parameters:
    - $ref: '#/components/parameters/VisitIdPathParam'
    post:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin`.


        # Description

        Delete a visit of a service referral. The supply organization deleting the visit

        must be identical to the one that scheduled the original visit.

        '
      responses:
        204:
          description: Successfully deleted the visit.
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
  /v1/inbox/visits/{visit_id}/hold:
    parameters:
    - $ref: '#/components/parameters/VisitIdPathParam'
    post:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin`.


        # Description

        Hold a visit of a service referral. The supply organization holding the visit

        must be identical to the one that scheduled the original visit.

        '
      responses:
        204:
          description: Successfully held the visit.
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
  /v1/inbox/visits/{visit_id}/cancel:
    parameters:
    - $ref: '#/components/parameters/VisitIdPathParam'
    post:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin`.


        # Description

        Cancel a visit of a service referral. The supply organization cancelling the visit

        must be identical to the one that scheduled the original visit.

        '
      responses:
        204:
          description: Successfully cancelled the visit.
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
  /v1/inbox/visits/{visit_id}/reactivate:
    parameters:
    - $ref: '#/components/parameters/VisitIdPathParam'
    post:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin`.


        # Description

        Reactivates a visit of a service referral. The supply organization ractivating the visit

        must be identical to the one that scheduled the original visit.

        '
      responses:
        204:
          description: Successfully reactivated the visit.
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
  /v1/inbox/visits/{visit_id}/adjust_timekeeping:
    parameters:
    - $ref: '#/components/parameters/VisitIdPathParam'
    post:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin`.


        # Description

        Adjust the timekeeping metadata of a visit. The supply organization holding the visit

        must be identical to the one that scheduled the original visit.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InboxVisitAdjustTimekeepingRequest'
      responses:
        204:
          description: Successfully adjusted the verified date-times of the visit.
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
  /v1/inbox/visits/{visit_id}/reschedule:
    parameters:
    - $ref: '#/components/parameters/VisitIdPathParam'
    post:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin`.


        # Description

        Reschedule a visit of a service referral. The supply organization rescheduling

        the visit must be identical to the one that scheduled the original visit.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InboxVisitRescheduleRequest'
      responses:
        200:
          description: Successfully rescheduled visit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxVisitRescheduleResponse'
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
  /v1/inbox/visits/{visit_id}/tasks:
    parameters:
    - $ref: '#/components/parameters/VisitIdPathParam'
    post:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin`.


        # Description

        Create visit tasks for a visit scheduled by supply from a service referral.

        Each inbox task id must correspond to a referral task''s inbox_id.

        Inbox task ids that don''t have corresponding referral tasks will be ignored.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InboxVisitTasksCreationRequest'
      responses:
        200:
          description: Successfully created visit task.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxVisitTasksCreationResponse'
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
  /v1/inbox/visits/{visit_id}/tasks/complete:
    parameters:
    - $ref: '#/components/parameters/VisitIdPathParam'
    post:
      tags:
      - visit inbox
      description: '# Authorization

        Required role: supply `org_admin`.


        # Description

        Complete one (or more) visit task for the specified visit.<br><br>

        Subsequent posts for the same task id updates the task.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InboxVisitTaskCompletionRequest'
      responses:
        200:
          description: Successfully completed visit tasks.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboxVisitTaskCollectionResponse'
      x-amazon-apigateway-integration:
        uri:
          Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${OfferApiFunctionV2.Arn}:live/invocations
        httpMethod: POST
        passthroughBehavior: when_no_match
        type: aws_proxy
components:
  schemas:
    InboxVisitScheduleResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
        inbox_id:
          type: string
          minLength: 1
        start_at:
          type: string
          format: date-time
        end_at:
          type: string
          format: date-time
        service_id:
          type: string
          format: uuid
        referral_id:
          type: string
          format: uuid
      required:
      - id
      - inbox_id
      - start_at
      - end_at
      - service_id
      - referral_id
    InboxVisitTaskCollectionResponse:
      type: object
      properties:
        tasks:
          type: array
          items:
            $ref: '#/components/schemas/InboxVisitTaskCompletionCore'
      required:
      - tasks
    InboxVisitRescheduleResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
        start_at:
          type: string
          format: date-time
        end_at:
          type: string
          format: date-time
      required:
      - id
      - start_at
      - end_at
    PageNumberCore:
      type: integer
      minimum: 1
      default: 1
    InboxVisitTaskCompletionCore:
      type: object
      properties:
        id:
          type: string
          format: uuid
        is_completed:
          type: boolean
        completed_at:
          type: string
          format: date-time
        completion_comment:
          type: string
      required:
      - id
      - is_completed
    SortOrderCore:
      type: string
      enum:
      - asc
      - desc
      default: desc
    InboxVisitCore:
      allOf:
      - $ref: '#/components/schemas/VisitCore'
      - type: object
        properties:
          inbox_id:
            type: string
    InboxVisitPageResponse:
      allOf:
      - $ref: '#/components/schemas/PageCore'
      - type: object
        properties:
          items:
            type: array
            items:
              $ref: '#/components/schemas/InboxVisitCollectionResponse'
    InboxVisitScheduleRequest:
      type: object
      properties:
        inbox_id:
          type: string
          minLength: 1
        start_at:
          type: string
          format: date-time
        end_at:
          type: string
          format: date-time
        service_id:
          type: string
          format: uuid
        referral_id:
          type: string
          format: uuid
      required:
      - inbox_id
      - start_at
      - end_at
    ItemsPerPageCore:
      type: integer
      minimum: 1
      default: 100
    PageCore:
      description: Root page schema for returning collections.
      type: object
      properties:
        page:
          $ref: '#/components/schemas/PageNumberCore'
        items_per_page:
          $ref: '#/components/schemas/ItemsPerPageCore'
        total_items:
          type: integer
          minimum: 0
        total_pages:
          type: integer
          minimum: 0
      required:
      - page
      - items_per_page
      - total_items
      - total_pages
    InboxVisitCollectionResponse:
      allOf:
      - $ref: '#/components/schemas/InboxVisitCore'
    VisitCore:
      type: object
      properties:
        id:
          type: string
          format: uuid
        referral_id:
          type: string
          format: uuid
        service_id:
          type: string
          format: uuid
        status:
          type: string
          enum:
          - scheduled
          - deleted
          - cancelled
          - on_hold
        start_at:
          type: string
          format: date-time
        end_at:
          type: string
          format: date-time
      required:
      - status
      - id
      - referral_id
      - service_id
      - start_at
      - end_at
    InboxVisitTaskCompletionRequest:
      type: object
      properties:
        tasks:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/InboxVisitTaskCompletionCore'
      required:
      - tasks
    InboxVisitAdjustTimekeepingRequest:
      type: object
      properties:
        verified_start_at:
          type: string
          format: date-time
        verified_end_at:
          type: string
          format: date-time
    InboxVisitRescheduleRequest:
      type: object
      properties:
        start_at:
          type: string
          format: date-time
        end_at:
          type: string
          format: date-time
      required:
      - start_at
      - end_at
    InboxVisitTasksCreationRequest:
      type: object
      properties:
        inbox_ids:
          type: array
          items:
            type: string
      required:
      - inbox_ids
    InboxVisitDetailResponse:
      type: object
      properties:
        visit:
          title: InboxVisitDetailCore
          allOf:
          - $ref: '#/components/schemas/InboxVisitCore'
          - properties:
              verified_start_at:
                type: string
                format: date-time
              verified_end_at:
                type: string
                format: date-time
        supply_employee:
          title: InboxVisitDetailSupplyEmployeeResponse
          type: object
          properties:
            id:
              type: string
              format: uuid
            supply_persona_id:
              type: string
              format: uuid
            ssn_placeholder:
              type: string
            inbox_employee_id:
              type: integer
            first_name:
              type: string
            last_name:
              type: string
            date_of_birth:
              type: string
              format: date
            data:
              type: object
          required:
          - id
          - supply_persona_id
          - ssn_placeholder
          - inbox_employee_id
          - first_name
          - last_name
        tasks:
          type: array
          items:
            title: InboxVisitDetailVisitTaskResponse
            type: object
            properties:
              id:
                type: string
                format: uuid
              outbox_id:
                type: string
              is_completed:
                type: boolean
              completed_at:
                type: string
                format: date-time
              completion_comment:
                type: string
            required:
            - id
            - is_completed
      required:
      - visit
      - tasks
    InboxVisitTasksCreationResponse:
      type: object
      properties:
        tasks:
          type: array
          items:
            title: InboxVisitTasksCreationItemResponse
            type: object
            properties:
              id:
                type: string
                format: uuid
              inbox_id:
                type: string
            required:
            - id
            - inbox_id
    InboxVisitAssignRequest:
      type: object
      properties:
        employee_id:
          type: integer
        first_name:
          type: string
        last_name:
          type: string
        ssn:
          type: string
        date_of_birth:
          type: string
          format: date
        data:
          type: object
      required:
      - employee_id
      - first_name
      - last_name
  parameters:
    SortOrderParam:
      in: query
      name: sort_order
      schema:
        $ref: '#/components/schemas/SortOrderCore'
    ReferralIdQueryParam:
      in: query
      name: referral_id
      schema:
        type: string
        format: uuid
    PageNumberParam:
      in: query
      name: page
      schema:
        $ref: '#/components/schemas/PageNumberCore'
    ServiceIdQueryParam:
      in: query
      name: service_id
      schema:
        type: string
        format: uuid
    ItemsPerPageParam:
      in: query
      name: items_per_page
      schema:
        $ref: '#/components/schemas/ItemsPerPageCore'
    VisitIdPathParam:
      in: path
      name: visit_id
      schema:
        type: string
        format: uuid
      required: true
      description: ID of a visit.
  securitySchemes:
    basic_auth:
      type: http
      description: Basic HTTP auth over https
      scheme: basic