Field Squared API Services

<back to all web services

InventoryItemTemplate

The following routes are available for this service:
GET,PUT,POST,DELETE/{Workspace}/InventoryItemTemplate
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


class CustomFieldDataType(str, Enum):
    TEXT = 'Text'
    NUMBER = 'Number'
    DECIMAL = 'Decimal'
    MONEY = 'Money'
    PHONE_NUMBER = 'PhoneNumber'
    SSN = 'Ssn'
    LIST = 'List'
    DATE = 'Date'
    FILE = 'File'
    BARCODE = 'Barcode'
    GPS = 'GPS'
    PHOTO = 'Photo'
    SPACER = 'Spacer'
    SEPARATOR = 'Separator'
    AUTO_NUMBER = 'AutoNumber'
    TEXT_AREA = 'TextArea'
    CONTACT = 'Contact'
    USER = 'User'
    ASSET = 'Asset'
    CHECKBOX = 'Checkbox'
    CORE_ASSET_LIST = 'CoreAssetList'
    CORE_TASK_LIST = 'CoreTaskList'
    CORE_PARENT_TASK = 'CoreParentTask'
    CORE_CONTACT_LIST = 'CoreContactList'
    COMBO_BOX = 'ComboBox'
    DATE_TIME = 'DateTime'
    TIME = 'Time'
    LOCATION = 'Location'
    CORE_LOCATION = 'CoreLocation'
    LABEL = 'Label'
    EVENT_LOG = 'EventLog'
    ADDRESS = 'Address'
    CATALOG = 'Catalog'
    CORE_TEAM_LIST = 'CoreTeamList'
    SEGMENT = 'Segment'
    CORE_TIME_SERIES = 'CoreTimeSeries'
    TIME_SERIES = 'TimeSeries'
    COMMAND = 'Command'
    AUTO_NUMBER_NUMERIC = 'AutoNumberNumeric'
    CATALOG_LIST = 'CatalogList'
    CATALOG_COMBO_BOX = 'CatalogComboBox'
    DATE_RANGE = 'DateRange'
    DOCUMENT_GRID = 'DocumentGrid'
    REPORT_LINK = 'ReportLink'
    HYPERLINK = 'Hyperlink'
    PERCENT_COMPLETE = 'PercentComplete'
    CHART = 'Chart'
    RANGE = 'Range'
    EXTERNAL_ID = 'ExternalId'
    ASSET_CATALOG = 'AssetCatalog'
    INVENTORY = 'Inventory'
    CORE_TASK_LABOR_ITEM_TYPES = 'CoreTaskLaborItemTypes'
    CORE_TASK_LABOR_ITEMS = 'CoreTaskLaborItems'
    OBJECT_LIST = 'ObjectList'
    CORE_TIME_ZONE = 'CoreTimeZone'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CustomField:
    key: Optional[str] = None
    label: Optional[str] = None
    is_active: bool = False
    is_read_only: bool = False
    is_hidden: bool = False
    is_mandatory: bool = False
    display_on_map: bool = False
    custom_field_data_type: Optional[CustomFieldDataType] = None
    values: Optional[str] = None
    prompt: Optional[str] = None
    default: Optional[str] = None
    default_auto_update: bool = False
    required_if: Optional[str] = None
    hidden: Optional[List[str]] = None
    read_only: Optional[List[str]] = None
    control_args: Optional[Dict[str, Object]] = None
    index_slot: Optional[str] = None
    index: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InventoryItemTemplate:
    object_id: Optional[str] = None
    workspace: Optional[str] = None
    name: Optional[str] = None
    custom_fields: Optional[List[CustomField]] = None

Python InventoryItemTemplate DTOs

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

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /{Workspace}/InventoryItemTemplate HTTP/1.1 
Host: dev.fieldsquared.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	ObjectId: String,
	Workspace: String,
	Name: String,
	CustomFields: 
	[
		{
			Key: String,
			Label: String,
			IsActive: False,
			IsReadOnly: False,
			IsHidden: False,
			IsMandatory: False,
			DisplayOnMap: False,
			CustomFieldDataType: Text,
			Values: String,
			Prompt: String,
			Default: String,
			DefaultAutoUpdate: False,
			RequiredIf: String,
			Hidden: 
			[
				String
			],
			ReadOnly: 
			[
				String
			],
			ControlArgs: 
			{
				String: {}
			},
			IndexSlot: String,
			Index: String
		}
	]
}