| GET | /{Workspace}/API/Task/Schema | ||
|---|---|---|---|
| GET, PUT, POST, DELETE | /{Workspace}/API/Task/{Id} | ||
| GET, PUT, POST, DELETE | /{Workspace}/API/Task | ||
| GET | /{Workspace}/API/Task/Schema/{TaskTemplate} |
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports Field2Office.API.Model.PublicApi.Tasks
Imports Field2Office.API.Model.Tasks
Imports Field2Office.API.Model
Imports Field2Office.API.Model.Schedules
Imports Field2Office.API.Model.Documents
Imports Field2Office.API.Model.Teams
Imports Field2Office.DomainObjects.Model
Imports Field2Office.Core.Model.Task
Imports Field2Office.API.Model.Workspaces
Imports Field2Office.DomainObjects
Namespace Global
Namespace Field2Office.API.Model
Public Partial Class Address
Public Overridable Property Street As String
Public Overridable Property Unit As String
Public Overridable Property City As String
Public Overridable Property State As String
Public Overridable Property Zip As String
Public Overridable Property ContactTitle As String
Public Overridable Property ContactName As String
Public Overridable Property ContactPhone As String
Public Overridable Property ContactEmail As String
Public Overridable Property Location As Location
Public Overridable Property SiteName As String
Public Overridable Property GeocodeFailed As Boolean
Public Overridable Property Country As String
End Class
Public Partial Class ClassedItem
Public Sub New()
Ancestors = New List(Of String)
End Sub
Public Overridable Property ObjectId As String
Public Overridable Property [Class] As String
Public Overridable Property VersionId As String
Public Overridable Property Ancestors As List(Of String)
Public Overridable Property Type As String
End Class
Public Partial Class DomainItem
Public Overridable Property Workspace As String
Public Overridable Property ObjectId As String
Public Overridable Property VersionId As String
Public Overridable Property LastUpdated As String
End Class
Public Partial Class EventItem
Public Overridable Property ObjectId As String
Public Overridable Property [Date] As String
Public Overridable Property Location As Location
Public Overridable Property Barcode As String
Public Overridable Property Details As String
Public Overridable Property Type As String
Public Overridable Property IsScan As Boolean
Public Overridable Property User As String
Public Overridable Property SelectedBy As String
Public Overridable Property Status As String
Public Overridable Property StatusType As String
Public Overridable Property DateCreated As String
Public Overridable Property Automatic As Boolean
End Class
Public Partial Class Location
Public Overridable Property y As Double
Public Overridable Property x As Double
End Class
End Namespace
Namespace Field2Office.API.Model.Documents
'''<Summary>
'''Represents a document associated with a task or user. To return multiple documents, call /{Workspace}/Document and pass in query parameter ids = comma separated list of document ids.
'''</Summary>
Public Partial Class Document
Public Sub New()
Data = New Dictionary(Of String, Object)
SecondaryOwners = New List(Of ClassedItem)
RangeExceptions = New List(Of RangeExceptionItem)
End Sub
Public Overridable Property Workspace As String
Public Overridable Property AssignedWorkspace As String
Public Overridable Property ObjectId As String
Public Overridable Property VersionId As String
Public Overridable Property BasedOn As String
Public Overridable Property Created As String
Public Overridable Property ExternalId As String
Public Overridable Property LastUpdated As String
Public Overridable Property Type As String
Public Overridable Property Name As String
Public Overridable Property Title As String
Public Overridable Property Data As Dictionary(Of String, Object)
Public Overridable Property Owner As ClassedItem
Public Overridable Property SecondaryOwners As List(Of ClassedItem)
Public Overridable Property Location As Location
Public Overridable Property [Date] As String
Public Overridable Property CreatedBy As String
Public Overridable Property PercentComplete As Double
Public Overridable Property PercentTotal As Integer
Public Overridable Property PercentDone As Integer
Public Overridable Property RangeExceptions As List(Of RangeExceptionItem)
Public Overridable Property Submitted As Boolean
Public Overridable Property Schema As String
Public Overridable Property OwnerData As DocumentOwnerData
End Class
Public Partial Class DocumentOwnerData
Public Overridable Property OwnerType As String
Public Overridable Property TaskData As DocumentOwnerDataTask
Public Overridable Property AssetData As DocumentOwnerDataAsset
End Class
Public Partial Class DocumentOwnerDataAsset
Public Sub New()
CustomDataFields = New List(Of CustomDataField)
End Sub
Public Overridable Property ObjectId As String
Public Overridable Property Name As String
Public Overridable Property AssetType As String
Public Overridable Property LastUpdated As Date
Public Overridable Property Created As Date
Public Overridable Property Address As AddressBasic
Public Overridable Property CustomDataFields As List(Of CustomDataField)
End Class
Public Partial Class DocumentOwnerDataTask
Public Sub New()
CustomDataFields = New List(Of CustomDataField)
End Sub
Public Overridable Property ObjectId As String
Public Overridable Property Name As String
Public Overridable Property Status As String
Public Overridable Property TaskType As String
Public Overridable Property LastUpdated As Date
Public Overridable Property Created As Date
Public Overridable Property Priority As Nullable(Of Integer)
Public Overridable Property Rank As Decimal
Public Overridable Property FirstTeam As Team
Public Overridable Property Address As Address
Public Overridable Property CustomDataFields As List(Of CustomDataField)
End Class
Public Partial Class RangeExceptionItem
Public Overridable Property Binding As String
Public Overridable Property Message As String
Public Overridable Property Type As String
Public Overridable Property ClassName As String
End Class
End Namespace
Namespace Field2Office.API.Model.PublicApi.Tasks
<DataContract>
Public Partial Class PublicTask
Public Sub New()
Tasks = New List(Of Task)
End Sub
<DataMember>
Public Overridable Property Id As String
<DataMember>
Public Overridable Property Workspace As String
<DataMember>
Public Overridable Property TaskTemplate As String
<DataMember>
Public Overridable Property Task As Task
<DataMember>
Public Overridable Property Tasks As List(Of Task)
End Class
End Namespace
Namespace Field2Office.API.Model.Schedules
Public Partial Class Schedule
Public Sub New()
Users = New List(Of String)
Teams = New List(Of String)
Data = New Dictionary(Of String, Object)
End Sub
Public Overridable Property Workspace As String
Public Overridable Property ObjectId As String
Public Overridable Property VersionId As String
Public Overridable Property BasedOn As String
Public Overridable Property Start As String
Public Overridable Property [End] As String
Public Overridable Property TimeZone As String
Public Overridable Property Users As List(Of String)
Public Overridable Property Teams As List(Of String)
Public Overridable Property Data As Dictionary(Of String, Object)
End Class
End Namespace
Namespace Field2Office.API.Model.Tasks
'''<Summary>
'''Contains the data for a task within the system, with versioned object referneces to users and forms.
'''</Summary>
Public Partial Class Task
Public Sub New()
Schedules = New List(Of Schedule)
Users = New List(Of String)
UsersExtended = New List(Of DomainItem)
Teams = New List(Of DomainItem)
Documents = New List(Of String)
Docs = New List(Of DomainItem)
DocSummaries = New List(Of Document)
Data = New Dictionary(Of String, Object)
Contacts = New List(Of String)
Assets = New List(Of String)
Tasks = New List(Of String)
Events = New List(Of EventItem)
UserStatuses = New Dictionary(Of String, List(Of EventItem))
InventoryItems = New List(Of String)
LaborItems = New List(Of String)
RequiredAssets = New List(Of RequiredAsset)
RequiredInventoryTypes = New List(Of RequiredInventoryType)
RequiredUsers = New List(Of RequiredUser)
CustomDataFields = New List(Of CustomDataField)
End Sub
Public Overridable Property Workspace As String
Public Overridable Property AssignedWorkspace As String
Public Overridable Property ObjectId As String
Public Overridable Property VersionId As String
Public Overridable Property BasedOn As String
Public Overridable Property ExternalId As String
Public Overridable Property Created As String
Public Overridable Property LastUpdated As String
Public Overridable Property LastUpdatedLocal As String
Public Overridable Property Rank As Decimal
Public Overridable Property Name As String
Public Overridable Property Description As String
Public Overridable Property Address As Address
Public Overridable Property Schedules As List(Of Schedule)
Public Overridable Property Status As String
Public Overridable Property BlockedReason As String
Public Overridable Property TaskType As String
Public Overridable Property DueDate As String
Public Overridable Property DesiredCompletionDate As String
Public Overridable Property DesiredTimeWindow As TimeWindow
Public Overridable Property Priority As Nullable(Of Integer)
Public Overridable Property PercentComplete As Double
Public Overridable Property Users As List(Of String)
Public Overridable Property UsersExtended As List(Of DomainItem)
Public Overridable Property Teams As List(Of DomainItem)
Public Overridable Property Documents As List(Of String)
Public Overridable Property Docs As List(Of DomainItem)
Public Overridable Property DocSummaries As List(Of Document)
Public Overridable Property Data As Dictionary(Of String, Object)
Public Overridable Property Contacts As List(Of String)
Public Overridable Property StatusLocation As Location
Public Overridable Property Assets As List(Of String)
Public Overridable Property Tasks As List(Of String)
Public Overridable Property Owner As String
Public Overridable Property Events As List(Of EventItem)
Public Overridable Property UserStatuses As Dictionary(Of String, List(Of EventItem))
Public Overridable Property CreatedBy As String
Public Overridable Property TimeZone As String
Public Overridable Property SeriesId As String
Public Overridable Property JobTimerRunTime As Integer
Public Overridable Property JobTimerPauseTime As Integer
Public Overridable Property JobTimerTransitTime As Integer
Public Overridable Property CurrentJobTimerStatus As String
Public Overridable Property CurrentJobTimerTime As String
Public Overridable Property InventoryItems As List(Of String)
Public Overridable Property LaborItems As List(Of String)
Public Overridable Property RequiredAssets As List(Of RequiredAsset)
Public Overridable Property RequiredInventoryTypes As List(Of RequiredInventoryType)
Public Overridable Property RequiredUsers As List(Of RequiredUser)
Public Overridable Property Locked As Boolean
Public Overridable Property Ready As Boolean
Public Overridable Property TaskTemplate As TaskTemplate
Public Overridable Property CustomDataFields As List(Of CustomDataField)
End Class
Public Partial Class TimeWindow
Public Overridable Property Start As Integer
Public Overridable Property [End] As Integer
End Class
End Namespace
Namespace Field2Office.API.Model.Teams
'''<Summary>
'''Represents a DTO for a team in a workspace. Calls without an ObjectId will retrieve an array of all team objects for the workspace.
'''</Summary>
Public Partial Class Team
Public Sub New()
Members = New List(Of DomainItem)
Data = New Dictionary(Of String, String)
Teams = New List(Of String)
Events = New List(Of EventItem)
ActiveLaborTypes = New Dictionary(Of String, Object)
End Sub
Public Overridable Property Workspace As String
Public Overridable Property TimeZone As String
Public Overridable Property ObjectId As String
Public Overridable Property ExternalId As String
Public Overridable Property VersionId As String
Public Overridable Property BasedOn As String
Public Overridable Property Name As String
Public Overridable Property Enabled As Boolean
Public Overridable Property Members As List(Of DomainItem)
Public Overridable Property Lead As DomainItem
Public Overridable Property Parent As DomainItem
Public Overridable Property Address As Address
Public Overridable Property Data As Dictionary(Of String, String)
Public Overridable Property Teams As List(Of String)
Public Overridable Property Events As List(Of EventItem)
Public Overridable Property CreatedBy As String
Public Overridable Property ActiveLaborTypes As Dictionary(Of String, Object)
End Class
End Namespace
Namespace Field2Office.API.Model.Workspaces
Public Partial Class CustomField
Public Sub New()
Hidden = New List(Of String)
ReadOnly = New List(Of String)
ControlArgs = New Dictionary(Of String, Object)
End Sub
Public Overridable Property Key As String
Public Overridable Property Label As String
Public Overridable Property IsActive As Boolean
Public Overridable Property IsReadOnly As Boolean
Public Overridable Property IsHidden As Boolean
Public Overridable Property IsMandatory As Boolean
Public Overridable Property DisplayOnMap As Boolean
Public Overridable Property CustomFieldDataType As CustomFieldDataType
Public Overridable Property Values As String
Public Overridable Property Prompt As String
Public Overridable Property [Default] As String
Public Overridable Property DefaultAutoUpdate As Boolean
Public Overridable Property RequiredIf As String
Public Overridable Property Hidden As List(Of String)
Public Overridable Property ReadOnly As List(Of String)
Public Overridable Property ControlArgs As Dictionary(Of String, Object)
Public Overridable Property IndexSlot As String
Public Overridable Property Index As String
End Class
End Namespace
Namespace Field2Office.Core.Model.Task
Public Partial Class CustomDataField
Public Overridable Property Binding As String
Public Overridable Property Label As String
Public Overridable Property Value As Object
Public Overridable Property DataType As String
Public Overridable Property IsReadOnly As Boolean
Public Overridable Property IsHidden As Boolean
Public Overridable Property Values As String
End Class
End Namespace
Namespace Field2Office.DomainObjects
Public Enum CustomFieldDataType
Text
Number
[Decimal]
Money
PhoneNumber
Ssn
List
[Date]
File
Barcode
GPS
Photo
Spacer
Separator
AutoNumber
TextArea
Contact
User
Asset
Checkbox
CoreAssetList
CoreTaskList
CoreParentTask
CoreContactList
ComboBox
DateTime
Time
Location
CoreLocation
Label
EventLog
Address
Catalog
CoreTeamList
Segment
CoreTimeSeries
TimeSeries
Command
AutoNumberNumeric
CatalogList
CatalogComboBox
DateRange
DocumentGrid
ReportLink
Hyperlink
PercentComplete
Chart
Range
ExternalId
AssetCatalog
Inventory
CoreTaskLaborItemTypes
CoreTaskLaborItems
ObjectList
CoreTimeZone
End Enum
End Namespace
Namespace Field2Office.DomainObjects.Model
Public Partial Class Address
Inherits AddressBase
Public Overridable Property SiteName As String
Public Overridable Property ContactTitle As String
Public Overridable Property ContactName As String
Public Overridable Property ContactPhone As String
Public Overridable Property ContactEmail As String
End Class
Public Partial Class AddressBase
Public Overridable Property Id As String
Public Overridable Property AddressLine1 As String
Public Overridable Property AddressLine2 As String
Public Overridable Property City As String
Public Overridable Property State As String
Public Overridable Property Zip As String
Public Overridable Property Location As Location
Public Overridable Property Name As String
Public Overridable Property NameSingleLine As String
Public Overridable Property NameSingleLine5DigitZip As String
Public Overridable Property HasValidLocation As Boolean
Public Overridable Property GeocodeFailed As Boolean
Public Overridable Property GeocodeResultCode As String
Public Overridable Property Country As String
End Class
Public Partial Class AddressBasic
Inherits AddressBase
End Class
Public Partial Class BindingDescriptor
Public Overridable Property Binding As String
Public Overridable Property Required As Boolean
End Class
Public Partial Class Location
Public Overridable Property Latitude As Double
Public Overridable Property Longitude As Double
Public Overridable Property HasValidLocation As Boolean
End Class
Public Partial Class RequiredAsset
Public Overridable Property Number As Integer
Public Overridable Property Type As String
End Class
Public Partial Class RequiredInventoryType
Public Overridable Property Number As Integer
Public Overridable Property Type As String
Public Overridable Property Name As String
Public Overridable Property IsSerialized As Boolean
Public Overridable Property Description As String
End Class
Public Partial Class RequiredUser
Public Sub New()
SkillTags = New List(Of String)
End Sub
Public Overridable Property Number As Integer
Public Overridable Property SkillTags As List(Of String)
End Class
Public Partial Class TaskStatusDef
Public Sub New()
TransitionCustomFields = New List(Of String)
AutoCreateDocuments = New List(Of String)
SubmittedForms = New List(Of BindingDescriptor)
End Sub
Public Overridable Property Name As String
Public Overridable Property Color As String
Public Overridable Property Code As String
Public Overridable Property TransitionFrom As String
Public Overridable Property TransitionMessage As String
Public Overridable Property TransitionCustomFields As List(Of String)
Public Overridable Property HiddenIf As String
Public Overridable Property IsStart As Boolean
Public Overridable Property IsEnd As Boolean
Public Overridable Property IsBlocked As Boolean
Public Overridable Property StatusType As String
Public Overridable Property ProgressType As String
Public Overridable Property AutoCreateDocuments As List(Of String)
Public Overridable Property LockTask As Boolean
Public Overridable Property SubmittedForms As List(Of BindingDescriptor)
End Class
Public Partial Class TaskTemplate
Public Sub New()
CustomFields = New List(Of CustomField)
Statuses = New List(Of TaskStatusDef)
End Sub
Public Overridable Property CustomFields As List(Of CustomField)
Public Overridable Property Statuses As List(Of TaskStatusDef)
Public Overridable Property TaskListDetails As String
Public Overridable Property AutoAssignStatus As String
Public Overridable Property AutoUnassignStatus As String
Public Overridable Property AutoScheduleStatus As String
Public Overridable Property AutoUnscheduleStatus As String
Public Overridable Property AutoUpdateStartStatus As String
Public Overridable Property AutoUpdateEndStatus As String
Public Overridable Property ArrivalStatus As String
Public Overridable Property DepartureStatus As String
Public Overridable Property ConfirmArrival As Boolean
Public Overridable Property ConfirmDeparture As Boolean
Public Overridable Property ManualArrivalAllowed As Boolean
Public Overridable Property ManualDepartureAllowed As Boolean
Public Overridable Property HideDisabledStatuses As Boolean
Public Overridable Property GeofenceRadius As Integer
End Class
End Namespace
End Namespace
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /{Workspace}/API/Task/{Id} HTTP/1.1
Host: dev.fieldsquared.com
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"Id":"String","Workspace":"String","TaskTemplate":"String","Task":{"Name":"String","Description":"String","ExternalId":"String","TaskType":"String","Priority":0,"DueDate":"String","DesiredCompletionDate":"String","Lat":0,"Lon":0,"StreetAddress":"String","Unit":"String","City":"String","State":"String","Zip":"String","Country":"String","ScheduleStart":"String","ScheduleEnd":"String","Status":"String","User":"String","Team":"String","Asset":"String","Contact":"String","TimeZone":"String","LastUpdated":"String","Created":"String","Data":{"String":{}}},"Tasks":[{"Name":"String","Description":"String","ExternalId":"String","TaskType":"String","Priority":0,"DueDate":"String","DesiredCompletionDate":"String","Lat":0,"Lon":0,"StreetAddress":"String","Unit":"String","City":"String","State":"String","Zip":"String","Country":"String","ScheduleStart":"String","ScheduleEnd":"String","Status":"String","User":"String","Team":"String","Asset":"String","Contact":"String","TimeZone":"String","LastUpdated":"String","Created":"String","Data":{"String":{}}}]}