| 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
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
}
]
}