@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Avaza API Documentation
@base https://api.avaza.com
@version v1
@auth OAuth2
@endpoints 94
@hint download_for_search
@toc api(90), ScheduleSeries(4)

@group api
@endpoint GET /api/Account
@returns(200)
@errors {401}

@endpoint GET /api/Bill
@optional {UpdatedAfter: any, pageSize: any, pageNumber: any, Sort: any, CompanyIDFK: any}
@returns(200)
@errors {401}

@endpoint POST /api/Bill
@required {model: map}
@returns(200)

@endpoint GET /api/Bill/{id}
@required {id: any}
@errors {401, 404}

@endpoint GET /api/BillPayment
@optional {UpdatedAfter: any, pageSize: any, pageNumber: any}
@returns(200)
@errors {401}

@endpoint POST /api/BillPayment
@required {model: map}
@returns(200)

@endpoint GET /api/BillPayment/{id}
@required {id: any}
@returns(200)
@errors {401, 404}

@endpoint GET /api/Company/Lookup
@optional {pageSize: any, pageNumber: any, search: any}
@returns(200)

@endpoint GET /api/Company
@optional {UpdatedAfter: any, pageSize: any, pageNumber: any, Sort: any}
@returns(200)
@errors {401}

@endpoint PUT /api/Company
@required {model: map}
@returns(200)

@endpoint POST /api/Company
@required {model: map}
@returns(200)
@errors {401}

@endpoint GET /api/Company/{id}
@required {id: any}
@returns(200)
@errors {401, 404}

@endpoint GET /api/Contact
@optional {UpdatedAfter: any, pageSize: any, pageNumber: any, Sort: any, CompanyIDFK: any}
@returns(200)
@errors {401}

@endpoint POST /api/Contact
@required {model: map}
@returns(200)
@errors {401}

@endpoint GET /api/Contact/{id}
@required {id: any}
@returns(200)
@errors {401, 404}

@endpoint GET /api/CreditNote
@optional {UpdatedAfter: any, pageSize: any, pageNumber: any}
@returns(200)
@errors {401}

@endpoint GET /api/CreditNote/{id}
@required {id: any}
@returns(200)
@errors {401, 404}

@endpoint GET /api/Currency
@returns(200)

@endpoint GET /api/Estimate
@optional {UpdatedAfter: any, pageSize: any, pageNumber: any, Sort: any, CompanyIDFK: any}
@returns(200)
@errors {401}

@endpoint POST /api/Estimate
@required {model: map}
@returns(200)

@endpoint GET /api/Estimate/{id}
@required {id: any}
@errors {401, 404}

@endpoint POST /api/Expense/Attachment
@required {File: any}
@returns(200)

@endpoint POST /api/ExpenseApproval/Submit
@required {ExpenseIDs: [int(int64)]}
@optional {UserID: any, SendNotifications: any}
@returns(200)

@endpoint GET /api/Expense
@optional {UpdatedAfter: any, ExpenseDateFrom: any, ExpenseDateTo: any, UserEmail: any, UserID: any, CategoryName: any, CustomerID: any, ProjectID: any, isChargeable: any, isInvoiced: any, ExpenseReimbursementIDFK: any, ExpensePaymentMethodIDFK: any, ExpenseApprovalStatusCode: any, Search: any, pageSize: any, pageNumber: any, Sort: any}
@returns(200)
@errors {401}

@endpoint PUT /api/Expense
@required {model: map}
@returns(200)

@endpoint POST /api/Expense
@required {model: map}
@returns(200)

@endpoint DELETE /api/Expense
@required {ExpenseIDs: [int(int64)]}
@returns(200)

@endpoint GET /api/Expense/{id}
@required {id: any}
@returns(200)
@errors {401, 404}

@endpoint GET /api/ExpenseCategory
@optional {isEnabled: any}
@returns(200)
@errors {401}

@endpoint GET /api/ExpenseGroup/Lookup
@optional {pageSize: any, pageNumber: any, search: any}
@returns(200)

@endpoint GET /api/ExpenseMerchant/Lookup
@optional {pageSize: any, pageNumber: any, search: any}
@returns(200)

@endpoint GET /api/ExpensePaymentMethod/Lookup
@returns(200)

@endpoint GET /api/ExpenseSummary
@optional {model.groupBy: any, model.expenseDateFrom: any, model.expenseDateTo: any, model.userID: any, model.projectID: any}
@returns(200)

@endpoint GET /api/FixedAmount
@optional {UpdatedAfter: any, ProjectID: any, TaskID: any, isInvoiced: any, pageSize: any, pageNumber: any, Sort: any}
@returns(200)
@errors {401}

@endpoint GET /api/Inventory
@optional {UpdatedAfter: any, pageSize: any, pageNumber: any}
@returns(200)
@errors {401}

@endpoint GET /api/Inventory/{id}
@required {id: any}
@errors {401, 404}

@endpoint GET /api/Invoice
@optional {UpdatedAfter: any, pageSize: any, pageNumber: any, TransactionStatusCode: any, IssueDateFrom: any, IssueDateTo: any, DueDateFrom: any, DueDateTo: any, Sort: any, CompanyIDFK: any}
@returns(200)
@errors {401}

@endpoint PUT /api/Invoice
@required {model: map}
@returns(200)

@endpoint POST /api/Invoice
@required {model: map}
@returns(200)

@endpoint GET /api/Invoice/{id}
@required {id: any}
@errors {401, 404}

@endpoint GET /api/Payment
@optional {InvoiceTransactionID: any, UpdatedAfter: any, pageSize: any, pageNumber: any}
@returns(200)
@errors {401}

@endpoint POST /api/Payment
@required {model: map}
@returns(200)

@endpoint GET /api/Payment/{id}
@required {id: any}
@returns(200)
@errors {401, 404}

@endpoint GET /api/Project/Lookup
@optional {pageSize: any, pageNumber: any, TimesheetUserID: any, CompanyIDFK: any, search: any, ProjectCode: any}
@returns(200)

@endpoint GET /api/Project
@optional {UpdatedAfter: any, pageSize: any, pageNumber: any, Sort: any, TimesheetUserID: any, CompanyID: any, ProjectCategoryID: any, ProjectOwnerUserID: any, ProjectStatusCode: any, ProjectBillableTypeCode: any, ProjectBudgetTypeCode: any, DateCreatedFrom: any, DateCreatedTo: any, includeArchived: any}
@returns(200)

@endpoint PUT /api/Project
@required {model: map}
@returns(200)

@endpoint POST /api/Project
@required {model: map}
@returns(200)
@errors {401}

@endpoint GET /api/Project/{id}
@required {id: any}
@returns(200)
@errors {401, 404}

@endpoint GET /api/ProjectMember
@optional {ProjectID: any, UserID: any}
@returns(200)
@errors {401}

@endpoint PUT /api/ProjectMember
@required {model: map}
@returns(200)

@endpoint POST /api/ProjectMember
@required {model: map}
@returns(200)

@endpoint GET /api/ProjectTimesheetCategory
@optional {ProjectID: any}
@returns(200)
@errors {401}

@endpoint PUT /api/ProjectTimesheetCategory
@required {model: map}
@returns(200)

@endpoint POST /api/ProjectTimesheetCategory
@required {model: map}
@returns(200)

@endpoint GET /api/RecurringInvoice
@optional {UpdatedAfter: any, pageSize: any, pageNumber: any, Sort: any, CompanyIDFK: any}
@returns(200)
@errors {401}

@endpoint GET /api/RecurringInvoice/{id}
@required {id: any}
@errors {401, 404}

@endpoint GET /api/ScheduleAssignment
@optional {UpdatedAfter: any, ScheduleDateFrom: any, ScheduleDateTo: any, ScheduleSeriesID: any, UserID: any, UserEmail: any, pageSize: any, pageNumber: any, Sort: any}
@returns(200)
@errors {401}

@endgroup

@group ScheduleSeries
@endpoint POST /ScheduleSeries/AddBooking
@required {model: map}
@returns(200)

@endpoint POST /ScheduleSeries/AddLeave
@required {model: map}
@returns(200)

@endpoint PUT /ScheduleSeries/EditLeave
@required {model: map}
@returns(200)

@endpoint PUT /ScheduleSeries/EditBooking
@required {model: map}
@returns(200)

@endgroup

@group api
@endpoint GET /api/ScheduleSeries
@optional {UpdatedAfter: any, ScheduleStartDateFrom: any, ScheduleStartDateTo: any, ScheduleEndDateFrom: any, ScheduleEndDateTo: any, UserID: any, UserEmail: any, TimeSheetCategoryID: any, TimeSheetCategoryName: any, LeaveTypeID: any, ProjectID: any, CompanyID: any, pageSize: any, pageNumber: any, Sort: any}
@returns(200)
@errors {401}

@endpoint POST /api/ScheduleSeries
@required {seriesFilter: map}
@returns(200)
@errors {401}

@endpoint DELETE /api/ScheduleSeries/{id}
@required {id: any}
@returns(200)

@endpoint GET /api/Section
@required {ProjectID: any}
@returns(200)
@errors {401}

@endpoint POST /api/Section
@required {model: map}
@returns(200)

@endpoint DELETE /api/Section
@required {SectionID: any}
@returns(200)

@endpoint GET /api/Task/Lookup
@required {projectID: any}
@optional {pageSize: any, pageNumber: any, hideCompleted: any, search: any}
@returns(200)

@endpoint GET /api/Task
@optional {UpdatedAfter: any, pageSize: any, pageNumber: any, Sort: any, isComplete: any, ProjectID: any, TaskStatusCode: any, TaskPriorityCode: any, DueDateFrom: any, DueDateTo: any, AssignedToUserIDs: any}
@returns(200)
@errors {401}

@endpoint PUT /api/Task
@required {model: map}
@returns(200)

@endpoint POST /api/Task
@required {model: map}
@returns(200)

@endpoint DELETE /api/Task
@required {TaskID: any}
@returns(200)

@endpoint GET /api/Task/{id}
@required {id: any}
@returns(200)
@errors {401, 404}

@endpoint GET /api/TaskDiscussion
@required {TaskID: any}
@optional {pageSize: any, startItem: any}
@returns(200)

@endpoint GET /api/TaskStatus
@returns(200)

@endpoint GET /api/TaskType
@returns(200)

@endpoint GET /api/Tax
@returns(200)

@endpoint GET /api/Timesheet/deleted
@optional {UserID: any, DeletedAfter: any, EntryDateFrom: any, EntryDateTo: any, Sort: any, PageSize: any, PageNumber: any}
@returns(200)

@endpoint GET /api/Timesheet
@optional {UpdatedAfter: any, EntryDateFrom: any, EntryDateTo: any, UserID: any, UserEmail: any, CategoryName: any, TimesheetEntryApprovalStatusCode: any, ProjectID: any, TaskID: any, isBillable: any, isInvoiced: any, isTimerRunning: any, pageSize: any, pageNumber: any, includeInvoiceDetails: any, Sort: any}
@returns(200)
@errors {401}

@endpoint PUT /api/Timesheet
@required {model: map}
@returns(200)

@endpoint POST /api/Timesheet
@required {model: map}
@returns(200)

@endpoint GET /api/Timesheet/{id}
@required {id: any}
@returns(200)
@errors {401, 404}

@endpoint DELETE /api/Timesheet/{id}
@required {id: any}
@returns(200)

@endpoint POST /api/TimesheetSubmission
@optional {SendNotifications: any, WholeWeekOf: any, WholeDayOf: any, UserID: any}
@returns(200)

@endpoint GET /api/TimesheetSummary
@optional {model.groupBy: any, model.entryDateFrom: any, model.entryDateTo: any, model.userID: any, model.projectID: any, model.isBillable: any, model.isInvoiced: any, model.timesheetEntryApprovalStatusCode: any}
@returns(200)

@endpoint GET /api/TimesheetTimer
@optional {UserID: any}
@returns(200)
@errors {401, 404}

@endpoint POST /api/TimesheetTimer/{id}
@required {id: any}
@optional {UserID: any}
@returns(200)
@errors {400, 401, 404}

@endpoint DELETE /api/TimesheetTimer/{id}
@required {id: any}
@optional {UserID: any}
@returns(200)
@errors {400, 401, 404}

@endpoint GET /api/UserProfile
@optional {Roles: any, Tags: any, CurrentUserOnly: any, CompanyIDFK: any, Email: any}
@returns(200)

@endpoint GET /api/Webhook
@returns(200)

@endpoint POST /api/Webhook
@required {model: map}
@returns(201)
@errors {401, 409}

@endpoint DELETE /api/Webhook
@required {target_url: any}
@returns(200)
@errors {401}

@endpoint GET /api/Webhook/{id}
@required {id: any}
@returns(200)

@endpoint DELETE /api/Webhook/{id}
@required {id: any}
@returns(200)
@errors {401}

@endgroup

@end
