Field Squared API Services

<back to all web services

PublicTask

The following routes are available for this service:
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

VB.NET PublicTask DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + 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":{}}}]}