Call our help line: 1 866-787-2548

WebSocket Reference

Providers and Configurations

API Definitions

BroadcastMaintenanceobject

Notification to clients of a scheduled maintenance window. During a maintenance window, the service may go down and come back online repeatedly until the window ends.
JSON description
PropertyTypeDescription
endingdatetimeTimestamp of when the maintenance will end.
kindBroadcastTypeDowntime!
messagestringA message about when the maintenance window begins and ends.
serverTimedatetimeThe UTC date/time of the server hosting the connection.
startingdatetimeTimestamp of when the maintenance window begins.
JSON structure
{
	"ending": string,
	"kind": string,
	"message": string,
	"serverTime": string,
	"starting": string
}

BroadcastTypestring

The kinds of broadcast messages sent to all connected clients.
ValueDescription
maintenanceNotification of impending maintenance window involving downtime. During a maintenance window, the service may go down and come back online repeatedly until the window ends.
upgradeNotification that an upgrade will be available.

BroadcastUpgradeobject

Notification to clients that an upgrade will take place (with optional requirement of reloading all resources).
JSON description
PropertyTypeDescription
etadatetimeTimestamp of when the upgrade will be ready.
kindBroadcastTypeUpgrade to v4 system.
messagestringA message about when the service upgrade will be available.
reloadbooleanTrue when system objects have changed structure. It is recommended that all resources are purged and reloaded.
serverTimedatetimeThe UTC date/time of the server hosting the connection.
JSON structure
{
	"eta": string,
	"kind": string,
	"message": string,
	"reload": boolean,
	"serverTime": string
}

connection

Gets details of the current session (yourself) and User. This is the first message sent after a connection has been initialized. If you begin sending messages before receiving the connectionResponse message, your connection may be closed abruptly.
Initial message description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
expirydatetimeThe timestamp of when this session expires.
ghostIdstringYour session identifier.
machineSelfMachineThis Machine's details (if the service is being used by a Machine). If this value is not present, then the session is not a machine account.
machine.companyuint64The company to which this user belongs.
machine.enabledbooleanIndicates whether system access is disable.
machine.formatsObject.<codified, datetimetemplate>
maximum-length of values: 20
The format strings defining the preferred way to display ambiguous values.
machine.groupsArray.<UserGroup>The list of UserGroup to which this User belongs.
machine.insecurebooleanWhen true, no access restrictions (machine.secret, machine.referrers, or machine.ipRanges) are enforced.
machine.ipRangesArray.<ipv4>
maximum-length of values: 19
Restrict service access to only the provided IP ranges. Currently we only support IPv4 ranges using CIDR slash-notation.
machine.keystring
maximum-length: 50
The unique idenifier used to access the system.
machine.languagecodified
maximum-length: 5
minimum-length: 2
Preferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
machine.measurementsObject.<codified, SystemsOfUnits>Preferred way of displaying ambiguous numbers in the context of measurements.
machine.nicknamestring
maximum-length: 100
Human friendly name for these credentials
machine.notAfterdatetimeAn optional timestamp that restricts this machine account from being used after the given date.
machine.notBeforedatetimeAn optional timestamp that restricts this machine account from being used before the given date.
machine.notesstring
maximum-length: 8000
Notes about this machine.
machine.optionsObject.<codified, string>
maximum-length of values: 20
Additional options which do not fit in with the formats or measurements preferences.
machine.permissionsArray.<Permission>Permission rules which override the group rules.
machine.referrersArray.<url>
maximum-length of values: 254
Optional list of your managed domains from which this machine account can be used.
machine.secretstring
maximum-length: 1000
A token used to encode or validate requests.
machine.servicesArray.<url>
maximum-length of values: 254
List of system service URIs that this machine account is permitted to access.
machine.timezonecodifiedThe service account's local timezone.
machine.vArray.<uint32>
messagestringAn English description of the error.
passwordPolicyPasswordPolicyThis User's Company.passwordPolicy.
passwordPolicy.expireModePasswordExpiryModeDefines how passwords expire.
passwordPolicy.expireThresholdbyteThe threshold for expiry.
passwordPolicy.includeLettersbooleanDo passwords require alphabetical characters.
passwordPolicy.includeNumbersbooleanDo passwords require numeric characters.
passwordPolicy.includeSpecialbooleanDo passwords require non-alphanumeric characters.
passwordPolicy.includeUpperLowerbooleanDo passwords require upper-case and lower-case letters.
passwordPolicy.minimumLengthbyteThe minimum number of characters required.
reqIdint32?Identifier used by external system to correlate requests to responses.
serverTimedatetimeThe UTC date/time of the server hosting the connection.
sessionPolicySessionPolicyThis User's Company.sessionPolicy.
sessionPolicy.applicationsArray.<string>The list of applications users are allowed to use to create sessions.
sessionPolicy.expireTimeoutuint16The lifetime duration of a session in minutes.
sessionPolicy.idleAllowedbooleanDefines whether a session should be automatically killed when the connection breaks.
sessionPolicy.ipv4RangesArray.<ipv4>
maximum-length of values: 19
Restrict session creation to only the provided IPv4 ranges (using CIDR slash-notation). Leave blank for Internet access.
sessionPolicy.maxSessionsbyteThe maximum number of sessions allowed per user.
sessionPolicy.multiUserSessionMultiUserDefines the behaviour of the system when a user creates multiple sessions.
userSelfUserThis session's User details (if the service is being used by a User). If this value is not present, then the session is not yet authenticated.
user.companyuint64The company to which this user belongs.
user.contactContactAssociated contact information for this user.
user.contact.addressesObject.<string, string>Mailing addresses. Use the object key like a name of the address. Example keys: Home, Work, Park, etc.
user.contact.companyuint64The company to which this contact belongs
user.contact.datesObject.<string, datetime>Date information. Use the object key like a name of the date. Example keys: Birthday, Started Date, Retired On, etc.
user.contact.emailsObject.<string, email>
maximum-length of values: 254
Email addresses. Use the object key like a name of the address. Example keys: Home, Work, Support, Old, etc.
user.contact.iduint64Unique identifier of this contact.
user.contact.namestring
maximum-length: 100
The person's name
user.contact.notesstringNotes about this person.
user.contact.optionsObject.<string, string>Uncategorized information. Use the object keys and values however you'd like.
user.contact.otherNamesObject.<string, string>
maximum-length of values: 254
A collection of other names this person might go by. Use the object key like a name identifier. Example keys: Initials, Nickname, Maiden Name, etc.
user.contact.phonesObject.<string, phone>Phone numbers. Use the object key like a name of the phone number. Example keys: Mobile, Fax, Home, Office, etc.
user.contact.picturesArray.<uint64>
for values see: Picture.id
Pictures of this Contact.
user.contact.rolesArray.<string>A list of roles they play in the Company.
user.contact.urlsObject.<string, url>
maximum-length of values: 254
Websites and other online resources. Use the object key like a name of the address. Example keys: Downloads, Support, FTP, etc.
user.contact.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
user.enabledbooleanIndicates whether system access is disable.
user.formatsObject.<codified, datetimetemplate>
maximum-length of values: 20
The format strings defining the preferred way to display ambiguous values.
user.groupsArray.<UserGroup>The list of UserGroups to which this User belongs.
user.languagecodified
maximum-length: 5
minimum-length: 2
Preferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
user.loginemail
maximum-length: 254
minimum-length: 6
The unique public email address used to access the system.
user.measurementsObject.<codified, SystemsOfUnits>Preferred way of displaying ambiguous numbers in the context of measurements.
user.nicknamestring
maximum-length: 100
Human friendly name for these credentials
user.notifyArray.<UserNotifications>
maximum-count: 7
Definition of how and when to send alerts to the user.
user.optionsObject.<codified, string>
maximum-length of values: 20
Additional options which do not fit in with the formats or measurements preferences.
user.passwordExpiredbooleanIndicated whether the credentials have expired according to the company's policy.
user.permissionsArray.<Permission>Individual permission rules which override the UserGroup rules.
user.timezonecodifiedThe user's local timezone.
user.vArray.<uint32>
Initial message structure
connectionResponse {
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"expiry": string,
	"ghostId": string,
	"machine": {
		"company": number,
		"enabled": boolean,
		"formats": {
			string: string
		},
		"groups": [
			{
				"company": number,
				"id": number,
				"name": string,
				"notes": string,
				"permissions": [
					{
						"company": number,
						"kind": string,
						"labels": [
							string
						],
						"level": string,
						"method": string,
						"type": string
					}
				],
				"v": [
					number
				]
			}
		],
		"insecure": boolean,
		"ipRanges": [
			string
		],
		"key": string,
		"language": string,
		"measurements": {
			string: string
		},
		"nickname": string,
		"notAfter": string,
		"notBefore": string,
		"notes": string,
		"options": {
			string: string
		},
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string,
				"type": string
			}
		],
		"referrers": [
			string
		],
		"secret": string,
		"services": [
			string
		],
		"timezone": string,
		"v": [
			number
		]
	},
	"message": string,
	"passwordPolicy": {
		"expireMode": string,
		"expireThreshold": number,
		"includeLetters": boolean,
		"includeNumbers": boolean,
		"includeSpecial": boolean,
		"includeUpperLower": boolean,
		"minimumLength": number
	},
	"reqId": number,
	"serverTime": string,
	"sessionPolicy": {
		"applications": [
			string
		],
		"expireTimeout": number,
		"idleAllowed": boolean,
		"ipv4Ranges": [
			string
		],
		"maxSessions": number,
		"multiUser": string
	},
	"user": {
		"company": number,
		"contact": {
			"addresses": {
				string: string
			},
			"company": number,
			"dates": {
				string: string
			},
			"emails": {
				string: string
			},
			"id": number,
			"name": string,
			"notes": string,
			"options": {
				string: string
			},
			"otherNames": {
				string: string
			},
			"phones": {
				string: number
			},
			"pictures": [
				number
			],
			"roles": [
				string
			],
			"urls": {
				string: string
			},
			"v": [
				number
			]
		},
		"enabled": boolean,
		"formats": {
			string: string
		},
		"groups": [
			{
				"company": number,
				"id": number,
				"name": string,
				"notes": string,
				"permissions": [
					{
						"company": number,
						"kind": string,
						"labels": [
							string
						],
						"level": string,
						"method": string,
						"type": string
					}
				],
				"v": [
					number
				]
			}
		],
		"language": string,
		"login": string,
		"measurements": {
			string: string
		},
		"nickname": string,
		"notify": [
			{
				"email": string,
				"enabled": boolean,
				"end": string,
				"name": string,
				"offline": [
					string
				],
				"online": [
					string
				],
				"sms": number,
				"start": string,
				"weekdays": [
					boolean
				]
			}
		],
		"options": {
			string: string
		},
		"passwordExpired": boolean,
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string,
				"type": string
			}
		],
		"timezone": string,
		"v": [
			number
		]
	}
}
Possible exceptions
Error CodeDescription
2A communication error occurred.
If you receive this error, please contact technical support.
13The client IP address is not allowed based on the Company's policy.
28The session is valid, but the CompanyPolicies is missing.
If you receive this error, please contact technical support.
54The session is valid, but the User (or Machine) is missing.
If you receive this error, please contact technical support.
73There are too many concurrent WebSocket connections for this User.

getSubscriptionsList

Gets the list of current subscriptions for this socket.
Request message description
PropertyTypeRequiredDescription
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
Request message structure
getSubscriptionsList {
	"reqId": number
}
Response message description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
subscriptionsArray.<Subscription>The list of your current subscription types.
Response message structure
getSubscriptionsListResponse {
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"subscriptions": [
		{
			"company": number,
			"subscriptionTypes": [
				string
			]
		}
	]
}
Possible exceptions
Error CodeDescription
7You cannot execute this command because your session has expired.
8You cannot execute this command because you are not logged in.
16You cannot execute this command because your password has expired.

getTimezone

Gets details of the specified Timezone.
Request message description
PropertyTypeRequiredDescription
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
timezoneParamCodealwaysAn object to contain the "code" of the Timezone.
timezone.codestringalwaysA "code" identifying a resource.
Request message structure
getTimezone {
	"reqId": number,
	"timezone": {
		"code": string
	}
}
Response message description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
timezoneTimezoneThe requested Timezone.
timezone.codecodifiedUnique timezone code
timezone.dstbooleanIndicates whether this timezone abides by daylight savings
timezone.namestringCommon timezone name
timezone.offsetint16Minutes offset from GMT
Response message structure
getTimezoneResponse {
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"timezone": {
		"code": string,
		"dst": boolean,
		"name": string,
		"offset": number
	}
}
Possible exceptions
Error CodeDescription
3The request does not contain a timezone object, or it is invalid.
3The timezone object does not contain a code, or it is invalid.
7You cannot execute this command because your session has expired.
8You cannot execute this command because you are not logged in.
16You cannot execute this command because your password has expired.
62The Timezone was not found by its codified identifier.

getTimezonesList

Gets a list of Timezones.
Request message description
PropertyTypeRequiredDescription
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
Request message structure
getTimezonesList {
	"reqId": number
}
Response message description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
timezonesArray.<Timezone>The list of valid system Timezones.
Response message structure
getTimezonesListResponse {
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"timezones": [
		{
			"code": string,
			"dst": boolean,
			"name": string,
			"offset": number
		}
	]
}
Possible exceptions
Error CodeDescription
2System Timezone list could not be retrieved.
If you receive this error, please contact technical support.
7You cannot execute this command because your session has expired.
8You cannot execute this command because you are not logged in.
16You cannot execute this command because your password has expired.

noop

Performs no operation, but will return an error if you are not logged in.
Request message description
PropertyTypeRequiredDescription
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
Request message structure
noop {
	"reqId": number
}
Response message description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response message structure
noopResponse {
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
Error CodeDescription
7Your session is invalid or expired.
7You cannot execute this command because your session has expired.
8You haven't logged in yet.
8You cannot execute this command because you are not logged in.
16You are logged in, but your pasword is expired.
16You cannot execute this command because your password has expired.

subscribe

Subscribes the socket to receive notifications for merge/delete changes to objects.
Request message description
PropertyTypeRequiredDescription
companyParamIdalwaysAn object to contain the "id" key.
company.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
subscriptionTypesArray.<SubscriptionType>alwaysThe list of subscription types you want to receive.
Request message structure
subscribe {
	"company": {
		"id": number
	},
	"reqId": number,
	"subscriptionTypes": [
		string
	]
}
Response message description
PropertyTypeDescription
companyRespIdAn object which contains only one key "id" when there is no error. The "id" key is the unique identifier of the company to which the array of objects relate.
company.iduint64?Identifier given as input for the command.
deniedArray.<SubscriptionType>Subscription types not added to your socket due to insufficient permissions.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
invalidArray.<string>A returned list of nonsense you sent to my beautiful service.
mergedArray.<SubscriptionType>Subscription types added/removed (or were not applicable) to your socket's subscription list.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response message structure
subscribeResponse {
	"company": {
		"id": number
	},
	"denied": [
		string
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"invalid": [
		string
	],
	"merged": [
		string
	],
	"message": string,
	"reqId": number
}
Possible exceptions
Error CodeDescription
3The request does not contain a company or it is invalid.
3The request does not contain a subscriptionTypes or it is invalid.
3The given subscriptionTypes is empty.
5Access was denied for all subscription types. This error is not returned if at least one subscription type succeeds.
Returns an ErrorDetailBadKeys as the errorDetails..
7You cannot execute this command because your session has expired.
8You cannot execute this command because you are not logged in.
9Your session has expired during pocessing.
16You cannot execute this command because your password has expired.

Subscriptionobject

Contains a Company.id and an array of SubscriptionTypes for each Company.
JSON description
PropertyTypeDescription
companyuint64The company relevant to the subscription types you want to receive.
subscriptionTypesArray.<SubscriptionType>List of subscription types for the company.
JSON structure
{
	"company": number,
	"subscriptionTypes": [
		string
	]
}

SubscriptionTypestring

The types of subscriptions available using subscribe/unsubscribe. Each type has a different synchronization messages and objects.
ValueMessage NameMessage ObjectsDescription
assetAdvanced
  • assetAdvanced
Assets' advanced properties such as position, attributes, and status tags.
assetDispatch
  • assetDispatch
Assets' current dispatch such as DispatchJobs and route progress.
assetGeneral
  • assetDeleted
  • assetGeneral
  • assetSuspended
Assets' general properties such as name, icon, and labels.
assetMessage
  • assetMessage
  • assetMessageDeleted
AssetMessages between Assets and Users.
behaviour
  • behaviour
  • behaviourDeleted
Configured behaviours.
behaviourLog
  • behaviourLog
  • behaviourLogDeleted
Behaviour log messages to help developers debug their BehaviourScript.
behaviourScript
  • behaviourScript
  • behaviourScriptDeleted
Behaviour script logic.
billingDiscount
      Discount rules for Assets.
      billingHosting
      • billableHostingRule
      • billableHostingRuleDeleted
      Billing rules for Assets.
      billingLicense
      • billableHostingLicense
      • billableHostingLicenseDeleted
      Hardware licenses for Providers.
      billingProfile
      • billingProfile
      • billingProfileDeleted
      Profiles used to generate BillingReport for a customer.
      billingReport
      • billingReport
      • billingReportDeleted
      Reports generated for a billee Company.
      companyGeneral
      • companyDeleted
      • companyGeneral
      Renaming and changing the nodes of a company.
      companyLabels
      • companyStyles
      Company's label and tag styles.
      companyPolicies
      • companyPolicies
      Company's SessionPolicy and PasswordPolicy.
      companyReseller
      • companyReseller
      • companyResellerDeleted
      A Company's white-labelling details.
      contact
      • contact
      • contactDeleted
      Contact information used by Assets and Users.
      dispatchJob
      • dispatchJob
      • dispatchJobDeleted
      Some work that needs to be done by performing one or more DispatchSteps.
      dispatchTask
      • dispatchTask
      • dispatchTaskDeleted
      Assets' DispatchTask information.
      document
      • document
      • documentDeleted
      Hosted document information.
      formResult
      • formResult
      • formResultDeleted
      Forms that are completed and fully filled out.
      formTemplate
      • formTemplate
      • formTemplateDeleted
      Customized forms to be filled.
      hosCarrier
      • hosCarrier
      • hosCarrierDeleted
      Hours of Service carriers.
      hosEvent
      • hosEvent
      Driver's E-log event records.
      hosInspection
      • hosInspection
      • hosInspectionDeleted
      Driver vehicle inspection reports.
      icon
      • icon
      • iconDeleted
      Synchronizes icon information.
      machine
      • machine
      • machineDeleted
      API Credentials information and permissions.
      maintenanceJob
      • maintenanceJob
      • maintenanceJobDeleted
      Historical Vehicle and Trailer maintenance work.
      maintenanceSchedule
      • maintenanceSchedule
      • maintenanceScheduleDeleted
      Recurring maintenance work for Vehicles and Trailers.
      picture
      • picture
      • pictureDeleted
      Synchronizes picture information.
      placeGeneral
      • placeDeleted
      • placeGeneral
      Place information.
      providerAdvanced
      • providerAdvanced
      Raw provider (device) data like GPS coordinates and parsed ODB-II values.
      providerConfig
      • providerConfig
      • providerConfigDeleted
      Provider (device) configurations.
      providerConfiguration
      Deprecated
      • providerConfiguration
      • providerConfigurationDeleted
      Provider (device) configurations.
      Use providerConfig instead.
      providerGeneral
      • providerDeleted
      • providerGeneral
      • providerSuspended
      Providers' (device) general properties such as name, notes, and selected Asset.
      providerRegistration
      • providerRegistration
      • providerRegistrationDeleted
      Pending Providers (devices) that have not yet been configured or provisioned.
      providerScript
      • providerScript
      • providerScriptDeleted
      Provider (device) script logic.
      reportResult
      • reportResult
      • reportResultDeleted
      Historical asset details like breadcrumb trails.
      reportSchedule
      • reportSchedule
      • reportScheduleDeleted
      Schedules for reports that run automatically.
      reportTemplate
      • reportTemplate
      • reportTemplateDeleted
      Report configurations.
      userAdvanced
      • userAdvanced
      User information such as permissions and group membership.
      userGeneral
      • userDeleted
      • userGeneral
      General user information such as name, contact information, and preferences.
      userGroup
      • userGroup
      • userGroupDeleted
      Group information for easy access control.

      unsubscribe

      Unsubscribes the socket from receiving notifications for merge/delete changes to objects.
      Request message description
      PropertyTypeRequiredDescription
      companyParamIdalwaysAn object to contain the "id" key.
      company.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      subscriptionTypesArray.<SubscriptionType>alwaysThe list of subscription types you want to receive.
      Request message structure
      unsubscribe {
      	"company": {
      		"id": number
      	},
      	"reqId": number,
      	"subscriptionTypes": [
      		string
      	]
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object which contains only one key "id" when there is no error. The "id" key is the unique identifier of the company to which the array of objects relate.
      company.iduint64?Identifier given as input for the command.
      deniedArray.<SubscriptionType>Subscription types not added to your socket due to insufficient permissions.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      invalidArray.<string>A returned list of nonsense you sent to my beautiful service.
      mergedArray.<SubscriptionType>Subscription types added/removed (or were not applicable) to your socket's subscription list.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      unsubscribeResponse {
      	"company": {
      		"id": number
      	},
      	"denied": [
      		string
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"invalid": [
      		string
      	],
      	"merged": [
      		string
      	],
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company or it is invalid.
      3The request does not contain a subscriptionTypes or it is invalid.
      3The given subscriptionTypes is empty.
      5Access was denied for all subscription types. This error is not returned if at least one subscription type succeeds.
      Returns an ErrorDetailBadKeys as the errorDetails..
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      9Your session has expired during pocessing.
      16You cannot execute this command because your password has expired.

      Assets

      getAsset

      Gets details of the specified Asset. The RESTful service does not return Asset.tasks or Asset.messages by default, but for the WebSocket the includeDispatch and includeDispatch will default to true. This behaviour will be deprecated in a future release to match the RESTful service.
      Request message description
      PropertyTypeRequiredDefaultDescription
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted Asset.
      includeMessagesbooleanoptionalfalseWhen true, the command will also return AssetMessages for the asset.
      includeTasksbooleanoptionalfalseWhen true, the command will also return the AssetDispatch for the asset.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getAsset {
      	"asset": {
      		"id": number
      	},
      	"includeDeleted": boolean,
      	"includeMessages": boolean,
      	"includeTasks": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetAssetThe requested Asset.
      asset.attributesObject.<codified, AssetAttribute>
      for keys see: AssetAttribute.name
      A list of attributes given to this asset by the connection device such as wiring state, VBus, etc.
      asset.companyuint64The company to which this asset belongs.
      asset.dispatchAssetDispatchCurrent jobs dispatched and driving directions.
      asset.dispatch.companyuint64The company to which this asset belongs.
      asset.dispatch.directionsArray.<DispatchDirection>Driving directions and route path details.
      asset.dispatch.iduint64Unique identifier of this asset.
      asset.dispatch.jobsArray.<uint64>The current list of DispatchJobs assigned to the asset.
      asset.dispatch.lastDispatcheddatetimeTimestamp from the last update to this AssetDispatch by a User, Machine, Asset, or an assigned DispatchJob.
      asset.dispatch.tasks
      Deprecated
      Array.<DispatchTask>The current list of tasks assigned to this asset.
      asset.dispatch.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      asset.iconuint64
      see: Icon.id
      The icon that represents this asset on the map and in lists.
      asset.iduint64Unique identifier of this asset.
      asset.kindAssetTypeType of asset.
      asset.labelsArray.<codified>
      for values see: LabelStyle.code
      Codified label names.
      asset.messagesArray.<AssetMessage>A list of messages sent to or from this asset.
      asset.messagingAddressstring
      maximum-length: 254
      The fall-back address which is used to send Messages if the asset is a Person and has no Contact phone or email.
      asset.namestring
      maximum-length: 100
      This thing's name.
      asset.notesstringNotes about it.
      asset.odometerdoubleThe cumulative distance travelled in kilometres.
      asset.picturesArray.<uint64>
      for values see: Picture.id
      A list of photos of this thing.
      asset.placesObject.<uint64, AssetPlaceStatus>
      for keys see: Place.id
      The current state of this asset's interaction with known Places.
      asset.positionPositionThe things GPS coordinates including speed, bearing, and street information.
      asset.position.accuracyuint32?Threshold in meters for the accuracy of a position
      asset.position.addressstringThe road segment description
      asset.position.altitudedouble?Distance in meters from the sea level
      asset.position.bearinguint16?Direction of travel
      asset.position.dtsdatetimeThe Date/Time of the GPS reading
      asset.position.latdouble?Latitude
      asset.position.lngdouble?Longitude
      asset.position.originstringProvider Identifier
      asset.position.speeddouble?Speed
      asset.position.speedLimitdouble?The posted speed limit for the road segment
      asset.position.streetAddressStreetAddressA better description of the current road-segment
      asset.position.streetAddress.citystringCity name.
      asset.position.streetAddress.countrystring
      fixed length: 2
      Country code. Codes should be a value from ISO 3166-1 alpha-2.
      asset.position.streetAddress.isTollbooleanIndicates that there is a toll for the current road segment.
      asset.position.streetAddress.numberstringHouse number.
      asset.position.streetAddress.postalstringPostal or zip code.
      asset.position.streetAddress.provincestring
      fixed length: 2
      Province or state code. Codes should be a value from ISO 3166-2.
      asset.position.streetAddress.regionstringRegion name.
      asset.position.streetAddress.streetstringFull street name.
      asset.providersArray.<string>
      for values see: Provider.id
      The list of devices providing events for this asset.
      asset.reference
      Deprecated
      string
      maximum-length: 100
      A custom field used to refer to an external system.
      Use asset.references[AssetGeneral.REFERENCE] instead.
      asset.referencesObject.<string, string>
      maximum-count: 10
      maximum-length of keys: 20
      maximum-length of values: 100
      Name/value collections of custom fields used to refer to external systems.
      asset.relationshipsArray.<uint64>
      for values see: Asset.id
      A list of assets related to this one; like a Person for a Vehicle (driver).
      asset.tagsArray.<codified>
      for values see: LabelStyle.code
      The codified status tag names.
      asset.vArray.<int32>
      fixed count: 3
      Object version keys used to validate synchronization for all object properties.
      asset.v[0]int32The first element is for the AssetGeneral properties.
      asset.v[1]int32The second element is for the AssetAdvanced properties.
      asset.v[2]int32The third element is for the Asset.dispatch properties.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getAssetResponse {
      	"asset": {
      		"attributes": {
      			string: {
      				"asset": number,
      				"complex": string,
      				"dts": string,
      				"global": boolean,
      				"name": string,
      				"provider": string,
      				"raw": Object,
      				"simple": string,
      				"unit": string
      			}
      		},
      		"company": number,
      		"dispatch": {
      			"company": number,
      			"directions": [
      				{
      					"directions": [
      						{ /* recursive DispatchDirection objects */ }
      					],
      					"distance": number,
      					"duration": string,
      					"instructions": string,
      					"job": number,
      					"path": string,
      					"step": number
      				}
      			],
      			"id": number,
      			"jobs": [
      				number
      			],
      			"lastDispatched": string,
      			"tasks": [
      				{
      					"address": string,
      					"arrived": string,
      					"asset": number,
      					"attachments": [
      						number
      					],
      					"company": number,
      					"completed": string,
      					"created": string,
      					"duration": string,
      					"eta": string,
      					"id": number,
      					"instructions": string,
      					"latlng": {
      						"lat": number,
      						"lng": number
      					},
      					"name": string,
      					"notes": string,
      					"place": number,
      					"reference": string,
      					"references": {
      						string: string
      					},
      					"signatory": string,
      					"signature": boolean,
      					"status": string,
      					"v": [
      						number
      					]
      				}
      			],
      			"v": [
      				number
      			]
      		},
      		"icon": number,
      		"id": number,
      		"kind": string,
      		"labels": [
      			string
      		],
      		"messages": [
      			{
      				"asset": number,
      				"body": string,
      				"company": number,
      				"delivered": string,
      				"folder": string,
      				"from": string,
      				"id": number,
      				"incoming": boolean,
      				"kind": string,
      				"processed": string,
      				"readBy": string,
      				"status": string,
      				"subject": string,
      				"to": string,
      				"user": string,
      				"v": [
      					number
      				]
      			}
      		],
      		"messagingAddress": string,
      		"name": string,
      		"notes": string,
      		"odometer": number,
      		"pictures": [
      			number
      		],
      		"places": {
      			string: {
      				"enter": string,
      				"kind": string,
      				"latest": string
      			}
      		},
      		"position": {
      			"accuracy": number,
      			"address": string,
      			"altitude": number,
      			"bearing": number,
      			"dts": string,
      			"lat": number,
      			"lng": number,
      			"origin": string,
      			"speed": number,
      			"speedLimit": number,
      			"streetAddress": {
      				"city": string,
      				"country": string,
      				"isToll": boolean,
      				"number": string,
      				"postal": string,
      				"province": string,
      				"region": string,
      				"street": string
      			}
      		},
      		"providers": [
      			string
      		],
      		"reference": string,
      		"references": {
      			string: string
      		},
      		"relationships": [
      			number
      		],
      		"tags": [
      			string
      		],
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a asset object, or it is invalid.
      3The asset object does not contain an id, or it is invalid.
      5You do not have permission to view this Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.

      getAssetsList

      Gets the list of Assets for the specified Company. The RESTful service does not return Asset.tasks or Asset.messages by default, but for the WebSocket the includeTasks and includeTasks will default to true. This behaviour will be deprecated in a future release to match the RESTful service.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      includeMessagesbooleanoptionalfalseWhen true, the command will also return AssetMessages for the asset.
      includeSuspendedbooleanoptionaltrueWhen true, the command will also return suspended Assets.
      includeTasksbooleanoptionalfalseWhen true, the command will also return DispatchTasks for the asset.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getAssetsList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"includeMessages": boolean,
      	"includeSuspended": boolean,
      	"includeTasks": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetsArray.<Asset>The list of requested Assets.
      companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getAssetsListResponse {
      	"assets": [
      		{
      			"attributes": {
      				string: {
      					"asset": number,
      					"complex": string,
      					"dts": string,
      					"global": boolean,
      					"name": string,
      					"provider": string,
      					"raw": Object,
      					"simple": string,
      					"unit": string
      				}
      			},
      			"company": number,
      			"dispatch": {
      				"company": number,
      				"directions": [
      					{
      						"directions": [
      							{ /* recursive DispatchDirection objects */ }
      						],
      						"distance": number,
      						"duration": string,
      						"instructions": string,
      						"job": number,
      						"path": string,
      						"step": number
      					}
      				],
      				"id": number,
      				"jobs": [
      					number
      				],
      				"lastDispatched": string,
      				"tasks": [
      					{
      						"address": string,
      						"arrived": string,
      						"asset": number,
      						"attachments": [
      							number
      						],
      						"company": number,
      						"completed": string,
      						"created": string,
      						"duration": string,
      						"eta": string,
      						"id": number,
      						"instructions": string,
      						"latlng": {
      							"lat": number,
      							"lng": number
      						},
      						"name": string,
      						"notes": string,
      						"place": number,
      						"reference": string,
      						"references": {
      							string: string
      						},
      						"signatory": string,
      						"signature": boolean,
      						"status": string,
      						"v": [
      							number
      						]
      					}
      				],
      				"v": [
      					number
      				]
      			},
      			"icon": number,
      			"id": number,
      			"kind": string,
      			"labels": [
      				string
      			],
      			"messages": [
      				{
      					"asset": number,
      					"body": string,
      					"company": number,
      					"delivered": string,
      					"folder": string,
      					"from": string,
      					"id": number,
      					"incoming": boolean,
      					"kind": string,
      					"processed": string,
      					"readBy": string,
      					"status": string,
      					"subject": string,
      					"to": string,
      					"user": string,
      					"v": [
      						number
      					]
      				}
      			],
      			"messagingAddress": string,
      			"name": string,
      			"notes": string,
      			"odometer": number,
      			"pictures": [
      				number
      			],
      			"places": {
      				string: {
      					"enter": string,
      					"kind": string,
      					"latest": string
      				}
      			},
      			"position": {
      				"accuracy": number,
      				"address": string,
      				"altitude": number,
      				"bearing": number,
      				"dts": string,
      				"lat": number,
      				"lng": number,
      				"origin": string,
      				"speed": number,
      				"speedLimit": number,
      				"streetAddress": {
      					"city": string,
      					"country": string,
      					"isToll": boolean,
      					"number": string,
      					"postal": string,
      					"province": string,
      					"region": string,
      					"street": string
      				}
      			},
      			"providers": [
      				string
      			],
      			"reference": string,
      			"references": {
      				string: string
      			},
      			"relationships": [
      				number
      			],
      			"tags": [
      				string
      			],
      			"v": [
      				number
      			]
      		}
      	],
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view any Assets for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getAssetsListByReference

      Gets the list of Assets for the specified Company only if the Asset.reference field is a match. The RESTful service does not return Asset.tasks or Asset.messages by default, but for the WebSocket the includeTasks and includeTasks will default to true. This behaviour will be deprecated in a future release to match the RESTful service.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      includeMessagesbooleanoptionalfalseWhen true, the command will also return AssetMessages for the asset.
      includeSuspendedbooleanoptionaltrueWhen true, the command will also return suspended Assets.
      includeTasksbooleanoptionalfalseWhen true, the command will also return DispatchTasks for the asset.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      referencestringoptionalCase-insensitive reference used to match Assets.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getAssetsListByReference {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"includeMessages": boolean,
      	"includeSuspended": boolean,
      	"includeTasks": boolean,
      	"limit": number,
      	"lowest": number,
      	"reference": string,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetsArray.<Asset>The list of requested Assets.
      companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      referencestringThe reference string given as input.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getAssetsListByReferenceResponse {
      	"assets": [
      		{
      			"attributes": {
      				string: {
      					"asset": number,
      					"complex": string,
      					"dts": string,
      					"global": boolean,
      					"name": string,
      					"provider": string,
      					"raw": Object,
      					"simple": string,
      					"unit": string
      				}
      			},
      			"company": number,
      			"dispatch": {
      				"company": number,
      				"directions": [
      					{
      						"directions": [
      							{ /* recursive DispatchDirection objects */ }
      						],
      						"distance": number,
      						"duration": string,
      						"instructions": string,
      						"job": number,
      						"path": string,
      						"step": number
      					}
      				],
      				"id": number,
      				"jobs": [
      					number
      				],
      				"lastDispatched": string,
      				"tasks": [
      					{
      						"address": string,
      						"arrived": string,
      						"asset": number,
      						"attachments": [
      							number
      						],
      						"company": number,
      						"completed": string,
      						"created": string,
      						"duration": string,
      						"eta": string,
      						"id": number,
      						"instructions": string,
      						"latlng": {
      							"lat": number,
      							"lng": number
      						},
      						"name": string,
      						"notes": string,
      						"place": number,
      						"reference": string,
      						"references": {
      							string: string
      						},
      						"signatory": string,
      						"signature": boolean,
      						"status": string,
      						"v": [
      							number
      						]
      					}
      				],
      				"v": [
      					number
      				]
      			},
      			"icon": number,
      			"id": number,
      			"kind": string,
      			"labels": [
      				string
      			],
      			"messages": [
      				{
      					"asset": number,
      					"body": string,
      					"company": number,
      					"delivered": string,
      					"folder": string,
      					"from": string,
      					"id": number,
      					"incoming": boolean,
      					"kind": string,
      					"processed": string,
      					"readBy": string,
      					"status": string,
      					"subject": string,
      					"to": string,
      					"user": string,
      					"v": [
      						number
      					]
      				}
      			],
      			"messagingAddress": string,
      			"name": string,
      			"notes": string,
      			"odometer": number,
      			"pictures": [
      				number
      			],
      			"places": {
      				string: {
      					"enter": string,
      					"kind": string,
      					"latest": string
      				}
      			},
      			"position": {
      				"accuracy": number,
      				"address": string,
      				"altitude": number,
      				"bearing": number,
      				"dts": string,
      				"lat": number,
      				"lng": number,
      				"origin": string,
      				"speed": number,
      				"speedLimit": number,
      				"streetAddress": {
      					"city": string,
      					"country": string,
      					"isToll": boolean,
      					"number": string,
      					"postal": string,
      					"province": string,
      					"region": string,
      					"street": string
      				}
      			},
      			"providers": [
      				string
      			],
      			"reference": string,
      			"references": {
      				string: string
      			},
      			"relationships": [
      				number
      			],
      			"tags": [
      				string
      			],
      			"v": [
      				number
      			]
      		}
      	],
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reference": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      3The reference is blank or null.
      5You do not have permission to view any Assets for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getAssetsListByReferences

      Gets the list of Assets for the specified Company only if one of the specified Asset.references fields match. If no references are specified, it will match any Asset with no references. If a reference value is null, it will match any Asset without that reference key. The RESTful service does not return Asset.tasks or Asset.messages by default, but for the WebSocket the includeTasks and includeTasks will default to true. This behaviour will be deprecated in a future release to match the RESTful service.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      includeMessagesbooleanoptionalfalseWhen true, the command will also return AssetMessages for the asset.
      includeSuspendedbooleanoptionaltrueWhen true, the command will also return suspended Assets.
      includeTasksbooleanoptionalfalseWhen true, the command will also return DispatchTasks for the asset.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      referencesObject.<string, string>optionalCase-insensitive reference pairs used to match Assets.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getAssetsListByReferences {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"includeMessages": boolean,
      	"includeSuspended": boolean,
      	"includeTasks": boolean,
      	"limit": number,
      	"lowest": number,
      	"references": {
      		string: string
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetsArray.<Asset>The list of requested Assets.
      companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      referencesObject.<string, string>The reference string given as input.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getAssetsListByReferencesResponse {
      	"assets": [
      		{
      			"attributes": {
      				string: {
      					"asset": number,
      					"complex": string,
      					"dts": string,
      					"global": boolean,
      					"name": string,
      					"provider": string,
      					"raw": Object,
      					"simple": string,
      					"unit": string
      				}
      			},
      			"company": number,
      			"dispatch": {
      				"company": number,
      				"directions": [
      					{
      						"directions": [
      							{ /* recursive DispatchDirection objects */ }
      						],
      						"distance": number,
      						"duration": string,
      						"instructions": string,
      						"job": number,
      						"path": string,
      						"step": number
      					}
      				],
      				"id": number,
      				"jobs": [
      					number
      				],
      				"lastDispatched": string,
      				"tasks": [
      					{
      						"address": string,
      						"arrived": string,
      						"asset": number,
      						"attachments": [
      							number
      						],
      						"company": number,
      						"completed": string,
      						"created": string,
      						"duration": string,
      						"eta": string,
      						"id": number,
      						"instructions": string,
      						"latlng": {
      							"lat": number,
      							"lng": number
      						},
      						"name": string,
      						"notes": string,
      						"place": number,
      						"reference": string,
      						"references": {
      							string: string
      						},
      						"signatory": string,
      						"signature": boolean,
      						"status": string,
      						"v": [
      							number
      						]
      					}
      				],
      				"v": [
      					number
      				]
      			},
      			"icon": number,
      			"id": number,
      			"kind": string,
      			"labels": [
      				string
      			],
      			"messages": [
      				{
      					"asset": number,
      					"body": string,
      					"company": number,
      					"delivered": string,
      					"folder": string,
      					"from": string,
      					"id": number,
      					"incoming": boolean,
      					"kind": string,
      					"processed": string,
      					"readBy": string,
      					"status": string,
      					"subject": string,
      					"to": string,
      					"user": string,
      					"v": [
      						number
      					]
      				}
      			],
      			"messagingAddress": string,
      			"name": string,
      			"notes": string,
      			"odometer": number,
      			"pictures": [
      				number
      			],
      			"places": {
      				string: {
      					"enter": string,
      					"kind": string,
      					"latest": string
      				}
      			},
      			"position": {
      				"accuracy": number,
      				"address": string,
      				"altitude": number,
      				"bearing": number,
      				"dts": string,
      				"lat": number,
      				"lng": number,
      				"origin": string,
      				"speed": number,
      				"speedLimit": number,
      				"streetAddress": {
      					"city": string,
      					"country": string,
      					"isToll": boolean,
      					"number": string,
      					"postal": string,
      					"province": string,
      					"region": string,
      					"street": string
      				}
      			},
      			"providers": [
      				string
      			],
      			"reference": string,
      			"references": {
      				string: string
      			},
      			"relationships": [
      				number
      			],
      			"tags": [
      				string
      			],
      			"v": [
      				number
      			]
      		}
      	],
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"references": {
      		string: string
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      3The references is not an object, or it is invalid.
      5You do not have permission to view any Assets for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      mergeAsset

      Creates a new, or updates an existing Asset.
      Request message description
      PropertyTypeRequiredDescription
      assetObject.<string, ?>alwaysA simple object to contain the Asset parameters.
      asset.attributesObject.<string, AssetAttribute>optionalAllows you to add, remove, and replace attributes. For each AssetAttribute in the attributes object, the value will be replaced on the Asset. If value is null, the attribute is removed from the Asset. If the key in the attributes object is different from the codified(AssetAttribute.name) in the object, the attribute of the key is removed from the Asset, and one of the codified name is added to the Asset. If a new value or null is not provided for a current attribute, no change is made.
      asset.colourcolour
      maximum-length: 22
      optionalThe pretty-pretty colour of this Vehicle or Trailer. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
      asset.companyuint64?createThe identifier of the Company to which this Asset belongs. After creation, this value is read-only.
      asset.contactuint64?create (for person)The contact card details for this Asset. Only applicable if asset.kind is AssetType.person.
      asset.engineHoursdouble?optionalThe number of hours the engine has been running for this Vehicle. Only applicable if asset.kind is AssetType.vehicle.
      asset.iconuint64?
      see: Icon.id
      createThe identifier of the Icon used to represent this Asset in the UI.
      asset.iduint64?updateThe unique identifier of the Asset you want to update.
      asset.kindAssetType?createThe kind of Asset being created. After creation, this value is read-only.
      asset.labelsArray.<codified>
      for values see: LabelStyle.code
      optionalA list of codified label names to categorize/organize this Asset.
      asset.makestringoptionalThe manufacturer of this Vehicle or Trailer. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
      asset.messagingAddressstringoptionalThe email address or phone number of this Asset when a Person's Contact card is blank, or the Provider's PND is not installed.
      asset.modelstringoptionalThe model of this Vehicle or Trailer. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
      asset.namestring
      maximum-length: 100
      createName for the Asset.
      asset.notesstringoptionalNotes for the Asset.
      asset.odometerdouble?optionalThe distance travelled by this Asset. Can be a GPS odometer, OBD-II odometer, or other depending on scripts.
      asset.picturesArray.<uint64>
      for values see: Picture.id
      optionalThe identifiers of Pictures of this Asset.
      asset.platestringoptionalThe license plate of this Vehicle or Trailer. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
      asset.referencesObject.<string, string>optionalName/value collections of custom fields used to refer to external systems. If the value is null, the references are removed from the Asset.
      asset.relationshipsArray.<uint64>
      for values see: Asset.id
      optionalA list of related asset identifiers like a driver for a Vehicle, or Trailer for a truck.
      asset.serialstringoptionalThe manufacturer's identification number of this Trailer. Only applicable if asset.kind is AssetType.vehicle.
      asset.tagsArray.<string>optionalReplaces the Asset's status tags with the given list of codified tags.
      asset.vArray.<int32>optional
      asset.vinstringoptionalThe Vehicle Identification Number of this Vehicle. Only applicable if asset.kind is AssetType.trailer.
      asset.yearuint16?optionalThe year this Vehicle or Trailer was built. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeAsset {
      	"asset": {
      		"attributes": {
      			string: {
      				"asset": number,
      				"complex": string,
      				"dts": string,
      				"global": boolean,
      				"name": string,
      				"provider": string,
      				"raw": Object,
      				"simple": string,
      				"unit": string
      			}
      		},
      		"colour": string,
      		"company": number,
      		"contact": number,
      		"engineHours": number,
      		"icon": number,
      		"id": number,
      		"kind": string,
      		"labels": [
      			string
      		],
      		"make": string,
      		"messagingAddress": string,
      		"model": string,
      		"name": string,
      		"notes": string,
      		"odometer": number,
      		"pictures": [
      			number
      		],
      		"plate": string,
      		"references": {
      			string: string
      		},
      		"relationships": [
      			number
      		],
      		"serial": string,
      		"tags": [
      			string
      		],
      		"v": [
      			number
      		],
      		"vin": string,
      		"year": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespIdCompanyAn object which contains the "id" and "company" keys.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeAssetResponse {
      	"asset": {
      		"company": number,
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a asset object, or it is invalid.
      3No valid changes would be performed.
      3During create: When creating a new Asset, a name was not given.
      3During create: When creating a new Asset, a company was not given.
      3During create: When creating a new Asset, an icon was not given.
      3During create (for person): When creating a new Person, a contact was not given.
      3During update: When updating an Asset, the name was given as null or blank.
      3During update: When updating an Asset, the v was not an array, or contained too few numbers.
      3During create: The kind value is not a known AssetType.
      Returns an ErrorDetailEnum as the errorDetails..
      3One of the asset.attributes names is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the asset.attributes values is not null or an object.
      Returns an ErrorDetailInput as the errorDetails..
      3The asset.attributes object is given, but empty.
      Returns an ErrorDetailInput as the errorDetails..
      3The asset.messagingAddress contains values that cannot be parsed as a phone number or email address.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the asset.pictures given in the array cannot be parsed, or is a value less than zero.
      Returns an ErrorDetailInput as the errorDetails..
      3The asset.references were not provided as null or an object.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the asset.relationships given in the array cannot be parsed, or is a value less than zero.
      Returns an ErrorDetailInput as the errorDetails..
      3During create: When creating a new Asset, too many asset.references were given as input.
      Returns an ErrorDetailMinMax as the errorDetails..
      5You do not have permission to create a new Asset.
      5You do not have permission to update this Asset.
      6During update: When updating an Asset, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20During update: When updating, the Asset was not found by its unique identifier.
      22One of the Assets given as input in the asset.relationships array was not found.
      Returns an ErrorDetailBadIds as the errorDetails..
      31The asset.contact given as input was not found.
      33The asset.icon given as input was not found.
      69One of the asset.pictures given as input in the pictures array was not found.
      Returns an ErrorDetailBadIds as the errorDetails..
      71During update: Changing the labels on this Asset in the requested way would grant you elevated access to it.
      Returns an ErrorDetailEscalation as the errorDetails..
      96During update: When updating, the Asset is suspended. Before making changes to an Asset, it must be reactivated.
      130During update: When updating an Asset, the asset.company can not be changed.
      130During update: When updating an Asset, the asset.kind can not be changed.
      130During update: When updating an Asset, the resulting number of asset.references would be too high.

      removeAsset

      Deletes an existing Asset.
      Request message description
      PropertyTypeRequiredDescription
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeAsset {
      	"asset": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespDeletedAn object which contains the Asset's id, owning Company id, and deleted status.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.deletedbooleanFlag showing if the object is deleted.
      asset.iduint64?Identifier given as input for the command.
      asset.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeAssetResponse {
      	"asset": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a asset object, or it is invalid.
      3The asset object does not contain an id, or it is invalid.
      5You do not have permission to delete this Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.

      restoreAsset

      Restores the specified Asset.
      Request message description
      PropertyTypeRequiredDescription
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreAsset {
      	"asset": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespDeletedAn object which contains the Asset's id, owning Company id, and deleted status.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.deletedbooleanFlag showing if the object is deleted.
      asset.iduint64?Identifier given as input for the command.
      asset.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreAssetResponse {
      	"asset": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a asset object, or it is invalid.
      3The asset object does not contain an id, or it is invalid.
      5You do not have permission to restore this Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.
      21The Asset was found, but is not marked as deleted.

      reviveAsset

      Revives (disables suspension on) an existing Asset.
      Request message description
      PropertyTypeRequiredDescription
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      reviveAsset {
      	"asset": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespSuspendedAn object which contains the Asset's unique identifier and suspended status.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.iduint64?Identifier given as input for the command.
      asset.suspendedbooleanFlag showing if the object is suspended.
      asset.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      reviveAssetResponse {
      	"asset": {
      		"company": number,
      		"id": number,
      		"suspended": boolean,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a asset object, or it is invalid.
      3The asset object does not contain an id, or it is invalid.
      5You do not have permission to revive this Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.
      97The Asset was found, but is not marked as suspended.

      suspendAsset

      Suspends an existing Asset.
      Request message description
      PropertyTypeRequiredDescription
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      suspendAsset {
      	"asset": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespSuspendedAn object which contains the Asset's unique identifier and suspended status.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.iduint64?Identifier given as input for the command.
      asset.suspendedbooleanFlag showing if the object is suspended.
      asset.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      suspendAssetResponse {
      	"asset": {
      		"company": number,
      		"id": number,
      		"suspended": boolean,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a asset object, or it is invalid.
      3The asset object does not contain an id, or it is invalid.
      5You do not have permission to suspended this Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.
      96The Asset was not found, but it is already marked as suspended.
      97The Asset was previously revived within the minimum period.
      Returns an ErrorDetailLocked as the errorDetails..

      Behaviours

      clearBehaviourLogsByAsset

      Gets the list of BehaviourLogs for the specified Asset.
      Request message description
      PropertyTypeRequiredDefaultDescription
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptional
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      clearBehaviourLogsByAsset {
      	"asset": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of BehaviourLogs relates.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.iduint64?Identifier given as input for the command.
      countint32The total number of behaviour logs cleared.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      clearBehaviourLogsByAssetResponse {
      	"asset": {
      		"company": number,
      		"id": number
      	},
      	"count": number,
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a asset object, or it is invalid.
      3The asset object does not contain an id, or it is invalid.
      5You do not have permission to view this Asset.
      5You do not have permission to clear Behaviours for this Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.

      clearBehaviourLogsByBehaviour

      Gets the list of BehaviourLogs for the specified Behaviour.
      Request message description
      PropertyTypeRequiredDefaultDescription
      behaviourParamIdalwaysAn object to contain the "id" of the Behaviour.
      behaviour.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptional
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      clearBehaviourLogsByBehaviour {
      	"behaviour": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      behaviourRespIdScriptAn object to contain the "id" of the Behaviour to which the array of BehaviourLogs belong.
      behaviour.companyuint64Identifier of the Company to which this object belongs.
      behaviour.iduint64?Identifier given as input for the command.
      behaviour.scriptuint64Identifier of the script to which this object belongs.
      countint32The total number of behaviour logs cleared.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      clearBehaviourLogsByBehaviourResponse {
      	"behaviour": {
      		"company": number,
      		"id": number,
      		"script": number
      	},
      	"count": number,
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a behaviour object, or it is invalid.
      3The behaviour object does not contain an id, or it is invalid.
      5You do not have permission to view BehaviourLogs for this Behaviour.
      5You do not have permission to clear Behaviours for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      26The Behaviour was not found by its unique identifier.

      clearBehaviourLogsByScript

      Gets the list of BehaviourLogs for the specified BehaviourScript.
      Request message description
      PropertyTypeRequiredDefaultDescription
      behaviourScriptParamIdalwaysAn object to contain the "id" of the BehaviourScript.
      behaviourScript.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptional
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      clearBehaviourLogsByScript {
      	"behaviourScript": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      behaviourScriptRespIdCompanyAn object to contain the "id" of the BehaviourScript to which the array of BehaviourLogs belong.
      behaviourScript.companyuint64Identifier of the Company to which this object belongs.
      behaviourScript.iduint64?Identifier given as input for the command.
      countint32The total number of behaviour logs cleared.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      clearBehaviourLogsByScriptResponse {
      	"behaviourScript": {
      		"company": number,
      		"id": number
      	},
      	"count": number,
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a behaviourScript object, or it is invalid.
      3The behaviourScript object does not contain an id, or it is invalid.
      5You do not have permission to view BehaviourLogs for the BehaviourScript's Company.
      5You do not have permission to clear behaviours for this BehaviourScript.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      23The BehaviourScript was not found by its unique identifier.

      getBehaviour

      Gets details of the specified Behaviour.
      Request message description
      PropertyTypeRequiredDefaultDescription
      behaviourParamIdalwaysAn object to contain the "id" key.
      behaviour.iduint64alwaysIdentifier given as input for the command.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted Behaviour.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getBehaviour {
      	"behaviour": {
      		"id": number
      	},
      	"includeDeleted": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      behaviourBehaviourThe requested Behaviour.
      behaviour.companyuint64The company to which this behaviour belongs.
      behaviour.filtersexpressionA search pattern used to filter the providers which can implement this behaviour.
      behaviour.iduint64Unique identifier of this behaviour.
      behaviour.namestring
      maximum-length: 100
      The name of this behaviour.
      behaviour.notesstringNotes.
      behaviour.parametersObject.<string, BehaviourParameter>The list of defined variable name/value pairs for the script requires.
      behaviour.prioritybyteThe priority flag allows you to define an execution order for all behaviours for a provider.
      behaviour.scriptuint64The script which this behaviour implements.
      behaviour.targetsexpressionThe search pattern used to target the assets which will embed this behaviour in their execution context.
      behaviour.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getBehaviourResponse {
      	"behaviour": {
      		"company": number,
      		"filters": string,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"parameters": {
      			string: {
      				"context": string,
      				"notes": string,
      				"type": string,
      				"value": string
      			}
      		},
      		"priority": number,
      		"script": number,
      		"targets": string,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a behaviour object, or it is invalid.
      3The behaviour object does not contain an id, or it is invalid.
      5You do not have permission to view this Behaviour.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      26The Behaviour was not found by its unique identifier.

      getBehaviourLogsListByAsset

      Gets the list of BehaviourLogs for the specified Asset.
      Request message description
      PropertyTypeRequiredDefaultDescription
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getBehaviourLogsListByAsset {
      	"asset": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of BehaviourLogs relates.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.iduint64?Identifier given as input for the command.
      behaviourLogsArray.<BehaviourLog>The list of requested BehaviourLogs.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getBehaviourLogsListByAssetResponse {
      	"asset": {
      		"company": number,
      		"id": number
      	},
      	"behaviourLogs": [
      		{
      			"asset": number,
      			"behaviour": number,
      			"character": number,
      			"company": number,
      			"dts": string,
      			"id": number,
      			"kind": string,
      			"line": number,
      			"message": string,
      			"script": number,
      			"v": [
      				number
      			]
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a asset object, or it is invalid.
      3The asset object does not contain an id, or it is invalid.
      5You do not have permission to view this Asset.
      5You do not have permission to view BehaviourLogs for this Asset's Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.

      getBehaviourLogsListByBehaviour

      Gets the list of BehaviourLog for the specified Behaviour.
      Request message description
      PropertyTypeRequiredDefaultDescription
      behaviourParamIdalwaysAn object to contain the "id" of the Behaviour.
      behaviour.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getBehaviourLogsListByBehaviour {
      	"behaviour": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      behaviourRespIdScriptAn object to contain the "id" of the Behaviour to which the array of BehaviourLogs belong.
      behaviour.companyuint64Identifier of the Company to which this object belongs.
      behaviour.iduint64?Identifier given as input for the command.
      behaviour.scriptuint64Identifier of the script to which this object belongs.
      behaviourLogsArray.<BehaviourLog>The list of requested BehaviourLogs.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getBehaviourLogsListByBehaviourResponse {
      	"behaviour": {
      		"company": number,
      		"id": number,
      		"script": number
      	},
      	"behaviourLogs": [
      		{
      			"asset": number,
      			"behaviour": number,
      			"character": number,
      			"company": number,
      			"dts": string,
      			"id": number,
      			"kind": string,
      			"line": number,
      			"message": string,
      			"script": number,
      			"v": [
      				number
      			]
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a behaviour object, or it is invalid.
      3The behaviour object does not contain an id, or it is invalid.
      5You do not have permission to view BehaviourLogs for this Behaviour.
      5You do not have permission to view Behaviours for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      26The Behaviour was not found by its unique identifier.

      getBehaviourLogsListByScript

      Gets the list of BehaviourLogs for the specified BehaviourScript.
      Request message description
      PropertyTypeRequiredDefaultDescription
      behaviourScriptParamIdalwaysAn object to contain the "id" of the BehaviourScript.
      behaviourScript.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getBehaviourLogsListByScript {
      	"behaviourScript": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      behaviourLogsArray.<BehaviourLog>The list of requested BehaviourLogs.
      behaviourScriptRespIdCompanyAn object to contain the "id" of the BehaviourScript to which the array of BehaviourLogs belong.
      behaviourScript.companyuint64Identifier of the Company to which this object belongs.
      behaviourScript.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getBehaviourLogsListByScriptResponse {
      	"behaviourLogs": [
      		{
      			"asset": number,
      			"behaviour": number,
      			"character": number,
      			"company": number,
      			"dts": string,
      			"id": number,
      			"kind": string,
      			"line": number,
      			"message": string,
      			"script": number,
      			"v": [
      				number
      			]
      		}
      	],
      	"behaviourScript": {
      		"company": number,
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a behaviourScript object, or it is invalid.
      3The behaviourScript object does not contain an id, or it is invalid.
      5You do not have permission to view BehaviourLogs for the BehaviourScript's Company.
      5You do not have permission to view BehaviourScripts for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      23The BehaviourScript was not found by its unique identifier.

      getBehaviourScript

      Gets details of the specified BehaviourScript.
      Request message description
      PropertyTypeRequiredDefaultDescription
      behaviourScriptParamIdalwaysAn object to contain the "id" key.
      behaviourScript.iduint64alwaysIdentifier given as input for the command.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted BehaviourScript.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getBehaviourScript {
      	"behaviourScript": {
      		"id": number
      	},
      	"includeDeleted": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      behaviourScriptBehaviourScriptThe requested BehaviourScript.
      behaviourScript.companyuint64The company to which this script belongs.
      behaviourScript.compilesbooleanFlag set by the compiler if this code compiles
      behaviourScript.fillcolour
      maximum-length: 22
      The background colour given to this script for easy visual identification.
      behaviourScript.filtersexpressionA list of targeting expressions. These expressions are defaults for derived Behaviours.
      behaviourScript.globalbooleanIndicates whether this script is available to child companies.
      behaviourScript.graphiccodified
      maximum-length: 22
      The codified graphic name given to this script for easy visual identification.
      behaviourScript.iduint64Unique identifier of this script.
      behaviourScript.namestring
      maximum-length: 100
      The nickname given to this script.
      behaviourScript.notesstringUsage notes and instructions for users on how best to setup this script.
      behaviourScript.parametersObject.<string, BehaviourParameter>Listed parameters for the Behaviour function.
      behaviourScript.sourcestring
      maximum-length: 8060
      The source code.
      behaviourScript.strokecolour
      maximum-length: 22
      The text/graphic colour given to this script for easy visual identification.
      behaviourScript.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getBehaviourScriptResponse {
      	"behaviourScript": {
      		"company": number,
      		"compiles": boolean,
      		"fill": string,
      		"filters": string,
      		"global": boolean,
      		"graphic": string,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"parameters": {
      			string: {
      				"context": string,
      				"notes": string,
      				"type": string,
      				"value": string
      			}
      		},
      		"source": string,
      		"stroke": string,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a behaviourScript object, or it is invalid.
      3The behaviourScript object does not contain an id, or it is invalid.
      5You do not have permission to view this BehaviourScript.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      23The BehaviourScript was not found by its unique identifier.

      getBehaviourScriptsList

      Gets the list of BehaviourScripts for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      treebooleanoptionalWhen true (default) the getter to retrieve the given Company's list of BehaviourScripts as well as any publicly available BehaviourScripts for the Company's parent(s).
      Request message structure
      getBehaviourScriptsList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number,
      	"tree": boolean
      }
      Response message description
      PropertyTypeDescription
      behaviourScriptsArray.<BehaviourScript>The list of requested BehaviourScripts.
      companyRespIdAn object to contain the "id" of the Company to which the array of BehaviourScripts belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getBehaviourScriptsListResponse {
      	"behaviourScripts": [
      		{
      			"company": number,
      			"compiles": boolean,
      			"fill": string,
      			"filters": string,
      			"global": boolean,
      			"graphic": string,
      			"id": number,
      			"name": string,
      			"notes": string,
      			"parameters": {
      				string: {
      					"context": string,
      					"notes": string,
      					"type": string,
      					"value": string
      				}
      			},
      			"source": string,
      			"stroke": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view BehaviourScripts for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getBehavioursList

      Gets the list of Behaviours for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getBehavioursList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      behavioursArray.<Behaviour>The list of reqested Behaviours.
      companyRespIdAn object to contain the "id" of the Company to which the array of Behaviours belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getBehavioursListResponse {
      	"behaviours": [
      		{
      			"company": number,
      			"filters": string,
      			"id": number,
      			"name": string,
      			"notes": string,
      			"parameters": {
      				string: {
      					"context": string,
      					"notes": string,
      					"type": string,
      					"value": string
      				}
      			},
      			"priority": number,
      			"script": number,
      			"targets": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view this Company.
      5You do not have permission to view Behaviours for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      mergeBehaviour

      Creates a new or updates an existing Behaviour.
      Request message description
      PropertyTypeRequiredDescription
      behaviourObject.<string, ?>alwaysA simple object to contain the Behaviour parameters.
      behaviour.companyuint64?create
      behaviour.filtersexpressionoptionalA search pattern used to select the assets which will embed this Behaviour in their execution context.
      behaviour.iduint64?updateThe unique identifier of the Behaviour you want to update.
      behaviour.namestring
      maximum-length: 100
      createName for the Behaviour.
      behaviour.notesstringoptionalNotes for the Behaviour.
      behaviour.parametersObject.<string, BehaviourParameter>optionalThe values needed to implement the script. Each key in this object is the name of a required script argument.
      behaviour.prioritybyte?optionalThe order in which this Behaviour is executed.
      behaviour.scriptuint64?createIdentifier of the BehaviourScript to which this Behaviour belongs. After creation, this value is read-only.
      behaviour.targetsexpressionoptionalA search pattern used to select the providers which can implement this Behaviour.
      behaviour.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeBehaviour {
      	"behaviour": {
      		"company": number,
      		"filters": string,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"parameters": {
      			string: {
      				"context": string,
      				"notes": string,
      				"type": string,
      				"value": string
      			}
      		},
      		"priority": number,
      		"script": number,
      		"targets": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      behaviourRespIdScriptAn object which contains the "id", "company", and "script" keys when there is no error.
      behaviour.companyuint64Identifier of the Company to which this object belongs.
      behaviour.iduint64?Identifier given as input for the command.
      behaviour.scriptuint64Identifier of the script to which this object belongs.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeBehaviourResponse {
      	"behaviour": {
      		"company": number,
      		"id": number,
      		"script": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a behaviour object, or it is invalid.
      3Not enough keys exist in the behaviour object.
      3During create: When creating a new Behaviour, a name was not given, or it is invalid.
      3During create: When creating a new Behaviour, a script was not given.
      3During create: When creating a new Behaviour, a company was not given.
      3During update: When updating a Behaviour, the id was invalid.
      3During update: When updating a Behaviour, the name was given as blank.
      3During update: When updating a Behaviour, the v was not an array, or contained too few numbers.
      3The targets was given as null or blank. The targets must always have a value, or you can not send the targets key.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the behaviour.parameters was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the behaviour.parameters keys was blank or white-space.
      Returns an ErrorDetailInput as the errorDetails..
      5You do not have permission to create a new Behaviour.
      5You do not have permission to update this Behaviour.
      6During update: When updating a Behaviour, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      23During update: The BehaviourScript was not found by its unique identifier.
      26During update: The Behaviour was not found by its unique identifier.
      130There is one or more missing or invalid parameters required by the BehaviourScript.
      Returns an ErrorDetailBadKeys as the errorDetails..
      130During update: When updating a Behaviour, the behaviour.script can not be changed.
      Returns an ErrorDetailBadKeys as the errorDetails..
      130During update: When updating a Behaviour, the behaviour.company can not be changed.
      Returns an ErrorDetailBadKeys as the errorDetails..

      mergeBehaviourScript

      Creates a new or updates an existing BehaviourScript.
      Request message description
      PropertyTypeRequiredDescription
      behaviourScriptObject.<string, ?>alwaysA simple object to contain the BehaviourScript parameters.
      behaviourScript.companyuint64?createIdentifier of the Company to which this BehaviourScript belongs. After creation, this value is read-only.
      behaviourScript.fillstringoptionalBackground and fill colour in the UI.
      behaviourScript.filtersexpressionoptionalA search pattern used to select the providers.
      behaviourScript.globalbooleanoptionalWhen set to true, this Company as well as all child companies will be able to implement this BehaviourScript for that companies assets.
      behaviourScript.graphicstringoptionalThe name of the symbol shown in the UI.
      behaviourScript.iduint64?updateThe unique identifier of the BehaviourScript you want to update.
      behaviourScript.namestring
      maximum-length: 100
      createName for the BehaviourScript.
      behaviourScript.notesstringoptionalNotes for the BehaviourScript.
      behaviourScript.parametersObject.<string, BehaviourParameter>optionalThe defined arguments for this BehaviourScript. Each key in the object is the name of an argument.
      behaviourScript.sourcestringcreateSource code of the BehaviourScript.
      behaviourScript.strokestringoptionalText and outline colour in the UI.
      behaviourScript.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeBehaviourScript {
      	"behaviourScript": {
      		"company": number,
      		"fill": string,
      		"filters": string,
      		"global": boolean,
      		"graphic": string,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"parameters": {
      			string: {
      				"context": string,
      				"notes": string,
      				"type": string,
      				"value": string
      			}
      		},
      		"source": string,
      		"stroke": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      behaviourScriptRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
      behaviourScript.companyuint64Identifier of the Company to which this object belongs.
      behaviourScript.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeBehaviourScriptResponse {
      	"behaviourScript": {
      		"company": number,
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a behaviourScript object, or it is invalid.
      3Not enough keys exist in the behaviourScript object.
      3During create: When creating a new BehaviourScript, a name was not given, or it is invalid.
      3During create: When creating a new BehaviourScript, a company was not given.
      3During create: When creating a new BehaviourScript, the source was not given, or it is blank.
      3During update: When updating a BehaviourScript, the id was invalid.
      3During update: When updating a BehaviourScript, the name was given as blank.
      3During update: When updating a BehaviourScript, the v was not an array, or contained too few numbers.
      3One of the behaviourScript.parameters default values' was not valid.
      Returns an ErrorDetailBadKeys as the errorDetails..
      3One of the behaviourScript.parameters was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the behaviourScript.parameters keys was blank or white-space.
      Returns an ErrorDetailInput as the errorDetails..
      5You do not have permission to create a new BehaviourScript.
      5You do not have permission to update this BehaviourScript.
      6During update: When updating a BehaviourScript, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      23During update: The BehaviourScript was not found by its unique identifier.
      25During update: When updating a BehaviourScript which is marked as global, but is being set as private, but is implemented by Behaviours from child companies..
      Returns an ErrorDetailCount as the errorDetails..
      130During update: When updating a BehaviourScript, the behaviourScript.company can not be changed.

      removeBehaviour

      Deletes a Behaviour.
      Request message description
      PropertyTypeRequiredDescription
      behaviourParamIdalwaysAn object to contain the "id" key.
      behaviour.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeBehaviour {
      	"behaviour": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      behaviourRespDeletedAn object which contains the Behaviour's id, owning Company id, and deleted status.
      behaviour.companyuint64Identifier of the Company to which this object belongs.
      behaviour.deletedbooleanFlag showing if the object is deleted.
      behaviour.iduint64?Identifier given as input for the command.
      behaviour.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeBehaviourResponse {
      	"behaviour": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a behaviour object, or it is invalid.
      3The behaviour object does not contain an id, or it is invalid.
      5You do not have permission to delete this Behaviour.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      26The Behaviour was not found by its unique identifier.

      removeBehaviourScript

      Deletes an existing BehaviourScript.
      Request message description
      PropertyTypeRequiredDescription
      behaviourScriptParamIdalwaysAn object to contain the "id" key.
      behaviourScript.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeBehaviourScript {
      	"behaviourScript": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      behaviourScriptRespDeletedAn object which contains the BehaviourScript's id, owning Company id, and deleted status.
      behaviourScript.companyuint64Identifier of the Company to which this object belongs.
      behaviourScript.deletedbooleanFlag showing if the object is deleted.
      behaviourScript.iduint64?Identifier given as input for the command.
      behaviourScript.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeBehaviourScriptResponse {
      	"behaviourScript": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a behaviourScript object, or it is invalid.
      3The behaviourScript object does not contain an id, or it is invalid.
      5You do not have permission to delete this BehaviourScript.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      23The BehaviourScript was not found by its unique identifier.
      25This BehaviourScript is still being used by one of more Behaviours.
      Returns an ErrorDetailCount as the errorDetails..

      restoreBehaviour

      Restores a deleted Behaviour.
      Request message description
      PropertyTypeRequiredDescription
      behaviourParamIdalwaysAn object to contain the "id" key.
      behaviour.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreBehaviour {
      	"behaviour": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      behaviourRespDeletedAn object which contains the Behaviour's id, owning Company id, and deleted status.
      behaviour.companyuint64Identifier of the Company to which this object belongs.
      behaviour.deletedbooleanFlag showing if the object is deleted.
      behaviour.iduint64?Identifier given as input for the command.
      behaviour.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreBehaviourResponse {
      	"behaviour": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a behaviour object, or it is invalid.
      3The behaviour object does not contain an id, or it is invalid.
      5You do not have permission to restore this Behaviour.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      26The Behaviour was not found by its unique identifier.
      27The Behaviour was found, but is not marked as deleted.

      restoreBehaviourScript

      Restores the specified BehaviourScript.
      Request message description
      PropertyTypeRequiredDescription
      behaviourScriptParamIdalwaysAn object to contain the "id" key.
      behaviourScript.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreBehaviourScript {
      	"behaviourScript": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      behaviourScriptRespDeletedAn object which contains the BehaviourScript's id, owning Company id, and deleted status.
      behaviourScript.companyuint64Identifier of the Company to which this object belongs.
      behaviourScript.deletedbooleanFlag showing if the object is deleted.
      behaviourScript.iduint64?Identifier given as input for the command.
      behaviourScript.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreBehaviourScriptResponse {
      	"behaviourScript": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a behaviourScript object, or it is invalid.
      3The behaviourScript object does not contain an id, or it is invalid.
      5You do not have permission to restore this BehaviourScript.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      23The BehaviourScript was not found by its unique identifier.
      24The BehaviourScript was found, but is not marked as deleted.

      Billing

      getBillingProfile

      Gets details of the specified BillingProfile.
      Request message description
      PropertyTypeRequiredDefaultDescription
      billingProfileParamIdalwaysAn object to contain the "id" of the BillingProfile.
      billingProfile.iduint64alwaysIdentifier given as input for the command.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted BillingProfile.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getBillingProfile {
      	"billingProfile": {
      		"id": number
      	},
      	"includeDeleted": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      billingProfileBillingProfileThe requested BillingProfile.
      billingProfile.billeeuint64Unique identifier of the Company receiving the bill. Most of the time, this value is the same as the target.
      billingProfile.companyuint64Unique identifier of the Company that owns this profile and is sending the bill.
      billingProfile.currencyBillingCurrencykind of money
      billingProfile.cycleBillingCycleRepeating cycle used for generating bills
      billingProfile.cycleEnddatetimeWhen should the cycle end (customer cancelled)
      billingProfile.cyclePostDatedbooleanPro-rated, or post-dated.
      billingProfile.cycleStartdatetimeWhen is the first day of the billing cycle
      billingProfile.googleServicesEnabledbooleanAre the Google services available to be proxied by the service?
      billingProfile.iduint64Unique identifier of this billing profile
      billingProfile.messagesArray.<BillableSmsProfile>SMS messaging tiers
      billingProfile.namestring
      maximum-length: 254
      The name for this profile
      billingProfile.notesstring
      maximum-length: 1000
      Notes about the billing profile for the billee or target.
      billingProfile.targetuint64Unique identifier of the Company to which this rule pertains.
      billingProfile.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getBillingProfileResponse {
      	"billingProfile": {
      		"billee": number,
      		"company": number,
      		"currency": string,
      		"cycle": string,
      		"cycleEnd": string,
      		"cyclePostDated": boolean,
      		"cycleStart": string,
      		"googleServicesEnabled": boolean,
      		"id": number,
      		"messages": [
      			{
      				"amount": number,
      				"limit": number
      			}
      		],
      		"name": string,
      		"notes": string,
      		"target": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a billingProfile object, or it is invalid.
      3The requested billingProfile id was invalid.
      5You do not have permission to view this Company's BillingProfiles.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      111The BillingProfile was not found by its unique identifier.

      getBillingProfilesList

      Gets the list of BillingProfiles for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getBillingProfilesList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      billingProfilesArray.<BillingProfile>The list of requested BillingProfiles.
      companyRespIdAn object to contain the "id" of the Company to which the array of BillingProfiles belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getBillingProfilesListResponse {
      	"billingProfiles": [
      		{
      			"billee": number,
      			"company": number,
      			"currency": string,
      			"cycle": string,
      			"cycleEnd": string,
      			"cyclePostDated": boolean,
      			"cycleStart": string,
      			"googleServicesEnabled": boolean,
      			"id": number,
      			"messages": [
      				{
      					"amount": number,
      					"limit": number
      				}
      			],
      			"name": string,
      			"notes": string,
      			"target": number,
      			"v": [
      				number
      			]
      		}
      	],
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view this Company's BillingProfiles.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getBillingReport

      Gets details of the specified BillingReport.
      Request message description
      PropertyTypeRequiredDefaultDescription
      billingReportParamIdalwaysAn object to contain the "id" of the BillingReport.
      billingReport.iduint64alwaysIdentifier given as input for the command.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted BillingReport.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getBillingReport {
      	"billingReport": {
      		"id": number
      	},
      	"includeDeleted": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      billingReportBillingReportThe requested BillingReport.
      billingReport.billeeuint64Unique identifier of the Company receiving the bill.
      billingReport.breakdownArray.<BillingReportBreakdown>Individual amounts per company, used to calculate the results of the report.
      billingReport.companyuint64The company to which this report belongs and is sending the bill.
      billingReport.currencyBillingCurrencyCurrency being billed in
      billingReport.endDatedatetimeLast day of the billing cycle
      billingReport.errorstring
      maximum-length: 250
      A field which contains report error details if the BillingReport.status is BillingReportStatus.failed.
      billingReport.iduint64Unique identifier
      billingReport.namestring
      maximum-length: 100
      Name of this report.
      billingReport.notesstringNotes about this report.
      billingReport.profileuint64The profile to which this report belongs
      billingReport.startDatedatetimeFirst day of the billing cycle
      billingReport.statusBillingReportStatusThe processing status of this report.
      billingReport.summaryArray.<BillingReportSummary>Summary contains totals per target for this billee
      billingReport.totaldoubleTotal amount being billed.
      billingReport.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getBillingReportResponse {
      	"billingReport": {
      		"billee": number,
      		"breakdown": [
      			{
      				"licenses": [
      					{
      						"billableDays": number,
      						"cost": number,
      						"created": string,
      						"deleted": string,
      						"firmware": string,
      						"kind": string,
      						"name": string,
      						"notes": string,
      						"phoneNumber": number,
      						"provider": string,
      						"total": number
      					}
      				],
      				"services": [
      					{
      						"asset": number,
      						"billableDays": number,
      						"cost": number,
      						"created": string,
      						"deleted": string,
      						"kind": string,
      						"labels": [
      							string
      						],
      						"name": string,
      						"notes": string,
      						"phoneNumbers": [
      							number
      						],
      						"providers": [
      							string
      						],
      						"restored": string,
      						"revived": string,
      						"suspended": string,
      						"suspendedCost": number,
      						"suspendedDays": number,
      						"total": number,
      						"updatedDts": string
      					}
      				],
      				"target": number
      			}
      		],
      		"company": number,
      		"currency": string,
      		"endDate": string,
      		"error": string,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"profile": number,
      		"startDate": string,
      		"status": string,
      		"summary": [
      			{
      				"hosting": [
      					{
      						"cost": number,
      						"count": number,
      						"sku": string,
      						"total": number
      					}
      				],
      				"name": string,
      				"notes": string,
      				"parent": number,
      				"target": number
      			}
      		],
      		"total": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a billingReport object, or it is invalid.
      3The requested billingReport id was invalid.
      5You do not have permission to view this Company's BillingReports.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      119The BillingReport was not found by its unique identifier.

      getBillingReportsList

      Gets the list of BillingReports for the specified BillingProfile.
      Request message description
      PropertyTypeRequiredDefaultDescription
      afterdatetimeoptional
      beforedatetimeoptional
      billingProfileParamIdalwaysAn object to contain the "id" of the BillingProfile.
      billingProfile.iduint64alwaysIdentifier given as input for the command.
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getBillingReportsList {
      	"after": string,
      	"before": string,
      	"billingProfile": {
      		"id": number
      	},
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      billingProfileRespIdCompanyAn object to contain the "id" of the BillingProfile to which the array of BillableHostingRules belong.
      billingProfile.companyuint64Identifier of the Company to which this object belongs.
      billingProfile.iduint64?Identifier given as input for the command.
      billingReportsArray.<BillingReport>The list of requested BillingReports.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getBillingReportsListResponse {
      	"billingProfile": {
      		"company": number,
      		"id": number
      	},
      	"billingReports": [
      		{
      			"billee": number,
      			"breakdown": [
      				{
      					"licenses": [
      						{
      							"billableDays": number,
      							"cost": number,
      							"created": string,
      							"deleted": string,
      							"firmware": string,
      							"kind": string,
      							"name": string,
      							"notes": string,
      							"phoneNumber": number,
      							"provider": string,
      							"total": number
      						}
      					],
      					"services": [
      						{
      							"asset": number,
      							"billableDays": number,
      							"cost": number,
      							"created": string,
      							"deleted": string,
      							"kind": string,
      							"labels": [
      								string
      							],
      							"name": string,
      							"notes": string,
      							"phoneNumbers": [
      								number
      							],
      							"providers": [
      								string
      							],
      							"restored": string,
      							"revived": string,
      							"suspended": string,
      							"suspendedCost": number,
      							"suspendedDays": number,
      							"total": number,
      							"updatedDts": string
      						}
      					],
      					"target": number
      				}
      			],
      			"company": number,
      			"currency": string,
      			"endDate": string,
      			"error": string,
      			"id": number,
      			"name": string,
      			"notes": string,
      			"profile": number,
      			"startDate": string,
      			"status": string,
      			"summary": [
      				{
      					"hosting": [
      						{
      							"cost": number,
      							"count": number,
      							"sku": string,
      							"total": number
      						}
      					],
      					"name": string,
      					"notes": string,
      					"parent": number,
      					"target": number
      				}
      			],
      			"total": number,
      			"v": [
      				number
      			]
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a billingProfile object, or it is invalid.
      3The billingProfile object does not contain an id, or it is invalid.
      5You do not have permission to view this Company's BillingReports.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.
      111The BillingProfile was not found by its unique identifier.

      getBillingReportsListByCompany

      Gets the list of BillingReports for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      afterdatetimeoptional
      beforedatetimeoptional
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getBillingReportsListByCompany {
      	"after": string,
      	"before": string,
      	"company": {
      		"id": number
      	},
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      billingReportsArray.<BillingReport>The list of requested BillingReports.
      companyRespIdAn object to contain the "id" of the Company to which the array of BillingReports belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getBillingReportsListByCompanyResponse {
      	"billingReports": [
      		{
      			"billee": number,
      			"breakdown": [
      				{
      					"licenses": [
      						{
      							"billableDays": number,
      							"cost": number,
      							"created": string,
      							"deleted": string,
      							"firmware": string,
      							"kind": string,
      							"name": string,
      							"notes": string,
      							"phoneNumber": number,
      							"provider": string,
      							"total": number
      						}
      					],
      					"services": [
      						{
      							"asset": number,
      							"billableDays": number,
      							"cost": number,
      							"created": string,
      							"deleted": string,
      							"kind": string,
      							"labels": [
      								string
      							],
      							"name": string,
      							"notes": string,
      							"phoneNumbers": [
      								number
      							],
      							"providers": [
      								string
      							],
      							"restored": string,
      							"revived": string,
      							"suspended": string,
      							"suspendedCost": number,
      							"suspendedDays": number,
      							"total": number,
      							"updatedDts": string
      						}
      					],
      					"target": number
      				}
      			],
      			"company": number,
      			"currency": string,
      			"endDate": string,
      			"error": string,
      			"id": number,
      			"name": string,
      			"notes": string,
      			"profile": number,
      			"startDate": string,
      			"status": string,
      			"summary": [
      				{
      					"hosting": [
      						{
      							"cost": number,
      							"count": number,
      							"sku": string,
      							"total": number
      						}
      					],
      					"name": string,
      					"notes": string,
      					"parent": number,
      					"target": number
      				}
      			],
      			"total": number,
      			"v": [
      				number
      			]
      		}
      	],
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view this Company's BillingReports.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getHostingLicense

      Gets details of the specified BillableHostingLicense.
      Request message description
      PropertyTypeRequiredDefaultDescription
      hostingLicenseParamIdalwaysAn object to contain the "id" of the BillableHostingLicense.
      hostingLicense.iduint64alwaysIdentifier given as input for the command.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted BillableHostingLicense.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getHostingLicense {
      	"hostingLicense": {
      		"id": number
      	},
      	"includeDeleted": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hostingLicenseBillableHostingLicenseThe requested BillableHostingLicense.
      hostingLicense.amountdoubleCost per cycle for this plan
      hostingLicense.companyuint64Unique identifier of the Company that owns this hosting rule.
      hostingLicense.enddatetimeDate this billing rule is applied until; null means it never ends. These dates are used to determine how much of the cycle is billed.
      hostingLicense.iduint64Unique identifier of this hosting rule.
      hostingLicense.kindBillableLicenseTypeThe type of hardware license
      hostingLicense.limituint32?The number of units to which this billing rule applies. Should be a non-zero value; null means unlimited
      hostingLicense.namestring
      maximum-length: 254
      The name of this billing rule.
      hostingLicense.notesstringNotes about billing this rule.
      hostingLicense.profileuint64Unique identifier of this rule's billing profile.
      hostingLicense.referencestring
      maximum-length: 100
      A custom field used to refer to an external system. Examples are a cost codes, SOCs, discount plans...
      hostingLicense.skustring
      maximum-length: 20
      SKU or SOC code
      hostingLicense.startdatetimeDate this billing rule takes effect. These dates are used to determine how much of the cycle is billed.
      hostingLicense.suspendedbooleanDoes this hosting rule apply to suspended resources
      hostingLicense.targetsexpressionWhich assets are targeted by this hosting rule
      hostingLicense.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getHostingLicenseResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hostingLicense": {
      		"amount": number,
      		"company": number,
      		"end": string,
      		"id": number,
      		"kind": string,
      		"limit": number,
      		"name": string,
      		"notes": string,
      		"profile": number,
      		"reference": string,
      		"sku": string,
      		"start": string,
      		"suspended": boolean,
      		"targets": string,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a hostingLicense object, or it is invalid.
      3The requested hostingLicense id was invalid.
      5You do not have permission to view this Company's BillableHostingLicenses.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      117The BillableHostingLicense was not found by its unique identifier.

      getHostingLicensesList

      Gets the list of BillableHostingLicenses for the specified BillingProfile.
      Request message description
      PropertyTypeRequiredDefaultDescription
      billingProfileParamIdalwaysAn object to contain the "id" of the BillingProfile.
      billingProfile.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getHostingLicensesList {
      	"billingProfile": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      billingProfileRespIdCompanyAn object to contain the "id" of the BillingProfile to which the array of BillableHostingLicenses belong.
      billingProfile.companyuint64Identifier of the Company to which this object belongs.
      billingProfile.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hostingLicensesArray.<BillableHostingLicense>The list of BillableHostingLicenses.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getHostingLicensesListResponse {
      	"billingProfile": {
      		"company": number,
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hostingLicenses": [
      		{
      			"amount": number,
      			"company": number,
      			"end": string,
      			"id": number,
      			"kind": string,
      			"limit": number,
      			"name": string,
      			"notes": string,
      			"profile": number,
      			"reference": string,
      			"sku": string,
      			"start": string,
      			"suspended": boolean,
      			"targets": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a billingProfile object, or it is invalid.
      3The billingProfile object does not contain an id, or it is invalid.
      5You do not have permission to view this Company's BillableHostingLicenses.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.
      If you receive this error, please contact technical support.
      111The BillingProfile was not found by its unique identifier.

      getHostingRule

      Gets details of the specified BillableHostingRule.
      Request message description
      PropertyTypeRequiredDefaultDescription
      hostingRuleParamIdalwaysAn object to contain the "id" of the BillableHostingRule.
      hostingRule.iduint64alwaysIdentifier given as input for the command.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted BillableHostingRule.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getHostingRule {
      	"hostingRule": {
      		"id": number
      	},
      	"includeDeleted": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hostingRuleBillableHostingRuleThe requested BillableHostingRule.
      hostingRule.amountdoubleCost per cycle for this plan
      hostingRule.companyuint64Unique identifier of the Company that owns this hosting rule.
      hostingRule.enddatetimeDate this billing rule is applied until; null means it never ends. These dates are used to determine how much of the cycle is billed.
      hostingRule.iduint64Unique identifier of this hosting rule.
      hostingRule.limituint32?The number of units to which this billing rule applies. Should be a non-zero value; null means unlimited
      hostingRule.namestring
      maximum-length: 254
      The name of this billing rule.
      hostingRule.notesstringNotes about billing this rule.
      hostingRule.profileuint64Unique identifier of this rule's billing profile.
      hostingRule.referencestring
      maximum-length: 100
      A custom field used to refer to an external system. Examples are a cost codes, SOCs, discount plans...
      hostingRule.serviceBillableHostingTypeThe type of service being billed.
      hostingRule.skustring
      maximum-length: 20
      SKU or SOC code
      hostingRule.startdatetimeDate this billing rule takes effect. These dates are used to determine how much of the cycle is billed.
      hostingRule.suspendedbooleanDoes this hosting rule apply to suspended resources
      hostingRule.targetsexpressionWhich assets are targeted by this hosting rule
      hostingRule.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getHostingRuleResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hostingRule": {
      		"amount": number,
      		"company": number,
      		"end": string,
      		"id": number,
      		"limit": number,
      		"name": string,
      		"notes": string,
      		"profile": number,
      		"reference": string,
      		"service": string,
      		"sku": string,
      		"start": string,
      		"suspended": boolean,
      		"targets": string,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a hostingRule object, or it is invalid.
      3The requested hostingRule id was invalid.
      5You do not have permission to view this Company's BillableHostingRules.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      113The BillableHostingRule was not found by its unique identifier.

      getHostingRulesList

      Creates new or updates an existing BillableHostingRule.
      Request message description
      PropertyTypeRequiredDescription
      hostingRuleObject.<string, ?>alwaysA simple object to contain the BillableHostingRule parameters.
      hostingRule.amountdouble?optionalCost per cycle for this plan
      hostingRule.enddatetimecreateDate this BillableHostingRule is applied until; null means it never ends.
      hostingRule.iduint64?updateUnique identifier of the BillableHostingRule you want to update.
      hostingRule.limituint32?optionalThe number of units to which this BillableHostingRule applies. Should be a non-zero value; null means unlimited
      hostingRule.namestringcreateName for the BillableHostingRule
      hostingRule.notesstringoptionalNotes about the BillableHostingRule.
      hostingRule.profileuint64?createUnique identifier of this BillableHostingRule's BillingProfile.
      hostingRule.referencestringoptionalA custom field used to refer to an external system. Examples are a cost codes, SOCs, discount plans...
      hostingRule.serviceBillableHostingType?createThe type of service being billed.
      hostingRule.startdatetimecreateDate this BillableHostingRule takes effect.
      hostingRule.suspendedbooleanoptionalDoes this BillableHostingRule apply to suspended resources
      hostingRule.targetsexpressionoptionalWhich assets are targetted by this BillableHostingRule
      hostingRule.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getHostingRulesList {
      	"hostingRule": {
      		"amount": number,
      		"end": string,
      		"id": number,
      		"limit": number,
      		"name": string,
      		"notes": string,
      		"profile": number,
      		"reference": string,
      		"service": string,
      		"start": string,
      		"suspended": boolean,
      		"targets": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hostingRuleRespIdBillingProfileAn object which contains the "id", "company", and "profile" keys.
      hostingRule.companyuint64Identifier of the Company to which this object belongs.
      hostingRule.iduint64?Identifier given as input for the command.
      hostingRule.profileuint64Identifier of the BillingProfile to which this object belongs
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getHostingRulesListResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hostingRule": {
      		"company": number,
      		"id": number,
      		"profile": number
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a hostingRule object, or it is invalid.
      3Not enough keys exist in the hostingRule object.
      3During create: When creating a new BillableHostingRule, start date is invalid.
      3During create: When creating a new BillableHostingRule, end date is invalid.
      3During create: When creating a new BillableHostingRule, a name was not given, or it is invalid.
      3During create: When creating a new BillableHostingRule, profile is invalid.
      3During create: When creating a new BillableHostingRule, service is invalid.
      3During update: When updating a BillableHostingRule, the name was invalid.
      3During update: When updating a BillableHostingRule, the v was invalid.
      5During create: You do not have permission to create new BillableHostingRules.
      5During update: You do not have permission to update BillableHostingRules.
      6During update: When updating a BillableHostingRule, the v was not an array, or contained too few numbers.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      111The BillingProfile was not found by its unique identifier.
      If you receive this error, please contact technical support.
      113During update: The BillableHostingRule was not found by its unique identifier.
      130During update: When updating a BillableHostingRule, the hostingRule.profile can not be changed.

      mergeBillingProfile

      Creates new or updates an existing BillingProfile.
      Request message description
      PropertyTypeRequiredDescription
      billingProfileObject.<string, ?>alwaysA simple object to contain the BillingProfile parameters.
      billingProfile.billeeuint64?optionalUnique identifier of the Company receiving the bill.
      billingProfile.companyuint64?optionalUnique identifier of the Company that owns this BillingProfile and is sending the bill.
      billingProfile.currencyBillingCurrency?optionalKind of money.
      billingProfile.cycleBillingCycle?optionalRepeating cycle used for generating bills.
      billingProfile.cycleEnddatetimeoptionalWhen should the cycle end (customer cancelled); null means it never ends.
      billingProfile.cyclePostDatedbooleanoptionalPro-rated, or post-dated.
      billingProfile.cycleStartdatetimeoptionalWhen is the first day of the billing cycle.
      billingProfile.googleServicesEnabledbooleanoptionalAre the Google services available to be proxied by the service?
      billingProfile.iduint64?optionalUnique identifier of the BillingProfile you want to update.
      billingProfile.messagesArray.<BillableSmsProfile>optionalSMS messaging tiers.
      billingProfile.namestringoptionalName for the BillingProfile
      billingProfile.notesstringoptionalNotes about the BillingProfile for the billee or target.
      billingProfile.targetuint64?optionalUnique identifier of the Company to which this rule pertains.
      billingProfile.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeBillingProfile {
      	"billingProfile": {
      		"billee": number,
      		"company": number,
      		"currency": string,
      		"cycle": string,
      		"cycleEnd": string,
      		"cyclePostDated": boolean,
      		"cycleStart": string,
      		"googleServicesEnabled": boolean,
      		"id": number,
      		"messages": [
      			{
      				"amount": number,
      				"limit": number
      			}
      		],
      		"name": string,
      		"notes": string,
      		"target": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      billingProfileRespIdCompanyAn object which contains the "id", "company", and "profile" keys.
      billingProfile.companyuint64Identifier of the Company to which this object belongs.
      billingProfile.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeBillingProfileResponse {
      	"billingProfile": {
      		"company": number,
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a billingProfile object, or it is invalid.
      3Not enough keys exist in the billingProfile object.
      3The messages are invalid.
      3The cycle is invalid.
      3The currency is invalid.
      3The cycleStart date is invalid.
      3The cycleEnd date is invalid.
      3During create: When creating a new BillingProfile, start date is invalid.
      3During create: When creating a new BillingProfile, end date is invalid.
      3During create: When creating a new BillingProfile, kind is invalid.
      3During create: When creating a new BillingProfile, a name was not given, or it is invalid.
      3During create: When creating a new BillingProfile, company is invalid.
      3During create: When creating a new BillingProfile, target is invalid.
      3During create: When creating a new BillingProfile, billee is invalid.
      3During update: When updating a BillingProfile, the name was invalid.
      3During update: When updating a BillingProfile, the v was invalid.
      5During create: You do not have permission to create new BillingProfile.
      5During update: You do not have permission to update BillingProfile.
      6During update: When updating a BillingProfile, the v was not an array, or contained too few numbers.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The company was not found by its unique identifier.
      28The target was not found by its unique identifier.
      28The billee was not found by its unique identifier.
      111The BillingProfile was not found by its unique identifier.
      If you receive this error, please contact technical support.
      130During update: When updating a BillingProfile, the billingProfile.company can not be changed.

      mergeHostingLicense

      Creates new or updates an existing BillableHostingLicense.
      Request message description
      PropertyTypeRequiredDescription
      hostingLicenseObject.<string, ?>alwaysA simple object to contain the BillableHostingLicense parameters.
      hostingLicense.amountdouble?optionalCost per cycle for this plan
      hostingLicense.enddatetimeoptionalDate this BillableHostingLicense is applied until; null means it never ends.
      hostingLicense.iduint64?updateUnique identifier of the BillableHostingLicense you want to update.
      hostingLicense.kindBillableLicenseType?createThe type of hardware BillableLicenseType.
      hostingLicense.limituint32?optionalThe number of units to which this BillableHostingLicense applies. Should be a non-zero value; null means unlimited
      hostingLicense.namestringcreateName for the BillableHostingLicense
      hostingLicense.notesstringoptionalNotes about the BillableHostingLicense.
      hostingLicense.profileuint64?createUnique identifier of this BillableHostingLicense's BillingProfile.
      hostingLicense.referencestringoptionalA custom field used to refer to an external system. Examples are a cost codes, SOCs, discount plans...
      hostingLicense.startdatetimeoptionalDate this BillableHostingLicense takes effect.
      hostingLicense.suspendedbooleanoptionalDoes this BillableHostingLicense apply to suspended resources
      hostingLicense.targetsexpressionoptionalWhich assets are targetted by this BillableHostingLicense
      hostingLicense.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeHostingLicense {
      	"hostingLicense": {
      		"amount": number,
      		"end": string,
      		"id": number,
      		"kind": string,
      		"limit": number,
      		"name": string,
      		"notes": string,
      		"profile": number,
      		"reference": string,
      		"start": string,
      		"suspended": boolean,
      		"targets": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hostingLicenseRespIdBillingProfileAn object which contains the "id", "company", and "profile" keys.
      hostingLicense.companyuint64Identifier of the Company to which this object belongs.
      hostingLicense.iduint64?Identifier given as input for the command.
      hostingLicense.profileuint64Identifier of the BillingProfile to which this object belongs
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeHostingLicenseResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hostingLicense": {
      		"company": number,
      		"id": number,
      		"profile": number
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a hostingLicense object, or it is invalid.
      3Not enough keys exist in the hostingLicense object.
      3During create: When creating a new BillableHostingLicense, start date is invalid.
      3During create: When creating a new BillableHostingLicense, end date is invalid.
      3During create: When creating a new BillableHostingLicense, kind is invalid.
      3During create: When creating a new BillableHostingLicense, a name was not given, or it is invalid.
      3During create: When creating a new BillableHostingLicense, profile is invalid.
      3During update: When updating a BillableHostingLicense, the name was invalid.
      3During update: When updating a BillableHostingLicense, the v was invalid.
      5During create: You do not have permission to create new BillableHostingLicenses.
      5During update: You do not have permission to update BillableHostingLicenses.
      6During update: When updating a BillableHostingLicense, the v was not an array, or contained too few numbers.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      111The BillingProfile was not found by its unique identifier.
      If you receive this error, please contact technical support.
      117During update: The BillableHostingLicense was not found by its unique identifier.
      130During update: When updating a BillableHostingLicense, the hostingLicense.profile can not be changed.

      mergeHostingRule

      Creates new or updates an existing BillableHostingRule.
      Request message description
      PropertyTypeRequiredDescription
      hostingRuleObject.<string, ?>alwaysA simple object to contain the BillableHostingRule parameters.
      hostingRule.amountdouble?optionalCost per cycle for this plan
      hostingRule.enddatetimecreateDate this BillableHostingRule is applied until; null means it never ends.
      hostingRule.iduint64?updateUnique identifier of the BillableHostingRule you want to update.
      hostingRule.limituint32?optionalThe number of units to which this BillableHostingRule applies. Should be a non-zero value; null means unlimited
      hostingRule.namestringcreateName for the BillableHostingRule
      hostingRule.notesstringoptionalNotes about the BillableHostingRule.
      hostingRule.profileuint64?createUnique identifier of this BillableHostingRule's BillingProfile.
      hostingRule.referencestringoptionalA custom field used to refer to an external system. Examples are a cost codes, SOCs, discount plans...
      hostingRule.serviceBillableHostingType?createThe type of service being billed.
      hostingRule.startdatetimecreateDate this BillableHostingRule takes effect.
      hostingRule.suspendedbooleanoptionalDoes this BillableHostingRule apply to suspended resources
      hostingRule.targetsexpressionoptionalWhich assets are targetted by this BillableHostingRule
      hostingRule.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeHostingRule {
      	"hostingRule": {
      		"amount": number,
      		"end": string,
      		"id": number,
      		"limit": number,
      		"name": string,
      		"notes": string,
      		"profile": number,
      		"reference": string,
      		"service": string,
      		"start": string,
      		"suspended": boolean,
      		"targets": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hostingRuleRespIdBillingProfileAn object which contains the "id", "company", and "profile" keys.
      hostingRule.companyuint64Identifier of the Company to which this object belongs.
      hostingRule.iduint64?Identifier given as input for the command.
      hostingRule.profileuint64Identifier of the BillingProfile to which this object belongs
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeHostingRuleResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hostingRule": {
      		"company": number,
      		"id": number,
      		"profile": number
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a hostingRule object, or it is invalid.
      3Not enough keys exist in the hostingRule object.
      3During create: When creating a new BillableHostingRule, start date is invalid.
      3During create: When creating a new BillableHostingRule, end date is invalid.
      3During create: When creating a new BillableHostingRule, a name was not given, or it is invalid.
      3During create: When creating a new BillableHostingRule, profile is invalid.
      3During create: When creating a new BillableHostingRule, service is invalid.
      3During update: When updating a BillableHostingRule, the name was invalid.
      3During update: When updating a BillableHostingRule, the v was invalid.
      5During create: You do not have permission to create new BillableHostingRules.
      5During update: You do not have permission to update BillableHostingRules.
      6During update: When updating a BillableHostingRule, the v was not an array, or contained too few numbers.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      111The BillingProfile was not found by its unique identifier.
      If you receive this error, please contact technical support.
      113During update: The BillableHostingRule was not found by its unique identifier.
      130During update: When updating a BillableHostingRule, the hostingRule.profile can not be changed.

      removeBillingProfile

      Deletes an existing BillingProfile.
      Request message description
      PropertyTypeRequiredDescription
      billingProfileParamIdalwaysAn object to contain the "id" of the BillingProfile.
      billingProfile.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeBillingProfile {
      	"billingProfile": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      billingProfileRespDeletedAn object which contains the BillingProfile's unique identifier and deleted status.
      billingProfile.companyuint64Identifier of the Company to which this object belongs.
      billingProfile.deletedbooleanFlag showing if the object is deleted.
      billingProfile.iduint64?Identifier given as input for the command.
      billingProfile.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeBillingProfileResponse {
      	"billingProfile": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred, the BillingProfile was not deleted.
      If you receive this error, please contact technical support.
      3The request does not contain a billingProfile object, or it is invalid.
      3The requested billingProfile id was invalid.
      5You do not have permission to delete this Company's BillingProfiles.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      111The BillingProfile was not found by its unique identifier.

      removeBillingReport

      Deletes an existing BillingReport.
      Request message description
      PropertyTypeRequiredDescription
      billingReportParamIdalwaysAn object to contain the "id" of the BillingReport.
      billingReport.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeBillingReport {
      	"billingReport": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      billingReportRespDeletedAn object which contains the BillingReport's unique identifier and deleted status.
      billingReport.companyuint64Identifier of the Company to which this object belongs.
      billingReport.deletedbooleanFlag showing if the object is deleted.
      billingReport.iduint64?Identifier given as input for the command.
      billingReport.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeBillingReportResponse {
      	"billingReport": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred, the BillingReport was not deleted.
      If you receive this error, please contact technical support.
      3The request does not contain a billingReport object, or it is invalid.
      3The requested billingReport id was invalid.
      5You do not have permission to delete this Company's BillingReports.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      119The BillingReport was not found by its unique identifier.

      removeHostingLicense

      Deletes an existing BillableHostingLicense.
      Request message description
      PropertyTypeRequiredDescription
      hostingLicenseParamIdalwaysAn object to contain the "id" of the BillableHostingLicense.
      hostingLicense.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeHostingLicense {
      	"hostingLicense": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hostingLicenseRespDeletedAn object which contains the BillableHostingLicense's unique identifier and deleted status.
      hostingLicense.companyuint64Identifier of the Company to which this object belongs.
      hostingLicense.deletedbooleanFlag showing if the object is deleted.
      hostingLicense.iduint64?Identifier given as input for the command.
      hostingLicense.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeHostingLicenseResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hostingLicense": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred, the BillableHostingLicense was not deleted.
      If you receive this error, please contact technical support.
      3The request does not contain a hostingLicense object, or it is invalid.
      3The requested hostingLicense id was invalid.
      5You do not have permission to delete this Company's BillableHostingLicenses.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      117The BillableHostingLicense was not found by its unique identifier.

      removeHostingRule

      Deletes an existing BillableHostingRule.
      Request message description
      PropertyTypeRequiredDescription
      hostingRuleParamIdalwaysAn object to contain the "id" of the BillableHostingRule.
      hostingRule.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeHostingRule {
      	"hostingRule": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hostingRuleRespDeletedAn object which contains the BillableHostingRule's unique identifier and deleted status.
      hostingRule.companyuint64Identifier of the Company to which this object belongs.
      hostingRule.deletedbooleanFlag showing if the object is deleted.
      hostingRule.iduint64?Identifier given as input for the command.
      hostingRule.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeHostingRuleResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hostingRule": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred, the BillableHostingRule was not deleted.
      If you receive this error, please contact technical support.
      3The request does not contain a hostingRule object, or it is invalid.
      3The requested hostingRule id was invalid.
      5You do not have permission to delete this Company's BillableHostingRules.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      113The BillableHostingRule was not found by its unique identifier.

      restoreBillingProfile

      Restores the specified BillingProfile to its previous version.
      Request message description
      PropertyTypeRequiredDescription
      billingProfileParamIdalwaysAn object to contain the "id" of the BillingProfile.
      billingProfile.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreBillingProfile {
      	"billingProfile": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      billingProfileRespDeletedAn object which contains the BillingProfile's unique identifier and deleted status.
      billingProfile.companyuint64Identifier of the Company to which this object belongs.
      billingProfile.deletedbooleanFlag showing if the object is deleted.
      billingProfile.iduint64?Identifier given as input for the command.
      billingProfile.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreBillingProfileResponse {
      	"billingProfile": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a billingProfile object, or it is invalid.
      3The requested billingProfile id was invalid.
      5You do not have permission to restore BillingProfiles.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      111The BillingProfile was not found by its unique identifier.
      112The BillingProfile was found, but is not marked as deleted.

      restoreBillingReport

      Restores the specified BillingReport to its previous version.
      Request message description
      PropertyTypeRequiredDescription
      billingReportParamIdalwaysAn object to contain the "id" of the BillingReport.
      billingReport.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreBillingReport {
      	"billingReport": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      billingReportRespDeletedAn object which contains the BillingReport's unique identifier and deleted status.
      billingReport.companyuint64Identifier of the Company to which this object belongs.
      billingReport.deletedbooleanFlag showing if the object is deleted.
      billingReport.iduint64?Identifier given as input for the command.
      billingReport.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreBillingReportResponse {
      	"billingReport": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a billingReport object, or it is invalid.
      3The requested billingReport id was invalid.
      5You do not have permission to restore BillingReports.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      119The BillingReport was not found by its unique identifier.
      120The BillingReport was found, but is not marked as deleted.

      restoreHostingLicense

      Restores the specified BillableHostingLicense to its previous version.
      Request message description
      PropertyTypeRequiredDescription
      hostingLicenseParamIdalwaysAn object to contain the "id" of the BillableHostingLicense.
      hostingLicense.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreHostingLicense {
      	"hostingLicense": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hostingLicenseRespDeletedAn object which contains the BillableHostingLicense's unique identifier and deleted status.
      hostingLicense.companyuint64Identifier of the Company to which this object belongs.
      hostingLicense.deletedbooleanFlag showing if the object is deleted.
      hostingLicense.iduint64?Identifier given as input for the command.
      hostingLicense.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreHostingLicenseResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hostingLicense": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a hostingLicense object, or it is invalid.
      3The requested hostingLicense id was invalid.
      5You do not have permission to delete BillableHostingLicenses.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      117The BillableHostingLicense was not found by its unique identifier.
      118The BillableHostingLicense was found, but is not marked as deleted.

      restoreHostingRule

      Restores the specified BillableHostingRule to its previous version.
      Request message description
      PropertyTypeRequiredDescription
      hostingRuleParamIdalwaysAn object to contain the "id" of the BillableHostingRule.
      hostingRule.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreHostingRule {
      	"hostingRule": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hostingRuleRespDeletedAn object which contains the BillableHostingRule's unique identifier and deleted status.
      hostingRule.companyuint64Identifier of the Company to which this object belongs.
      hostingRule.deletedbooleanFlag showing if the object is deleted.
      hostingRule.iduint64?Identifier given as input for the command.
      hostingRule.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreHostingRuleResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hostingRule": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a hostingRule object, or it is invalid.
      3The requested hostingRule id was invalid.
      5You do not have permission to restore BillableHostingRules.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      113The BillableHostingRule was not found by its unique identifier.
      114The BillableHostingRule was found, but is not marked as deleted.

      Companies

      getCompaniesList

      Gets the list of child-companies for the specified Company. By default the full tree of companies is returned, but this can be overridden using tree. By default it does not include the parent Company, but this can be overridden using includeParent.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      includeParentbooleanoptionalfalseWhen set to true, the parent Company is included in the results.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      treebooleanoptionaltrueWhen set to true, the full tree of companies is returned. Otherwise, only the first-level child-companies are included.
      Request message structure
      getCompaniesList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"includeParent": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number,
      	"tree": boolean
      }
      Response message description
      PropertyTypeDescription
      companiesArray.<CompanyGeneral>The list of requested companies.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getCompaniesListResponse {
      	"companies": [
      		{
      			"id": number,
      			"name": string,
      			"notes": string,
      			"parent": number,
      			"references": {
      				string: string
      			},
      			"v": [
      				number
      			]
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view this Company or child companies.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getCompany

      Gets details of the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" key.
      company.iduint64alwaysIdentifier given as input for the command.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted Company.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getCompany {
      	"company": {
      		"id": number
      	},
      	"includeDeleted": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyCompanyThe requested Company.
      company.directoryObject.<string, Array.<uint64>>
      for value-values see: Contact.id
      The list of Contacts from this and other companies broken down by contact role.
      company.iduint64Unique identifier of the Company.
      company.labelsObject.<codified, LabelStyle>
      for keys see: LabelStyle.code
      The styles for labels added to Assets, Places, and other things.
      company.namestring
      maximum-length: 100
      The organizational name.
      company.notesstringNotes.
      company.parentuint64The unique identifier of this company's parent organization.
      company.passwordPolicyPasswordPolicyThe password complexity and expiry policy.
      company.passwordPolicy.expireModePasswordExpiryModeDefines how passwords expire.
      company.passwordPolicy.expireThresholdbyteThe threshold for expiry.
      company.passwordPolicy.includeLettersbooleanDo passwords require alphabetical characters.
      company.passwordPolicy.includeNumbersbooleanDo passwords require numeric characters.
      company.passwordPolicy.includeSpecialbooleanDo passwords require non-alphanumeric characters.
      company.passwordPolicy.includeUpperLowerbooleanDo passwords require upper-case and lower-case letters.
      company.passwordPolicy.minimumLengthbyteThe minimum number of characters required.
      company.referencesObject.<string, string>
      maximum-count: 10
      maximum-length of keys: 20
      maximum-length of values: 100
      Name/value collections of custom fields used to refer to external systems.
      company.resellerCompanyResellerIf this company is a reseller, then they have their own theme, support and billing information.
      company.reseller.contactInfoObject.<string, uint64>
      maximum-count of keys: 100
      for values see: Contact.id
      A list of Contacts for company specific things like Technical Support, Billing, etc...
      company.reseller.domainstring
      maximum-length: 100
      The URN and path to the instance of v4. It does not contain the protocol because all instances are required to be HTTPS.
      company.reseller.favouritestring
      maximum-length: 200
      The name of the icon file used for browser bookmarks.
      company.reseller.gamutObject.<string, ColourStyle>
      maximum-length of keys: 25
      Colours used as templates for status tags, labels, and places.
      company.reseller.graphicsObject.<string, codified>
      maximum-length of keys: 25
      maximum-length of values: 30
      A list of symbol names and their corresponding FontAwesome icon names.
      company.reseller.iconstring
      maximum-length: 200
      The name of the image uploaded as the logo (used for collapsed/mobile view).
      company.reseller.iduint64Unique identifier of the Company.
      company.reseller.languagesArray.<codified>
      maximum-length of values: 5
      A list of supported languages for your customers.
      company.reseller.notifyEmailNotificationServerEmailThe server used for notification and conversational email messages sent and received by the system.
      company.reseller.notifyEmail.incomingAddressstringThe domain or IP address of the incoming email server.
      company.reseller.notifyEmail.incomingLoginstringThe username used to login to the incoming email server.
      company.reseller.notifyEmail.incomingMessageNumberuint32IMAP message sequence number so only recent messages are retrieved.
      company.reseller.notifyEmail.incomingPortuint16The port number of the incoming email server.
      company.reseller.notifyEmail.incomingSecurebooleanIs the incoming email server using a secure SSL/TLS connection (it should).
      company.reseller.notifyEmail.incomingTypestringThe type of incoming protocol to use (IMAP or POP3).
      company.reseller.notifyEmail.outgoingAddressstringThe domain or IP address of the outgoing email server.
      company.reseller.notifyEmail.outgoingLoginstringThe username used to login to the outgoing email server.
      company.reseller.notifyEmail.outgoingPortuint16The port number of the outgoing email server.
      company.reseller.notifyEmail.outgoingReplyToemailAn optional field which can be set as the "sent from" and/or "reply-to" address.
      company.reseller.notifyEmail.outgoingSecurebooleanIs the outgoing email server using a secure SSL/TLS connection (it should).
      company.reseller.notifyEmail.outgoingTypestringThe type of outgoing protocol to use (only SMTP).
      company.reseller.notifySmsNotificationServerSmsDefinition for load-balanced outbound SMS numbers for the reseller.
      company.reseller.notifySms.notifyLimituint16A per-number/per-day limit on the amount of Notifications sent.
      company.reseller.notifySms.phoneNumbersObject.<string, Array.<phone>>
      fixed length of keys: 2
      All phone numbers listed by the country (using two-digit ISO 3166-1 alpha-2 country codes) they each serve.
      company.reseller.parentuint64The unique identifier of this company's parent organization.
      company.reseller.recoverBodystringThe body of the email sent to a user requesting a password reset.
      company.reseller.recoverIsHtmlboolean
      company.reseller.recoverSubjectstringThe subject of the email sent to a user requesting a password reset.
      company.reseller.serviceNamestring
      maximum-length: 150
      The name of the branded service being provided to the seller's customers.
      company.reseller.termsPreamblestringA preamble to the general terms and conditions offered by Fleet Freedom.
      company.reseller.termsUpdateddatetimeThe date and time when the terms were updated. This will promt users who are logging-in to re-agree to the new terms
      company.reseller.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      company.reseller.websiteObject.<string, colour>
      maximum-length of keys: 25
      maximum-length of values: 22
      Themed colours used in the web-based UI.
      company.sessionPolicySessionPolicyThe session lifetime policy.
      company.sessionPolicy.applicationsArray.<string>The list of applications users are allowed to use to create sessions.
      company.sessionPolicy.expireTimeoutuint16The lifetime duration of a session in minutes.
      company.sessionPolicy.idleAllowedbooleanDefines whether a session should be automatically killed when the connection breaks.
      company.sessionPolicy.ipv4RangesArray.<ipv4>
      maximum-length of values: 19
      Restrict session creation to only the provided IPv4 ranges (using CIDR slash-notation). Leave blank for Internet access.
      company.sessionPolicy.maxSessionsbyteThe maximum number of sessions allowed per user.
      company.sessionPolicy.multiUserSessionMultiUserDefines the behaviour of the system when a user creates multiple sessions.
      company.tagsObject.<codified, LabelStyle>
      for keys see: LabelStyle.code
      The styles for status tags added to Assets.
      company.userGroupsArray.<UserGroup>A list of user groups that belong to this company. A user can only belong to groups from their own company.
      company.vArray.<int32>
      fixed count: 6
      Object version keys used to validate synchronization for all object properties.
      company.v[0]int32The first element is for the general properties
      company.v[1]int32The second element is not used (yet)
      company.v[2]int32The third element is not used (yet)
      company.v[3]int32The fourth element is for the style properties
      company.v[4]int32The fifth element is for the policy properties
      company.v[5]int32The sixth element is for the reseller properties
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getCompanyResponse {
      	"company": {
      		"directory": {
      			string: [
      				number
      			]
      		},
      		"id": number,
      		"labels": {
      			string: {
      				"code": string,
      				"fill": string,
      				"graphic": string,
      				"name": string,
      				"notes": string,
      				"stroke": string
      			}
      		},
      		"name": string,
      		"notes": string,
      		"parent": number,
      		"passwordPolicy": {
      			"expireMode": string,
      			"expireThreshold": number,
      			"includeLetters": boolean,
      			"includeNumbers": boolean,
      			"includeSpecial": boolean,
      			"includeUpperLower": boolean,
      			"minimumLength": number
      		},
      		"references": {
      			string: string
      		},
      		"reseller": {
      			"contactInfo": {
      				string: number
      			},
      			"domain": string,
      			"favourite": string,
      			"gamut": {
      				string: {
      					"fill": string,
      					"stroke": string
      				}
      			},
      			"graphics": {
      				string: string
      			},
      			"icon": string,
      			"id": number,
      			"languages": [
      				string
      			],
      			"logo": string,
      			"notifyEmail": {
      				"incomingAddress": string,
      				"incomingLogin": string,
      				"incomingMessageNumber": number,
      				"incomingPort": number,
      				"incomingSecure": boolean,
      				"incomingType": string,
      				"outgoingAddress": string,
      				"outgoingLogin": string,
      				"outgoingPort": number,
      				"outgoingReplyTo": string,
      				"outgoingSecure": boolean,
      				"outgoingType": string
      			},
      			"notifySms": {
      				"notifyLimit": number,
      				"phoneNumbers": {
      					string: [
      						number
      					]
      				}
      			},
      			"parent": number,
      			"recoverBody": string,
      			"recoverIsHtml": boolean,
      			"recoverSubject": string,
      			"serviceName": string,
      			"termsPreamble": string,
      			"termsUpdated": string,
      			"v": [
      				number
      			],
      			"website": {
      				string: string
      			}
      		},
      		"sessionPolicy": {
      			"applications": [
      				string
      			],
      			"expireTimeout": number,
      			"idleAllowed": boolean,
      			"ipv4Ranges": [
      				string
      			],
      			"maxSessions": number,
      			"multiUser": string
      		},
      		"tags": {
      			string: {
      				"code": string,
      				"fill": string,
      				"graphic": string,
      				"name": string,
      				"notes": string,
      				"stroke": string
      			}
      		},
      		"userGroups": [
      			{
      				"company": number,
      				"id": number,
      				"name": string,
      				"notes": string,
      				"permissions": [
      					{
      						"company": number,
      						"kind": string,
      						"labels": [
      							string
      						],
      						"level": string,
      						"method": string,
      						"type": string
      					}
      				],
      				"v": [
      					number
      				]
      			}
      		],
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      mergeCompany

      Creates a new or updates an existing Company.
      Request message description
      PropertyTypeRequiredDescription
      companyObject.<string, ?>alwaysA simple object to contain the company parameters.
      company.directoryObject.<string, Array.<uint64>>
      for value-values see: Contact.id
      optionalThe list of Contacts from this and other companies broken down by contact role.
      company.iduint64?updateUnique identifier of the Company.
      company.labelsObject.<string, LabelStyle>optionalThe styles for labels added to Assets, Places, and other things.
      company.namestring
      maximum-length: 100
      createThe organizational name.
      company.notesstringoptionalNotes.
      company.parentuint64?createThe unique identifier of this company's parent organization.
      company.passwordPolicyObject.<string, ?>alwaysThe password complexity and expiry policy.
      company.passwordPolicy.expireModePasswordExpiryMode?optionalDefines how passwords expire.
      company.passwordPolicy.expireThresholdbyte?optionalThe threshold for expiry (in days).
      company.passwordPolicy.includeLettersbooleanoptionalDo passwords require alphabetical characters.
      company.passwordPolicy.includeNumbersbooleanoptionalDo passwords require numeric characters.
      company.passwordPolicy.includeSpecialbooleanoptionalDo passwords require non-alphanumeric characters.
      company.passwordPolicy.includeUpperLowerbooleanoptionalDo passwords require upper-case and lower-case letters.
      company.passwordPolicy.minimumLengthbyte?optionalThe minimum number of characters required.
      company.referencesObject.<string, string>optionalName/value collections of custom fields used to refer to external systems. If the value is null, the references are removed from the Company.
      company.sessionPolicyObject.<string, ?>alwaysThe session lifetime policy.
      company.sessionPolicy.applicationsArray.<string>optionalThe list of applications users are allowed to use to create sessions.
      company.sessionPolicy.expireTimeoutuint16?optionalThe lifetime duration of a session in minutes.
      company.sessionPolicy.idleAllowedbooleanoptionalDefines whether a session should be automatically killed when the connection breaks.
      company.sessionPolicy.ipv4RangesArray.<ipv4>
      maximum-length of values: 19
      optionalRestrict session creation to only the provided IPv4 ranges (using CIDR slash-notation). Leave blank for Internet access.
      company.sessionPolicy.maxSessionsbyte?optionalThe maximum number of sessions allowed per user.
      company.sessionPolicy.multiUserSessionMultiUser?optionalDefines the behaviour of the system when a user creates multiple sessions.
      company.tagsObject.<string, LabelStyle>optionalThe styles for status tags added to Assets.
      company.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeCompany {
      	"company": {
      		"directory": {
      			string: [
      				number
      			]
      		},
      		"id": number,
      		"labels": {
      			string: {
      				"code": string,
      				"fill": string,
      				"graphic": string,
      				"name": string,
      				"notes": string,
      				"stroke": string
      			}
      		},
      		"name": string,
      		"notes": string,
      		"parent": number,
      		"passwordPolicy": {
      			"expireMode": string,
      			"expireThreshold": number,
      			"includeLetters": boolean,
      			"includeNumbers": boolean,
      			"includeSpecial": boolean,
      			"includeUpperLower": boolean,
      			"minimumLength": number
      		},
      		"references": {
      			string: string
      		},
      		"sessionPolicy": {
      			"applications": [
      				string
      			],
      			"expireTimeout": number,
      			"idleAllowed": boolean,
      			"ipv4Ranges": [
      				string
      			],
      			"maxSessions": number,
      			"multiUser": string
      		},
      		"tags": {
      			string: {
      				"code": string,
      				"fill": string,
      				"graphic": string,
      				"name": string,
      				"notes": string,
      				"stroke": string
      			}
      		},
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdParentAn object which contains the "id" and "parent" keys.
      company.iduint64?Identifier given as input for the command.
      company.parentuint64?Identifier of the parent to which this company belongs
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeCompanyResponse {
      	"company": {
      		"id": number,
      		"parent": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3No valid changes would be performed.
      3One of the keys in the company.labels object is blank.
      3One of the values in the company.labels object is not valid.
      3One of the keys in the company.tags object is blank.
      3One of the values in the company.tags object is not valid.
      3One of the keys in the company.directory object is blank.
      3One of the values in the company.directory object is not an array.
      3One of the arrays in the company.directory object contains an invalid value.
      3One of the values in the company.sessionPolicy.applications array contains an invalid regular expression.
      3One of the values in the company.sessionPolicy.ipv4Ranges array contains an invalid IP address or CIDR range.
      3The given value for the company.sessionPolicy.multiUser is invalid.
      3The given value for the company.sessionPolicy.expireTimeout is invalid.
      3The given value for the company.sessionPolicy.maxSessions is invalid.
      3The given value for the company.passwordPolicy.minimumLength is invalid.
      3The given value for the company.passwordPolicy.expireMode is invalid.
      3The given value for the company.passwordPolicy.expireThreshold is invalid.
      3The company.passwordPolicy.expireThreshold is zero, and the company.passwordPolicy.expireMode is anything but PasswordExpiryMode.never.
      3The company.references were not provided as null or an object.
      3During create: When creating a new Company, a name was not given.
      3During create: When creating a new Company, a parent was not given.
      3During update: When updating a Company, the name was given as null or blank.
      3During update: When updating a Company, the v was not an array, or contained too few numbers.
      3During create: When creating a new Company, too many company.references were given as input.
      Returns an ErrorDetailMinMax as the errorDetails..
      5You do not have permission to create a new Company.
      5You do not have permission to update the CompanyGeneral.
      5You do not have permission to update the CompanyDirectory.
      5You do not have permission to update the CompanyStyles.
      5You do not have permission to update the CompanyPolicies.
      6During update: When updating a Company, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28During update: The Company was not found by its unique identifier.
      130The given parent cannot be the same as the Company id.
      Returns an ErrorDetailParent as the errorDetails..
      130The given parent would create a circular reference in the Company tree.
      Returns an ErrorDetailParent as the errorDetails..
      130During update: When updating an Company, the resulting number of company.references would be too high.
      Returns an ErrorDetailParent as the errorDetails..

      removeCompany

      Deletes an existing Company.
      Request message description
      PropertyTypeRequiredDescription
      companyParamIdalwaysAn object to contain the "id" key.
      company.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeCompany {
      	"company": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespParentDeletedAn object which contains the Company's unique identifier and deleted status.
      company.deletedbooleanFlag showing if the object is deleted.
      company.iduint64?Identifier given as input for the command.
      company.parentuint64Identifier of the parent to which the Company is a child.
      company.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeCompanyResponse {
      	"company": {
      		"deleted": boolean,
      		"id": number,
      		"parent": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to delete this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      restoreCompany

      Restores the specified Company.
      Request message description
      PropertyTypeRequiredDescription
      companyParamIdalwaysAn object to contain the "id" key.
      company.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreCompany {
      	"company": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespParentDeletedAn object which contains the Company's unique identifier and deleted status.
      company.deletedbooleanFlag showing if the object is deleted.
      company.iduint64?Identifier given as input for the command.
      company.parentuint64Identifier of the parent to which the Company is a child.
      company.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreCompanyResponse {
      	"company": {
      		"deleted": boolean,
      		"id": number,
      		"parent": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to restore this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.
      29The Company was found, but is not marked as deleted.

      Contacts

      getContact

      Gets details of the specified Contact.
      Request message description
      PropertyTypeRequiredDefaultDescription
      contactParamIdalwaysAn object to contain the "id" of the Contact.
      contact.iduint64alwaysIdentifier given as input for the command.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted Contact.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getContact {
      	"contact": {
      		"id": number
      	},
      	"includeDeleted": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      contactContactThe requested Contact.
      contact.addressesObject.<string, string>Mailing addresses. Use the object key like a name of the address. Example keys: Home, Work, Park, etc.
      contact.companyuint64The company to which this contact belongs
      contact.datesObject.<string, datetime>Date information. Use the object key like a name of the date. Example keys: Birthday, Started Date, Retired On, etc.
      contact.emailsObject.<string, email>
      maximum-length of values: 254
      Email addresses. Use the object key like a name of the address. Example keys: Home, Work, Support, Old, etc.
      contact.iduint64Unique identifier of this contact.
      contact.namestring
      maximum-length: 100
      The person's name
      contact.notesstringNotes about this person.
      contact.optionsObject.<string, string>Uncategorized information. Use the object keys and values however you'd like.
      contact.otherNamesObject.<string, string>
      maximum-length of values: 254
      A collection of other names this person might go by. Use the object key like a name identifier. Example keys: Initials, Nickname, Maiden Name, etc.
      contact.phonesObject.<string, phone>Phone numbers. Use the object key like a name of the phone number. Example keys: Mobile, Fax, Home, Office, etc.
      contact.picturesArray.<uint64>
      for values see: Picture.id
      Pictures of this Contact.
      contact.rolesArray.<string>A list of roles they play in the Company.
      contact.urlsObject.<string, url>
      maximum-length of values: 254
      Websites and other online resources. Use the object key like a name of the address. Example keys: Downloads, Support, FTP, etc.
      contact.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getContactResponse {
      	"contact": {
      		"addresses": {
      			string: string
      		},
      		"company": number,
      		"dates": {
      			string: string
      		},
      		"emails": {
      			string: string
      		},
      		"id": number,
      		"name": string,
      		"notes": string,
      		"options": {
      			string: string
      		},
      		"otherNames": {
      			string: string
      		},
      		"phones": {
      			string: number
      		},
      		"pictures": [
      			number
      		],
      		"roles": [
      			string
      		],
      		"urls": {
      			string: string
      		},
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a contact object, or it is invalid.
      3The contact object does not contain an id, or it is invalid.
      5You do not have permission to view this Contact.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      31The Contact was not found by its unique identifier.

      getContactsList

      Gets the list of Contacts for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getContactsList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of Contacts belong.
      company.iduint64?Identifier given as input for the command.
      contactsArray.<Contact>The list of requested Contacts.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getContactsListResponse {
      	"company": {
      		"id": number
      	},
      	"contacts": [
      		{
      			"addresses": {
      				string: string
      			},
      			"company": number,
      			"dates": {
      				string: string
      			},
      			"emails": {
      				string: string
      			},
      			"id": number,
      			"name": string,
      			"notes": string,
      			"options": {
      				string: string
      			},
      			"otherNames": {
      				string: string
      			},
      			"phones": {
      				string: number
      			},
      			"pictures": [
      				number
      			],
      			"roles": [
      				string
      			],
      			"urls": {
      				string: string
      			},
      			"v": [
      				number
      			]
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view Contacts for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      mergeContact

      Creates a new or updates an existing Contact.
      Request message description
      PropertyTypeRequiredDescription
      contactObject.<string, ?>alwaysA simple object to contain the Contact parameters.
      contact.addressesObject.<string, string>optionalMailing addresses Use the object key like a name of the address. Example keys: Home, Work, Park, etc.
      contact.companyuint64?createThe Company to which this Contact belongs. After creation, this value is read-only.
      contact.datesObject.<string, datetime>optionalDate information Use the object key like a name of the date. Example keys: Birthday, Started Date, Retired On, etc.
      contact.emailsObject.<string, email>
      maximum-length of values: 254
      optionalEmail addresses Use the object key like a name of the address. Example keys: Home, Work, Support, Old, etc.
      contact.iduint64?updateThe unique identifier of the Contact you want to update.
      contact.namestring
      maximum-length: 100
      optionalName for the Contact.
      contact.notesstringoptionalNotes for the Contact.
      contact.optionsObject.<string, string>optionalUncategorized information Use the object keys and values however you'd like.
      contact.otherNamesObject.<string, string>
      maximum-length of values: 254
      optionalA collection of other names this person might go by. Use the object key like a name identifier. Example keys: Initials, Nickname, Maiden Name, etc.
      contact.phonesObject.<string, phone?>optionalPhone numbers. Use the object key like a name of the phone number. Example keys: Mobile, Fax, Home, Office, etc.
      contact.picturesArray.<uint64>
      for values see: Picture.id
      optionalPictures of this Contact.
      contact.rolesArray.<codified>optionalA list of roles they play in the Company.
      contact.urlsObject.<string, url>
      maximum-length of values: 254
      optionalWebsites and other online resources Use the object key like a name of the address. Example keys: Downloads, Support, FTP, etc.
      contact.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeContact {
      	"contact": {
      		"addresses": {
      			string: string
      		},
      		"company": number,
      		"dates": {
      			string: string
      		},
      		"emails": {
      			string: string
      		},
      		"id": number,
      		"name": string,
      		"notes": string,
      		"options": {
      			string: string
      		},
      		"otherNames": {
      			string: string
      		},
      		"phones": {
      			string: number
      		},
      		"pictures": [
      			number
      		],
      		"roles": [
      			string
      		],
      		"urls": {
      			string: string
      		},
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      contactRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
      contact.companyuint64Identifier of the Company to which this object belongs.
      contact.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeContactResponse {
      	"contact": {
      		"company": number,
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a contact object, or it is invalid.
      3Not enough keys exist in the contact object.
      3During create: When creating a new Contact, a company was not given.
      3During create: When creating a new Contact, a name was not given, or it is invalid.
      3During update: When updating a Contact, the id was invalid.
      3During update: When updating a Contact, the name was given as blank.
      3During update: When updating a Contact, the v was not an array, or contained too few numbers.
      3One of the contact.otherNames keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the contact.emails keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the contact.phones keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the contact.addresses keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the contact.urls keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the contact.dates keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the contact.options keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the contact.pictures values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      5You do not have permission to create a new Contact.
      5You do not have permission to update this Contact.
      6During update: When updating a Contact, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      31During update: The Contact was not found by its unique identifier.
      69One of the contact.pictures given as input in the Pictures array was not found.
      Returns an ErrorDetailBadIds as the errorDetails..
      130During update: When updating a Contact, the company was provided as a different value.

      removeContact

      Deletes an existing Contact.
      Request message description
      PropertyTypeRequiredDescription
      contactParamIdalwaysAn object to contain the "id" of the Contact.
      contact.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeContact {
      	"contact": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      contactRespDeletedAn object which contains the Contact's id, owning Company id, and deleted status.
      contact.companyuint64Identifier of the Company to which this object belongs.
      contact.deletedbooleanFlag showing if the object is deleted.
      contact.iduint64?Identifier given as input for the command.
      contact.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeContactResponse {
      	"contact": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a contact object, or it is invalid.
      3The contact object does not contain an id, or it is invalid.
      5You do not have permission to delete this Contact.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      31The Contact was not found by its unique identifier.
      121This Contact is still being used by a Asset or User.
      Returns an ErrorDetailContactInUse as the errorDetails..

      restoreContact

      Restores the specified Contact.
      Request message description
      PropertyTypeRequiredDescription
      contactParamIdalwaysAn object to contain the "id" of the Contact.
      contact.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreContact {
      	"contact": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      contactRespDeletedAn object which contains the Contact's id, owning Company id, and deleted status.
      contact.companyuint64Identifier of the Company to which this object belongs.
      contact.deletedbooleanFlag showing if the object is deleted.
      contact.iduint64?Identifier given as input for the command.
      contact.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreContactResponse {
      	"contact": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a contact object, or it is invalid.
      3The contact object does not contain an id, or it is invalid.
      5You do not have permission to restore this Contact.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      31The Contact was not found by its unique identifier.
      32The Contact was found, but is not marked as deleted.

      Dispatch

      getDispatchTask

      Gets details of the specified DispatchTask.
      Request message description
      PropertyTypeRequiredDefaultDescription
      dispatchTaskParamIdalwaysIdentifier object to contain the DispatchTask's identifier.
      dispatchTask.iduint64alwaysIdentifier given as input for the command.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted DispatchTask.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getDispatchTask {
      	"dispatchTask": {
      		"id": number
      	},
      	"includeDeleted": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      dispatchTask
      Deprecated
      DispatchTaskThe requested DispatchTask.
      Use DispatchJob instead.
      dispatchTask.addressstring
      maximum-length: 500
      The street address of where the task must be completed.
      dispatchTask.arriveddatetimeThe date/time stamp of when the asset arrived at this task.
      dispatchTask.assetuint64The asset to which this task belongs.
      dispatchTask.attachmentsArray.<uint64>
      maximum-count: 10
      for values see: Document.id
      A list of hosted Document identifiers attached to this task.
      dispatchTask.companyuint64The company to which this task belongs.
      dispatchTask.completeddatetimeThe date/time stamp of when this task was completed.
      dispatchTask.createddatetimeWhen this task was created.
      dispatchTask.durationtimespanThe optional expected duration of the work for this task.
      dispatchTask.etadatetimeThe optional estimated time of arrival for the asset.
      dispatchTask.iduint64Unique identifier of this task.
      dispatchTask.instructionsstringInstructions (filled out by dispatcher) for the field-employee to help them completed the task.
      dispatchTask.latlngLatLngThe lat/long coordinates of where the task must be completed.
      dispatchTask.latlng.latdoubleLatitude
      dispatchTask.latlng.lngdoubleLongitude
      dispatchTask.namestring
      maximum-length: 100
      The name of this task or the work needed to be performed.
      dispatchTask.notesstringNotes about the status of the work filled in by field-employee.
      dispatchTask.placeuint64?An optional place which can be used as a template instead of providing lat/long coordinates and a street address.
      dispatchTask.reference
      Deprecated
      string
      maximum-length: 100
      A custom field used to refer to an external system. Examples are a work order, pick-up, waybill, etc...
      Use dispatchTask.references[DispatchTask.REFERENCE] instead.
      dispatchTask.referencesObject.<string, string>
      maximum-count: 10
      maximum-length of keys: 20
      maximum-length of values: 100
      Name/value collections of custom fields used to refer to external systems.
      dispatchTask.signatorystring
      maximum-length: 100
      The name of the person who signed the task's completion.
      dispatchTask.signaturebooleanIndicates whether the task has a signature.
      dispatchTask.status
      Deprecated
      TaskStatusThe progress of this task.
      Use DispatchStepStatus instead.
      dispatchTask.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getDispatchTaskResponse {
      	"dispatchTask": {
      		"address": string,
      		"arrived": string,
      		"asset": number,
      		"attachments": [
      			number
      		],
      		"company": number,
      		"completed": string,
      		"created": string,
      		"duration": string,
      		"eta": string,
      		"id": number,
      		"instructions": string,
      		"latlng": {
      			"lat": number,
      			"lng": number
      		},
      		"name": string,
      		"notes": string,
      		"place": number,
      		"reference": string,
      		"references": {
      			string: string
      		},
      		"signatory": string,
      		"signature": boolean,
      		"status": string,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a dispatchTask object, or it is invalid.
      3The dispatchTask object does not contain an id, or it is invalid.
      5You do not have permission to view DispatchTasks.
      5You do not have permission to view the associated Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The DispatchTask was found, but the associated asset was not found.
      64The DispatchTask was not found by its unique identifier.
      96The DispatchTask was found, but the associated asset is suspended. Before using any asset resources, it must be reactivated.

      getDispatchTasksList

      Gets the list of DispatchTasks for the specified Asset.
      Request message description
      PropertyTypeRequiredDefaultDescription
      afterdatetimeoptional
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      beforedatetimeoptional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getDispatchTasksList {
      	"after": string,
      	"asset": {
      		"id": number
      	},
      	"before": string,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of DispatchTasks belong.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.iduint64?Identifier given as input for the command.
      dispatchTasksArray.<DispatchTask>The list of requested DispatchTasks.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getDispatchTasksListResponse {
      	"asset": {
      		"company": number,
      		"id": number
      	},
      	"dispatchTasks": [
      		{
      			"address": string,
      			"arrived": string,
      			"asset": number,
      			"attachments": [
      				number
      			],
      			"company": number,
      			"completed": string,
      			"created": string,
      			"duration": string,
      			"eta": string,
      			"id": number,
      			"instructions": string,
      			"latlng": {
      				"lat": number,
      				"lng": number
      			},
      			"name": string,
      			"notes": string,
      			"place": number,
      			"reference": string,
      			"references": {
      				string: string
      			},
      			"signatory": string,
      			"signature": boolean,
      			"status": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a asset object, or it is invalid.
      3The asset object does not contain an id, or it is invalid.
      5You do not have permission to view DispatchTasks.
      5You do not have permission to view the associated Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.
      28The Company containing the DispatchTasks was not found.
      96The Asset was found, but it is suspended. Before using any Asset resources, it must be reactivated.

      getDispatchTasksListByCompany

      Gets the list of DispatchTasks for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      afterdatetimeoptional
      beforedatetimeoptional
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getDispatchTasksListByCompany {
      	"after": string,
      	"before": string,
      	"company": {
      		"id": number
      	},
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of DispatchTasks belong.
      company.iduint64?Identifier given as input for the command.
      dispatchTasksArray.<DispatchTask>The list of requested DispatchTasks.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getDispatchTasksListByCompanyResponse {
      	"company": {
      		"id": number
      	},
      	"dispatchTasks": [
      		{
      			"address": string,
      			"arrived": string,
      			"asset": number,
      			"attachments": [
      				number
      			],
      			"company": number,
      			"completed": string,
      			"created": string,
      			"duration": string,
      			"eta": string,
      			"id": number,
      			"instructions": string,
      			"latlng": {
      				"lat": number,
      				"lng": number
      			},
      			"name": string,
      			"notes": string,
      			"place": number,
      			"reference": string,
      			"references": {
      				string: string
      			},
      			"signatory": string,
      			"signature": boolean,
      			"status": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view DispatchTasks.
      5You do not have permission to view Assets.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company containing the DispatchTasks was not found.

      getDispatchTasksListByReference

      Gets the list of DispatchTask for the specified Asset that match the given reference.
      Request message description
      PropertyTypeRequiredDefaultDescription
      afterdatetimeoptional
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      beforedatetimeoptional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      referencestringoptionalThe "Reference" field value to match.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getDispatchTasksListByReference {
      	"after": string,
      	"asset": {
      		"id": number
      	},
      	"before": string,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"reference": string,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of DispatchTasks belong.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.iduint64?Identifier given as input for the command.
      dispatchTasksArray.<DispatchTask>The list of requested DispatchTasks.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      referencestringThe "Reference" value given as input.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getDispatchTasksListByReferenceResponse {
      	"asset": {
      		"company": number,
      		"id": number
      	},
      	"dispatchTasks": [
      		{
      			"address": string,
      			"arrived": string,
      			"asset": number,
      			"attachments": [
      				number
      			],
      			"company": number,
      			"completed": string,
      			"created": string,
      			"duration": string,
      			"eta": string,
      			"id": number,
      			"instructions": string,
      			"latlng": {
      				"lat": number,
      				"lng": number
      			},
      			"name": string,
      			"notes": string,
      			"place": number,
      			"reference": string,
      			"references": {
      				string: string
      			},
      			"signatory": string,
      			"signature": boolean,
      			"status": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reference": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a asset object, or it is invalid.
      3The request does not contain a reference value, or it is blank.
      3The asset object does not contain an id, or it is invalid.
      5You do not have permission to view DispatchTasks.
      5You do not have permission to view the associated Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.
      28The Company containing the DispatchTasks was not found.
      96The Asset was found, but it is suspended. Before using any Asset resources, it must be reactivated.

      getDispatchTasksListByReferences

      Gets the list of DispatchTasks for the specified Asset only if the specified reference fields match. If no references are specified, it will match any DispatchTask with no references. If a reference value is null, it will match any DispatchTask without that reference key.
      Request message description
      PropertyTypeRequiredDefaultDescription
      afterdatetimeoptional
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      beforedatetimeoptional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      referencesObject.<string, string>optionalCase-insensitive reference pairs used to match tasks.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getDispatchTasksListByReferences {
      	"after": string,
      	"asset": {
      		"id": number
      	},
      	"before": string,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"references": {
      		string: string
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of DispatchTasks belong.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.iduint64?Identifier given as input for the command.
      dispatchTasksArray.<DispatchTask>The list of requested DispatchTasks.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      referencesObject.<string, string>The reference string given as input.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getDispatchTasksListByReferencesResponse {
      	"asset": {
      		"company": number,
      		"id": number
      	},
      	"dispatchTasks": [
      		{
      			"address": string,
      			"arrived": string,
      			"asset": number,
      			"attachments": [
      				number
      			],
      			"company": number,
      			"completed": string,
      			"created": string,
      			"duration": string,
      			"eta": string,
      			"id": number,
      			"instructions": string,
      			"latlng": {
      				"lat": number,
      				"lng": number
      			},
      			"name": string,
      			"notes": string,
      			"place": number,
      			"reference": string,
      			"references": {
      				string: string
      			},
      			"signatory": string,
      			"signature": boolean,
      			"status": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"references": {
      		string: string
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a asset object, or it is invalid.
      3The request does not contain a references object, or it is invalid.
      3The asset object does not contain an id, or it is invalid.
      5You do not have permission to view DispatchTasks.
      5You do not have permission to view the associated Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.
      28The Company containing the DispatchTasks was not found.
      96The Asset was found, but it is suspended. Before using any Asset resources, it must be reactivated.

      mergeDispatchTask

      Creates a new or updates an existing DispatchTask.
      Request message description
      PropertyTypeRequiredDescription
      dispatchTaskObject.<string, ?>alwaysThe details of a DispatchTask either for creation or update.
      dispatchTask.addressstringcreate (conditional)The street address of this DispatchTask. Condition: You must provide a place, a latlng, or an address. Note: If you ommit the address, the geocoder attempts to populate the field, but will not return an error if it fails.
      dispatchTask.assetuint64?createThe identifier of the Asset assigned to this DispatchTask.
      dispatchTask.attachmentsArray.<uint64>
      for values see: Document.id
      optionalA list of Document identifiers to attach to this DispatchTask for both driver and dispatcher review.
      dispatchTask.durationtimespanoptionalThe duration on site, or how much time is expected to complete the DispatchTask. Used to help calculate other DispatchTask ETAs when routing is performed.
      dispatchTask.etadatetimeoptionalEstimated time of arrival.
      dispatchTask.iduint64?updateThe unique identifier of the DispatchTask you want to update.
      dispatchTask.instructionsstringoptionalInstructions for the driver to help them complete the DispatchTask. Such as which door to use, a buzz code to enter the facility, etc...
      dispatchTask.latlngLatLngcreate (conditional)The lat/long coordinates of the street address. Condition: You must provide a place, a latlng, or an address. Note: If you invoke the geocoder, the address is also replaced with the geocoded value.
      dispatchTask.latlng.latdoubleoptionalLatitude
      dispatchTask.latlng.lngdoubleoptionalLongitude
      dispatchTask.namestring
      maximum-length: 100
      createName for the DispatchTask.
      dispatchTask.notesstringoptionalNotes completed by the driver about the DispatchTask. Such as service notes, damaged goods upon pick-up, etc...
      dispatchTask.placeuint64?create (conditional)An optional identifier of a Place for this DispatchTask. Using a Place makes detecting the "arrived" status more reliable. Condition: You must provide a place, a latlng, or an address. Note: If you invoke the geocoder, the address is also replaced with the geocoded value.
      dispatchTask.referencesObject.<string, string>optionalA custom field used to refer this DispatchTask an external system. Examples are a work order, pick-up, waybill, etc... If value is null, the field is removed from the DispatchTask. If a new value or null is not provided for a current attribute, no change is made.
      dispatchTask.statusTaskStatus?optionalDispatchTasks have a lifetime and each status represents a DispatchTask's progress through it's life.
      dispatchTask.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeDispatchTask {
      	"dispatchTask": {
      		"address": string,
      		"asset": number,
      		"attachments": [
      			number
      		],
      		"duration": string,
      		"eta": string,
      		"id": number,
      		"instructions": string,
      		"latlng": {
      			"lat": number,
      			"lng": number
      		},
      		"name": string,
      		"notes": string,
      		"place": number,
      		"references": {
      			string: string
      		},
      		"status": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      dispatchTaskRespIdAssetThe id, owning Asset id, and owning Company id of the object requested/created.
      dispatchTask.assetuint64Identifier of the Asset to which this object belongs
      dispatchTask.companyuint64Identifier of the Company to which this object belongs.
      dispatchTask.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeDispatchTaskResponse {
      	"dispatchTask": {
      		"asset": number,
      		"company": number,
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a dispatchTask object, or it is invalid.
      3Not enough keys exist in the dispatchTask object.
      3Too many DispatchTask references were given.
      3Too many DispatchTask attachements were given.
      3The request contains an invalid dispatchTask.references object.
      3The request contains an invalid dispatchTask.place id.
      3The request contains an invalid dispatchTask.attachments array.
      3The request contains an invalid dispatchTask.latlng object.
      3The request contains an invalid dispatchTask.eta date time.
      3The request contains an invalid dispatchTask.duration timespan.
      3The request contains an invalid dispatchTask.status TaskStatus.
      3During create: When creating a new DispatchTask, a name was not given, or was blank.
      3During create: When creating a new DispatchTask, an asset was not given.
      3During create: When creating a new DispatchTask, a place, a latlng, or an address must be given.
      3During update: When updating a DispatchTask, the new name cannot be blank.
      3During update: When updating a DispatchTask, not enough v values were given.
      3During update: There are too many combined dispatchTask.references after adding the newly given keys.
      Returns an ErrorDetailMinMax as the errorDetails..
      5You do not have permission to view the Asset to which the DispatchTask belongs.
      5During create: You do not have permission to create new DispatchTasks.
      5During update: You do not have permission to update DispatchTasks.
      6During update: When updating a DispatchTask, the wrong version key(s) were given.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset to which this DispatchTask is assigned was not found.
      40The Place being given for the DispatchTask was not found.
      64The DispatchTask was not found.
      64The DispatchTask was cancelled.
      81When giving only an address (not a Place or dispatchTask.latlng), the address could not be geocoded.
      81When giving only an address (not a Place or dispatchTask.latlng), the address was not street-level accurate enough.
      Returns an ErrorDetailExternals as the errorDetails..
      96The Asset to which this DispatchTask is assigned is suspended. Before sending or updating DispatchTasks for an Asset, it must be reactivated.
      124One or more of the given attachments could not be found.
      Returns an ErrorDetailBadIds as the errorDetails..
      130During update: When updating a DispatchTask, you cannot change the Asset to which it is assigned.

      multiMergeDispatchTask

      Creates multiple new, or updates multiple existing DispatchTasks.
      Request message description
      PropertyTypeRequiredDescription
      dispatchTasksArray.<ParameterContent>optionalArray of parameters successfully parsed by the sub-command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      multiMergeDispatchTask {
      	"dispatchTasks": [
      		{
      			"address": string,
      			"asset": number,
      			"attachments": [
      				number
      			],
      			"duration": string,
      			"eta": string,
      			"id": number,
      			"instructions": string,
      			"latlng": {
      				"lat": number,
      				"lng": number
      			},
      			"name": string,
      			"notes": string,
      			"place": number,
      			"references": {
      				string: string
      			},
      			"status": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      dispatchTasksArray.<RespIdAsset>Array or responses successfully processed by the sub-command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      multiMergeDispatchTaskResponse {
      	"dispatchTasks": [
      		{
      			"asset": number,
      			"company": number,
      			"id": number
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain an operation collection, or it is invalid.
      3The operation collection is empty.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      105Too many items exist in the operation collection.
      110One or more of the sub-operations failed, see errorDetails for more information.
      Returns an ErrorDetailBatch as the errorDetails..

      multiRemoveDispatchTask

      Deletes multiple DispatchTasks.
      Request message description
      PropertyTypeRequiredDescription
      dispatchTasksArray.<ParamId>optionalArray of parameters successfully parsed by the sub-command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      multiRemoveDispatchTask {
      	"dispatchTasks": [
      		{
      			"id": number
      		}
      	],
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      dispatchTasksArray.<RespAssetDeleted>Array or responses successfully processed by the sub-command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      multiRemoveDispatchTaskResponse {
      	"dispatchTasks": [
      		{
      			"asset": number,
      			"company": number,
      			"deleted": boolean,
      			"id": number,
      			"v": [
      				number
      			]
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain an operation collection, or it is invalid.
      3The operation collection is empty.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      105Too many items exist in the operation collection.
      110One or more of the sub-operations failed, see errorDetails for more information.
      Returns an ErrorDetailBatch as the errorDetails..

      removeDispatchTask

      Deletes an existing DispatchTask.
      Request message description
      PropertyTypeRequiredDescription
      dispatchTaskParamIdalwaysIdentifier object to contain the DispatchTask's identifier.
      dispatchTask.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeDispatchTask {
      	"dispatchTask": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      dispatchTaskRespAssetDeletedThe id, owning Asset id, owning Company id, and deleted state.
      dispatchTask.assetuint64Identifier of the Asset to which this object belongs.
      dispatchTask.companyuint64Identifier of the Company to which this object belongs.
      dispatchTask.deletedbooleanFlag showing if the object is deleted.
      dispatchTask.iduint64?Identifier given as input for the command.
      dispatchTask.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeDispatchTaskResponse {
      	"dispatchTask": {
      		"asset": number,
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a dispatchTask object, or it is invalid.
      3The dispatchTask object does not contain an id, or it is invalid.
      5You do not have permission to delete DispatchTasks.
      5You do not have permission to view the associated Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The DispatchTask was found, but the associated Asset was not found.
      64The DispatchTask was not found by its unique identifier.
      96The DispatchTask was found, but the associated Asset is suspended. Before using any Asset resources, it must be reactivated.

      restoreDispatchTask

      Restores a deleted DispatchTask.
      Request message description
      PropertyTypeRequiredDescription
      dispatchTaskParamIdalwaysIdentifier object to contain the DispatchTask's identifier.
      dispatchTask.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreDispatchTask {
      	"dispatchTask": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      dispatchTaskRespAssetDeletedThe id, owning Asset id, owning Company id, and deleted state.
      dispatchTask.assetuint64Identifier of the Asset to which this object belongs.
      dispatchTask.companyuint64Identifier of the Company to which this object belongs.
      dispatchTask.deletedbooleanFlag showing if the object is deleted.
      dispatchTask.iduint64?Identifier given as input for the command.
      dispatchTask.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreDispatchTaskResponse {
      	"dispatchTask": {
      		"asset": number,
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a dispatchTask object, or it is invalid.
      3The dispatchTask object does not contain an id, or it is invalid.
      5You do not have permission to create DispatchTasks.
      5You do not have permission to view the associated Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The DispatchTask was found, but the associated Asset was not found.
      64The DispatchTask was not found by its unique identifier.
      96The DispatchTask was found, but the associated Asset is suspended. Before using any Asset resources, it must be reactivated.
      100The DispatchTask was found, but is not marked as deleted.

      File Hosting

      getDocument

      Gets details of the specified Document.
      Request message description
      PropertyTypeRequiredDefaultDescription
      documentParamIdalwaysAn object to contain the identifier of the Document.
      document.iduint64alwaysIdentifier given as input for the command.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted Document.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getDocument {
      	"document": {
      		"id": number
      	},
      	"includeDeleted": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      documentDocumentThe requested Document.
      document.bytesuint64The file-size on the disk.
      document.companyuint64The company to which this file belongs.
      document.expirydatetimeThe date and time this fill will be automatically purged from our system.
      document.iduint64Unique identifier of this file.
      document.mimestring
      maximum-length: 50
      The MIME type of the file.
      document.namestring
      maximum-length: 100
      The file name of this file.
      document.notesstringNotes about this file.
      document.referencesObject.<string, string>
      maximum-count: 10
      maximum-length of keys: 20
      maximum-length of values: 100
      Name/value collections of custom fields used to refer to external systems.
      document.srcstring
      maximum-length: 200
      The URL/path to find this file.
      document.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getDocumentResponse {
      	"document": {
      		"bytes": number,
      		"company": number,
      		"expiry": string,
      		"id": number,
      		"mime": string,
      		"name": string,
      		"notes": string,
      		"references": {
      			string: string
      		},
      		"src": string,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a document object, or it is invalid.
      3The document object does not contain an id, or it is invalid.
      5You do not have permission to view this Document.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      122The Document was not found by its unique identifier.

      getDocumentsList

      Gets the list of Documents for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getDocumentsList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of Documents belong.
      company.iduint64?Identifier given as input for the command.
      documentsArray.<Document>The list of requested Documents.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getDocumentsListResponse {
      	"company": {
      		"id": number
      	},
      	"documents": [
      		{
      			"bytes": number,
      			"company": number,
      			"expiry": string,
      			"id": number,
      			"mime": string,
      			"name": string,
      			"notes": string,
      			"references": {
      				string: string
      			},
      			"src": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view Documents for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getIcon

      Gets details of the specified Icon.
      Request message description
      PropertyTypeRequiredDefaultDescription
      iconParamIdalwaysAn object to contain the "id" of the Icon.
      icon.iduint64alwaysIdentifier given as input for the command.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted Icon.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getIcon {
      	"icon": {
      		"id": number
      	},
      	"includeDeleted": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      iconIconThe requested Icon.
      icon.badgeIconLabelWhere the notification will appear for a mapped icon. Such as the number of dispatches an asset is working on, or the number of dispatches at a place.
      icon.badge.alignstringDetermines which corner of the label is attached to the anchor.
      icon.badge.anchorPointThe offset from the lat/long in pixels.
      icon.badge.anchor.xdoubleHorizontal coordinate
      icon.badge.anchor.ydoubleVertical coordinate
      icon.badge.colourstringBackground colour of the label.
      icon.categorystring
      maximum-length: 100
      A noun to describe the type of thing represented. Like Truck, Car, Trailer, Hot-Air Balloon, etc...
      icon.companyuint64The company to which this icon belongs.
      icon.globalbooleanIndicates whether this icon is available to child companies.
      icon.glyphsArray.<IconGlyph>The images used to show the detail of this icon.
      icon.iduint64Unique identifier of this icon.
      icon.labelIconLabelDefinition for the name bubble above the icon on a map.
      icon.label.alignstringDetermines which corner of the label is attached to the anchor.
      icon.label.anchorPointThe offset from the lat/long in pixels.
      icon.label.anchor.xdoubleHorizontal coordinate
      icon.label.anchor.ydoubleVertical coordinate
      icon.label.colourstringBackground colour of the label.
      icon.namestring
      maximum-length: 100
      A specific adjective to describe the thing. Like Blue, Red, Empty, Full, etc...
      icon.notesstringNotes.
      icon.usageArray.<string>A list of things that this icon can be used to represent. Like asset, place, user, etc...
      icon.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getIconResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"icon": {
      		"badge": {
      			"align": string,
      			"anchor": {
      				"x": number,
      				"y": number
      			},
      			"colour": string
      		},
      		"category": string,
      		"company": number,
      		"global": boolean,
      		"glyphs": [
      			{
      				"anchor": {
      					"x": number,
      					"y": number
      				},
      				"layer": string,
      				"rotates": boolean,
      				"size": {
      					"height": number,
      					"width": number
      				},
      				"src": string,
      				"tags": [
      					string
      				],
      				"zIndex": number
      			}
      		],
      		"id": number,
      		"label": {
      			"align": string,
      			"anchor": {
      				"x": number,
      				"y": number
      			},
      			"colour": string
      		},
      		"name": string,
      		"notes": string,
      		"usage": [
      			string
      		],
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a icon object, or it is invalid.
      3The icon object does not contain an id, or it is invalid.
      5You do not have permission to view this Icon.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      33The Icon was not found by its unique identifier.

      getIconsList

      Gets the list of Icons for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      branchbooleanoptionalfalseWhen true the list of Icons from the given Company and all child-companies are returned. Otherwise, only Icons from the given Company are included.
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      trunkbooleanoptionaltrueWhen true (default) the list of Icons will include any publicly available Icons from the given Company's parent(s).
      Request message structure
      getIconsList {
      	"branch": boolean,
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number,
      	"trunk": boolean
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of Icons belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      iconsArray.<Icon>The list of requested Icons.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getIconsListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"icons": [
      		{
      			"badge": {
      				"align": string,
      				"anchor": {
      					"x": number,
      					"y": number
      				},
      				"colour": string
      			},
      			"category": string,
      			"company": number,
      			"global": boolean,
      			"glyphs": [
      				{
      					"anchor": {
      						"x": number,
      						"y": number
      					},
      					"layer": string,
      					"rotates": boolean,
      					"size": {
      						"height": number,
      						"width": number
      					},
      					"src": string,
      					"tags": [
      						string
      					],
      					"zIndex": number
      				}
      			],
      			"id": number,
      			"label": {
      				"align": string,
      				"anchor": {
      					"x": number,
      					"y": number
      				},
      				"colour": string
      			},
      			"name": string,
      			"notes": string,
      			"usage": [
      				string
      			],
      			"v": [
      				number
      			]
      		}
      	],
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view Icons for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getPicture

      Gets details of the specified Picture.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted Picture.
      pictureParamIdalwaysAn object to contain the "id" of the Picture.
      picture.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getPicture {
      	"includeDeleted": boolean,
      	"picture": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      picturePictureThe requested Picture.
      picture.bytesuint64The file-size on the disk.
      picture.companyuint64The company to which this image belongs.
      picture.focalsArray.<Square>A list of focal points in the images like faces.
      picture.iduint64Unique identifier of this image.
      picture.namestring
      maximum-length: 100
      The file name of this image.
      picture.notesstringNotes about this image.
      picture.sizeSizeResolution defined in pixels.
      picture.size.heightdoubleHeight
      picture.size.widthdoubleWidth
      picture.srcstring
      maximum-length: 200
      The URL/path to find this image.
      picture.usesuint32A count of the times this image was used for something (asset, contact, task, etc).
      picture.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getPictureResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"picture": {
      		"bytes": number,
      		"company": number,
      		"focals": [
      			{
      				"bottom": number,
      				"left": number,
      				"right": number,
      				"top": number
      			}
      		],
      		"id": number,
      		"name": string,
      		"notes": string,
      		"size": {
      			"height": number,
      			"width": number
      		},
      		"src": string,
      		"uses": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a picture object, or it is invalid.
      3The picture object does not contain an id, or it is invalid.
      5You do not have permission to view this Picture.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      68The Picture was not found by its unique identifier.

      getPicturesList

      Gets the list of Pictures for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      branchbooleanoptionalfalseWhen true the list of Pictures from the given Company and all child-companies are returned. Otherwise, only Pictures from the given Company are included.
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getPicturesList {
      	"branch": boolean,
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of Pictures belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      picturesArray.<Picture>The list of requested Pictures.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getPicturesListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"pictures": [
      		{
      			"bytes": number,
      			"company": number,
      			"focals": [
      				{
      					"bottom": number,
      					"left": number,
      					"right": number,
      					"top": number
      				}
      			],
      			"id": number,
      			"name": string,
      			"notes": string,
      			"size": {
      				"height": number,
      				"width": number
      			},
      			"src": string,
      			"uses": number,
      			"v": [
      				number
      			]
      		}
      	],
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view Pictures for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      mergeDocument

      Creates or updates an existing Document. To upload Documents, you need to use the Files API.
      Request message description
      PropertyTypeRequiredDescription
      documentObject.<string, ?>alwaysA simple object to contain the Document parameters.
      document.companyuint64?createThe Company to which this Document belongs. After creation, this value is read-only.
      document.expirydatetimeoptionalThe time at which the Document will automatically be purged from the system.
      document.iduint64?updateThe unique identifier of the Document you want to update.
      document.namestring
      maximum-length: 100
      createThe file name of this Document.
      document.notesstringoptionalNotes about this Document.
      document.referencesObject.<string, string>
      maximum-count: 10
      maximum-length of keys: 20
      maximum-length of values: 100
      optionalName/value collections of custom fields used to refer to external systems. If the value is null, the references are removed from the Document.
      document.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeDocument {
      	"document": {
      		"company": number,
      		"expiry": string,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"references": {
      			string: string
      		},
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      documentRespIdCompanyAn object which contains the "id" and "company" keys.
      document.companyuint64Identifier of the Company to which this object belongs.
      document.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeDocumentResponse {
      	"document": {
      		"company": number,
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a document object, or it is invalid.
      3Not enough keys exist in the document object.
      3The given document.expiry is too far into the future.
      3During create: When creating a new Document, a company was not given.
      3During create: When creating a new Document, a name was not given, or it is invalid.
      3During create: When creating a new Document, the local path was not specified.
      3During create: When creating a new Document, the bytes was invalid.
      3During create: When creating a new Document, the mime was invalid.
      3During update: When updating a Document, the id was invalid.
      3During update: When updating a Document, the v was not an array, or contained too few numbers.
      3During update: When updating a Document, the name was given as blank.
      5You do not have permission to create a new Document.
      5You do not have permission to update this Document.
      6During update: When updating a Document, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      122During update: The Document was not found by its unique identifier.
      130During update: When updating a Document, the company can not be changed.

      mergeIcon

      Creates a new or updates an existing Icon.
      Request message description
      PropertyTypeRequiredDescription
      iconObject.<string, ?>alwaysA simple object to contain the Icon parameters.
      icon.badgeIconLabeloptionalDefinition for the name badge beside the Icon on a map.
      icon.badge.alignstringoptionalDetermines which corner of the label is attached to the anchor.
      icon.badge.anchorPointoptionalThe offset from the lat/long in pixels.
      icon.badge.anchor.xdoubleoptionalHorizontal coordinate
      icon.badge.anchor.ydoubleoptionalVertical coordinate
      icon.badge.colourstringoptionalBackground colour of the label.
      icon.categorystring
      maximum-length: 100
      optionalA noun to describe the type of thing represented. Like Truck, Car, Trailer, Hot-Air Balloon, etc...
      icon.companyuint64?createThe Company to which these Icons belongs.
      icon.globalbooleanoptionalIndicates whether this Icon is available to child companies.
      icon.glyphsArray.<IconGlyph>optionalThe images used to show the detail of this Icon.
      icon.iduint64?updateThe unique identifier of the Icon you want to update.
      icon.labelIconLabeloptionalDefinition for the name bubble above the Icon on a map.
      icon.label.alignstringoptionalDetermines which corner of the label is attached to the anchor.
      icon.label.anchorPointoptionalThe offset from the lat/long in pixels.
      icon.label.anchor.xdoubleoptionalHorizontal coordinate
      icon.label.anchor.ydoubleoptionalVertical coordinate
      icon.label.colourstringoptionalBackground colour of the label.
      icon.namestring
      maximum-length: 100
      createA specific adjective to describe the thing. Like Blue, Red, Empty, Full, etc...
      icon.notesstringoptionalNotes.
      icon.usageArray.<string>optionalA list of things that this Icon can be used to represent. Like asset, place, user, etc...
      icon.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeIcon {
      	"icon": {
      		"badge": {
      			"align": string,
      			"anchor": {
      				"x": number,
      				"y": number
      			},
      			"colour": string
      		},
      		"category": string,
      		"company": number,
      		"global": boolean,
      		"glyphs": [
      			{
      				"anchor": {
      					"x": number,
      					"y": number
      				},
      				"layer": string,
      				"rotates": boolean,
      				"size": {
      					"height": number,
      					"width": number
      				},
      				"src": string,
      				"tags": [
      					string
      				],
      				"zIndex": number
      			}
      		],
      		"id": number,
      		"label": {
      			"align": string,
      			"anchor": {
      				"x": number,
      				"y": number
      			},
      			"colour": string
      		},
      		"name": string,
      		"notes": string,
      		"usage": [
      			string
      		],
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      iconRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
      icon.companyuint64Identifier of the Company to which this object belongs.
      icon.iduint64?Identifier given as input for the command.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeIconResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"icon": {
      		"company": number,
      		"id": number
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a icon object, or it is invalid.
      3Not enough keys exist in the icon object.
      3The icon.usage was invalid.
      3During create: When creating a new Icon, a company was not given.
      3During create: When creating a new Icon, a name was not given, or it is invalid.
      3During update: When updating a Icon, the id was invalid.
      3During update: When updating a Icon, the name was given as blank.
      3During update: When updating a Icon, the v was not an array, or contained too few numbers.
      3One of the icon.glyphs values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      5You do not have permission to create a new Icon.
      5You do not have permission to update this Icon.
      6During update: When updating a Icon, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      33During update: The Icon was not found by its unique identifier.
      130During update: When updating a Icon, the company can not be changed.

      mergePicture

      Creates a new or updates an existing Picture.
      Request message description
      PropertyTypeRequiredDescription
      pictureObject.<string, ?>alwaysA simple object to contain the Picture parameters.
      picture.companyuint64?createThe Company to which this Picture belongs. After creation, this value is read-only.
      picture.focalsArray.<Square>optionalA list of focal points in the Picture like faces.
      picture.iduint64?updateThe unique identifier of the Picture you want to update.
      picture.namestring
      maximum-length: 100
      createThe file name of this Picture.
      picture.notesstringoptionalNotes about this Picture.
      picture.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergePicture {
      	"picture": {
      		"company": number,
      		"focals": [
      			{
      				"bottom": number,
      				"left": number,
      				"right": number,
      				"top": number
      			}
      		],
      		"id": number,
      		"name": string,
      		"notes": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      pictureRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
      picture.companyuint64Identifier of the Company to which this object belongs.
      picture.iduint64?Identifier given as input for the command.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergePictureResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"picture": {
      		"company": number,
      		"id": number
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      2During create: When creating a new Picture, the file size could not be determined.
      If you receive this error, please contact technical support.
      2During create: When creating a new Picture, the upload was not successful.
      If you receive this error, please contact technical support.
      3The request does not contain a picture object, or it is invalid.
      3Not enough keys exist in the picture object.
      3During create: When creating a new Picture, a company was not given.
      3During create: When creating a new Picture, a name was not given, or it is invalid.
      3During update: When updating a Picture, the id was invalid.
      3During update: When updating a Picture, the name was given as blank.
      3During update: When updating a Picture, the v was not an array, or contained too few numbers.
      3One of the picture.focals values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      5You do not have permission to create a new Picture.
      5You do not have permission to update this Picture.
      6During update: When updating a Picture, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      68During update: The Picture was not found by its unique identifier.
      90During create: When creating a new Picture, the given mime type is not supported.
      91During create: When creating a new Picture, the file size was too large.
      Returns an ErrorDetailMinMax as the errorDetails..
      130During update: When updating a Picture, the company can not be changed.

      removeDocument

      Deletes an existing Document.
      Request message description
      PropertyTypeRequiredDescription
      documentParamIdalwaysAn object to contain the identifier of the Document.
      document.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeDocument {
      	"document": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      documentRespDeletedAn object which contains the Document's id, owning Company id, and deleted status.
      document.companyuint64Identifier of the Company to which this object belongs.
      document.deletedbooleanFlag showing if the object is deleted.
      document.iduint64?Identifier given as input for the command.
      document.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeDocumentResponse {
      	"document": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a document object, or it is invalid.
      3The document object does not contain an id, or it is invalid.
      5You do not have permission to delete this Document.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      122The Document was not found by its unique identifier.

      removeIcon

      Deletes an existing Icon.
      Request message description
      PropertyTypeRequiredDescription
      iconParamIdalwaysAn object to contain the "id" of the Icon.
      icon.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeIcon {
      	"icon": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      iconRespDeletedAn object which contains the Icon's id, owning Company id, and deleted status.
      icon.companyuint64Identifier of the Company to which this object belongs.
      icon.deletedbooleanFlag showing if the object is deleted.
      icon.iduint64?Identifier given as input for the command.
      icon.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeIconResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"icon": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a icon object, or it is invalid.
      3The icon object does not contain an id, or it is invalid.
      5You do not have permission to delete this Icon.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      33The Icon was not found by its unique identifier.

      removePicture

      Deletes an existing Picture.
      Request message description
      PropertyTypeRequiredDescription
      pictureParamIdalwaysAn object to contain the "id" of the Picture.
      picture.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removePicture {
      	"picture": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      pictureRespDeletedAn object which contains the Picture's id, owning Company id, and deleted status.
      picture.companyuint64Identifier of the Company to which this object belongs.
      picture.deletedbooleanFlag showing if the object is deleted.
      picture.iduint64?Identifier given as input for the command.
      picture.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removePictureResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"picture": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a picture object, or it is invalid.
      3The picture object does not contain an id, or it is invalid.
      5You do not have permission to delete this Picture.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      68The Picture was not found by its unique identifier.

      restoreDocument

      Restores a deleted Document.
      Request message description
      PropertyTypeRequiredDescription
      documentParamIdalwaysAn object to contain the identifier of the Document.
      document.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreDocument {
      	"document": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      documentRespDeletedAn object which contains the Document's id, owning Company id, and deleted status.
      document.companyuint64Identifier of the Company to which this object belongs.
      document.deletedbooleanFlag showing if the object is deleted.
      document.iduint64?Identifier given as input for the command.
      document.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreDocumentResponse {
      	"document": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a document object, or it is invalid.
      3The document object does not contain an id, or it is invalid.
      5You do not have permission to restore this Document.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      122The Document was not found by its unique identifier.
      123The Document was found, but is not marked as deleted.

      restoreIcon

      Restores the specified Icon.
      Request message description
      PropertyTypeRequiredDescription
      iconParamIdalwaysAn object to contain the "id" of the Icon.
      icon.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreIcon {
      	"icon": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      iconRespDeletedAn object which contains the Icon's id, owning Company id, and deleted status.
      icon.companyuint64Identifier of the Company to which this object belongs.
      icon.deletedbooleanFlag showing if the object is deleted.
      icon.iduint64?Identifier given as input for the command.
      icon.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreIconResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"icon": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a icon object, or it is invalid.
      3The icon object does not contain an id, or it is invalid.
      5You do not have permission to restore this Icon.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      33The Icon was not found by its unique identifier.
      34The Icon was found, but is not marked as deleted.

      restorePicture

      Restores the specified Picture.
      Request message description
      PropertyTypeRequiredDescription
      pictureParamIdalwaysAn object to contain the "id" of the Picture.
      picture.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restorePicture {
      	"picture": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      pictureRespDeletedAn object which contains the Picture's id, owning Company id, and deleted status.
      picture.companyuint64Identifier of the Company to which this object belongs.
      picture.deletedbooleanFlag showing if the object is deleted.
      picture.iduint64?Identifier given as input for the command.
      picture.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restorePictureResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"picture": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a picture object, or it is invalid.
      3The picture object does not contain an id, or it is invalid.
      5You do not have permission to restore this Picture.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      68The Picture was not found by its unique identifier.
      70The Picture was found, but is not marked as deleted.

      Hours of Service

      getHosCarrier

      Gets details of the specified HosCarrier.
      Request message description
      PropertyTypeRequiredDescription
      hosCarrierParamIdalwaysAn object to contain the identifier of the HosCarrier.
      hosCarrier.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getHosCarrier {
      	"hosCarrier": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hosCarrier
      Deprecated
      HosCarrierThe requested HosCarrier.
      Feature retired.
      hosCarrier.addressStreetAddressThe carrier's physical or incorporated address.
      hosCarrier.address.citystringCity name.
      hosCarrier.address.countrystring
      fixed length: 2
      Country code. Codes should be a value from ISO 3166-1 alpha-2.
      hosCarrier.address.isTollbooleanIndicates that there is a toll for the current road segment.
      hosCarrier.address.numberstringHouse number.
      hosCarrier.address.postalstringPostal or zip code.
      hosCarrier.address.provincestring
      fixed length: 2
      Province or state code. Codes should be a value from ISO 3166-2.
      hosCarrier.address.regionstringRegion name.
      hosCarrier.address.streetstringFull street name.
      hosCarrier.codesObject.<string, string>Identity code supplied by a regulatory/government body (DOT ID).
      hosCarrier.companyuint64The company to which this carrier information belongs.
      hosCarrier.contactuint64?Contact information for the carrier.
      hosCarrier.iduint64Unique identifier of the Carrier.
      hosCarrier.namestring
      maximum-length: 100
      The carrier's registered name.
      hosCarrier.notesstringNotes.
      hosCarrier.shiftCycle
      Deprecated
      HosCycleDefault shift cycle used by the drivers
      Feature retired.
      hosCarrier.timezonecodifiedThe local timezone of the carrier's address.
      hosCarrier.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getHosCarrierResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hosCarrier": {
      		"address": {
      			"city": string,
      			"country": string,
      			"isToll": boolean,
      			"number": string,
      			"postal": string,
      			"province": string,
      			"region": string,
      			"street": string
      		},
      		"codes": {
      			string: string
      		},
      		"company": number,
      		"contact": number,
      		"id": number,
      		"logo": number,
      		"name": string,
      		"notes": string,
      		"shiftCycle": string,
      		"timezone": string,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a hosCarrier object, or it is invalid.
      3The hosCarrier object does not contain an id, or it is invalid.
      5You do not have permission to view this HosCarrier.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      76The HosCarrier was not found by its unique identifier.

      getHosCarriersList

      Gets the list of HosCarriers for the specified Company.
      Request message description
      PropertyTypeRequiredDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getHosCarriersList {
      	"company": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of HosCarriers belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hosCarriersArray.<HosCarrier>The list of requested HosCarriers.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getHosCarriersListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hosCarriers": [
      		{
      			"address": {
      				"city": string,
      				"country": string,
      				"isToll": boolean,
      				"number": string,
      				"postal": string,
      				"province": string,
      				"region": string,
      				"street": string
      			},
      			"codes": {
      				string: string
      			},
      			"company": number,
      			"contact": number,
      			"id": number,
      			"logo": number,
      			"name": string,
      			"notes": string,
      			"shiftCycle": string,
      			"timezone": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view HosCarriers for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getHosEvent

      Gets details of the specified HosEvent.
      Request message description
      PropertyTypeRequiredDescription
      hosEventParamIdalwaysAn object to contain the identifier of the HosEvent.
      hosEvent.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getHosEvent {
      	"hosEvent": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hosEvent
      Deprecated
      HosEventThe requested HosEvent.
      Feature retired.
      hosEvent.addressStreetAddressGeolocation/Written address by driver of where the event took place
      hosEvent.address.citystringCity name.
      hosEvent.address.countrystring
      fixed length: 2
      Country code. Codes should be a value from ISO 3166-1 alpha-2.
      hosEvent.address.isTollbooleanIndicates that there is a toll for the current road segment.
      hosEvent.address.numberstringHouse number.
      hosEvent.address.postalstringPostal or zip code.
      hosEvent.address.provincestring
      fixed length: 2
      Province or state code. Codes should be a value from ISO 3166-2.
      hosEvent.address.regionstringRegion name.
      hosEvent.address.streetstringFull street name.
      hosEvent.carrieruint64The carrier information to which this event belongs.
      hosEvent.certificationDatedatetimeDate of the records being certified or re-certified by the driver
      hosEvent.codesbyteEvent code
      hosEvent.companyuint64The company to which this event belongs.
      hosEvent.diagnosticCodeHosDiagnosticCode?Data Diagnostic Event Code
      hosEvent.diagnosticStatusbooleanData Diagnostic Event Indicator Status
      hosEvent.distanceSinceGPSFixsingle?Distance since last valid coordinates. An integer value between 0 and 6
      hosEvent.dtsdatetimeWhen the event took place
      hosEvent.engineHoursdouble?Odometer reading of the tractor at the time of the event
      hosEvent.iduint64Unique identifier of the event.
      hosEvent.isCoDriverbooleanDriver status - Primary/Co-driver
      hosEvent.latitudestringSingle character 'X', single character 'M', single character 'E', or 2-decimal point precision value between -90.00 and 90.00
      hosEvent.longitudestringSingle character 'X', single character 'M', single character 'E', or 2-decimal point precision value between -179.99 and 180.00
      hosEvent.malfunctionCodestringMalfunction Indicator Code
      hosEvent.malfunctionStatusbooleanMalfunction Indicator Status
      hosEvent.notesstringComments/Annotations entered by the driver/user
      hosEvent.odometerdouble?Odometer reading of the tractor at the time of the event
      hosEvent.originHosEventOrigin?Event Record origin
      hosEvent.personuint64?Driver associated with this event
      hosEvent.seqNouint16Event Sequence Id Number
      hosEvent.shiftCycleHosCycle?Driver's shift cycle
      hosEvent.status
      Deprecated
      HosEventStatusEvent Record status
      Feature retired.
      hosEvent.type
      Deprecated
      HosEventTypeEvent type
      Feature retired.
      hosEvent.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      hosEvent.vehicleuint64?Vehicle associated with this event
      hosEvent.violationStatusbooleanViolation Status
      hosEvent.violationTypeHosViolationType?Violation Type
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getHosEventResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hosEvent": {
      		"address": {
      			"city": string,
      			"country": string,
      			"isToll": boolean,
      			"number": string,
      			"postal": string,
      			"province": string,
      			"region": string,
      			"street": string
      		},
      		"carrier": number,
      		"certificationDate": string,
      		"code": number,
      		"company": number,
      		"diagnosticCode": number,
      		"diagnosticStatus": boolean,
      		"distanceSinceGPSFix": number,
      		"dts": string,
      		"engineHours": number,
      		"id": number,
      		"isCoDriver": boolean,
      		"latitude": string,
      		"longitude": string,
      		"malfunctionCode": string,
      		"malfunctionStatus": boolean,
      		"notes": string,
      		"odometer": number,
      		"origin": number,
      		"person": number,
      		"seqNo": number,
      		"shiftCycle": string,
      		"status": number,
      		"type": number,
      		"v": [
      			number
      		],
      		"vehicle": number,
      		"violationStatus": boolean,
      		"violationType": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a hosEvent object, or it is invalid.
      3The hosEvent object does not contain an id, or it is invalid.
      5You do not have permission to view this HosEvent.
      5You do not have permission to view this HosEvent's Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.
      If you receive this error, please contact technical support.
      84The HosEvent was not found by its unique identifier.

      getHosEventsList

      Gets the list of HosEvents for the specified Company.
      Request message description
      PropertyTypeRequiredDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getHosEventsList {
      	"company": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of HosEvents belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hosEventsArray.<HosEvent>The list of requested HosEvents.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getHosEventsListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hosEvents": [
      		{
      			"address": {
      				"city": string,
      				"country": string,
      				"isToll": boolean,
      				"number": string,
      				"postal": string,
      				"province": string,
      				"region": string,
      				"street": string
      			},
      			"carrier": number,
      			"certificationDate": string,
      			"code": number,
      			"company": number,
      			"diagnosticCode": number,
      			"diagnosticStatus": boolean,
      			"distanceSinceGPSFix": number,
      			"dts": string,
      			"engineHours": number,
      			"id": number,
      			"isCoDriver": boolean,
      			"latitude": string,
      			"longitude": string,
      			"malfunctionCode": string,
      			"malfunctionStatus": boolean,
      			"notes": string,
      			"odometer": number,
      			"origin": number,
      			"person": number,
      			"seqNo": number,
      			"shiftCycle": string,
      			"status": number,
      			"type": number,
      			"v": [
      				number
      			],
      			"vehicle": number,
      			"violationStatus": boolean,
      			"violationType": string
      		}
      	],
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view HosEvents for this Company.
      5You do not have permission to view any Assets in the given Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getHosEventsListByAsset

      Gets the list of HosEvents for the specified Asset.
      Request message description
      PropertyTypeRequiredDescription
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getHosEventsListByAsset {
      	"asset": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of HosEvents belong.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hosEventsArray.<HosEvent>The list of requested HosEvents.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getHosEventsListByAssetResponse {
      	"asset": {
      		"company": number,
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hosEvents": [
      		{
      			"address": {
      				"city": string,
      				"country": string,
      				"isToll": boolean,
      				"number": string,
      				"postal": string,
      				"province": string,
      				"region": string,
      				"street": string
      			},
      			"carrier": number,
      			"certificationDate": string,
      			"code": number,
      			"company": number,
      			"diagnosticCode": number,
      			"diagnosticStatus": boolean,
      			"distanceSinceGPSFix": number,
      			"dts": string,
      			"engineHours": number,
      			"id": number,
      			"isCoDriver": boolean,
      			"latitude": string,
      			"longitude": string,
      			"malfunctionCode": string,
      			"malfunctionStatus": boolean,
      			"notes": string,
      			"odometer": number,
      			"origin": number,
      			"person": number,
      			"seqNo": number,
      			"shiftCycle": string,
      			"status": number,
      			"type": number,
      			"v": [
      				number
      			],
      			"vehicle": number,
      			"violationStatus": boolean,
      			"violationType": string
      		}
      	],
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a asset object, or it is invalid.
      3The asset object does not contain an id, or it is invalid.
      5You do not have permission to view HosEvents for this Company.
      5You do not have permission to view this HosEvent's Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.

      getHosInspection

      Gets details of the specified HosInspection.
      Request message description
      PropertyTypeRequiredDescription
      hosInspectionParamIdalwaysAn object to contain the identifier of the HosInspection.
      hosInspection.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getHosInspection {
      	"hosInspection": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hosInspection
      Deprecated
      HosInspectionThe requested HosInspection.
      Feature retired.
      hosInspection.addressStreetAddressWritten address by driver of where the inspection took place
      hosInspection.address.citystringCity name.
      hosInspection.address.countrystring
      fixed length: 2
      Country code. Codes should be a value from ISO 3166-1 alpha-2.
      hosInspection.address.isTollbooleanIndicates that there is a toll for the current road segment.
      hosInspection.address.numberstringHouse number.
      hosInspection.address.postalstringPostal or zip code.
      hosInspection.address.provincestring
      fixed length: 2
      Province or state code. Codes should be a value from ISO 3166-2.
      hosInspection.address.regionstringRegion name.
      hosInspection.address.streetstringFull street name.
      hosInspection.assetuint64Always returns a value for the HosInspection.person.
      hosInspection.carrieruint64The carrier information to which this inspection report belongs.
      hosInspection.companyuint64The company to which this inspection report belongs.
      hosInspection.defectsArray.<HosInspectionDefect>List of all defects
      hosInspection.iduint64Unique identifier of the inspection reports.
      hosInspection.inspectedOndatetimeWhen the inspection took place
      hosInspection.latlngLatLngCoordinates where the inspection took place
      hosInspection.latlng.latdoubleLatitude
      hosInspection.latlng.lngdoubleLongitude
      hosInspection.odometerdoubleOdometer reading of the tractor at the time of the inspection
      hosInspection.personuint64Driver who conducted the inspection
      hosInspection.status
      Deprecated
      HosDefectStatusStatus of all defects
      Feature retired.
      hosInspection.technicianstring
      maximum-length: 100
      Name of the (optional) technician/mechanic doing work or inspection.
      hosInspection.techSigneddatetimeIf the defects needed to be addressed by a technician/mechanic, his signature will happen at a different time.
      hosInspection.trailersArray.<string>Between 0 and 2 trailers being inspected
      hosInspection.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      hosInspection.vehicleuint64Tractor being inspected
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getHosInspectionResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hosInspection": {
      		"address": {
      			"city": string,
      			"country": string,
      			"isToll": boolean,
      			"number": string,
      			"postal": string,
      			"province": string,
      			"region": string,
      			"street": string
      		},
      		"asset": number,
      		"carrier": number,
      		"company": number,
      		"defects": [
      			{
      				"area": string,
      				"category": string,
      				"description": string,
      				"major": [
      					string
      				],
      				"minor": [
      					string
      				]
      			}
      		],
      		"id": number,
      		"inspectedOn": string,
      		"latlng": {
      			"lat": number,
      			"lng": number
      		},
      		"odometer": number,
      		"person": number,
      		"status": string,
      		"technician": string,
      		"techSigned": string,
      		"trailers": [
      			string
      		],
      		"v": [
      			number
      		],
      		"vehicle": number
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a hosInspection object, or it is invalid.
      3The hosInspection object does not contain an id, or it is invalid.
      5You do not have permission to view this HosInspection.
      5You do not have permission to view this HosInspection's Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.
      If you receive this error, please contact technical support.
      78The HosInspection was not found by its unique identifier.

      getHosInspectionsList

      Gets the list of HosInspections for the specified Company.
      Request message description
      PropertyTypeRequiredDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getHosInspectionsList {
      	"company": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of HosInspections belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hosInspectionsArray.<HosInspection>The list of requested HosInspections.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getHosInspectionsListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hosInspections": [
      		{
      			"address": {
      				"city": string,
      				"country": string,
      				"isToll": boolean,
      				"number": string,
      				"postal": string,
      				"province": string,
      				"region": string,
      				"street": string
      			},
      			"asset": number,
      			"carrier": number,
      			"company": number,
      			"defects": [
      				{
      					"area": string,
      					"category": string,
      					"description": string,
      					"major": [
      						string
      					],
      					"minor": [
      						string
      					]
      				}
      			],
      			"id": number,
      			"inspectedOn": string,
      			"latlng": {
      				"lat": number,
      				"lng": number
      			},
      			"odometer": number,
      			"person": number,
      			"status": string,
      			"technician": string,
      			"techSigned": string,
      			"trailers": [
      				string
      			],
      			"v": [
      				number
      			],
      			"vehicle": number
      		}
      	],
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view HosInspections for this Company.
      5You do not have permission to view any assets in the given Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getHosInspectionsListByAsset

      Gets the list of HosInspections for the specified Asset.
      Request message description
      PropertyTypeRequiredDescription
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getHosInspectionsListByAsset {
      	"asset": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of HosInspections belong.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hosInspectionsArray.<HosInspection>The list of requested HosInspections.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getHosInspectionsListByAssetResponse {
      	"asset": {
      		"company": number,
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hosInspections": [
      		{
      			"address": {
      				"city": string,
      				"country": string,
      				"isToll": boolean,
      				"number": string,
      				"postal": string,
      				"province": string,
      				"region": string,
      				"street": string
      			},
      			"asset": number,
      			"carrier": number,
      			"company": number,
      			"defects": [
      				{
      					"area": string,
      					"category": string,
      					"description": string,
      					"major": [
      						string
      					],
      					"minor": [
      						string
      					]
      				}
      			],
      			"id": number,
      			"inspectedOn": string,
      			"latlng": {
      				"lat": number,
      				"lng": number
      			},
      			"odometer": number,
      			"person": number,
      			"status": string,
      			"technician": string,
      			"techSigned": string,
      			"trailers": [
      				string
      			],
      			"v": [
      				number
      			],
      			"vehicle": number
      		}
      	],
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a asset object, or it is invalid.
      3The asset object does not contain an id, or it is invalid.
      5You do not have permission to view HosInspections for this Company.
      5You do not have permission to view this HosInspection's Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.

      mergeHosCarrier

      Creates or updates an existing HosCarrier.
      Request message description
      PropertyTypeRequiredDescription
      hosCarrierObject.<string, ?>alwaysA simple object to contain the HosCarrier parameters.
      hosCarrier.addressStreetAddresscreateThe HosCarrier's physical or incorporated address.
      hosCarrier.address.citystringoptionalCity name.
      hosCarrier.address.countrystring
      fixed length: 2
      optionalCountry code. Codes should be a value from ISO 3166-1 alpha-2.
      hosCarrier.address.isTollbooleanoptionalIndicates that there is a toll for the current road segment.
      hosCarrier.address.numberstringoptionalHouse number.
      hosCarrier.address.postalstringoptionalPostal or zip code.
      hosCarrier.address.provincestring
      fixed length: 2
      optionalProvince or state code. Codes should be a value from ISO 3166-2.
      hosCarrier.address.regionstringoptionalRegion name.
      hosCarrier.address.streetstringoptionalFull street name.
      hosCarrier.codesObject.<string, string>optionalIdentity code supplied by a regulatory/government body (DOT ID).
      hosCarrier.companyuint64?createThe Company to which this HosCarrier belongs.
      hosCarrier.contactuint64?optionalContact information for the HosCarrier.
      hosCarrier.iduint64?updateThe unique identifier of the HosCarrier you want to update.
      hosCarrier.namestring
      maximum-length: 100
      createName for the HosCarrier.
      hosCarrier.notesstringoptionalNotes for the HosCarrier.
      hosCarrier.shiftCycleHosCycle?createDefault shift cycle used by the drivers
      hosCarrier.timezonecodifiedoptionalThe local timezone of the HosCarrier's address.
      hosCarrier.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeHosCarrier {
      	"hosCarrier": {
      		"address": {
      			"city": string,
      			"country": string,
      			"isToll": boolean,
      			"number": string,
      			"postal": string,
      			"province": string,
      			"region": string,
      			"street": string
      		},
      		"codes": {
      			string: string
      		},
      		"company": number,
      		"contact": number,
      		"id": number,
      		"logo": number,
      		"name": string,
      		"notes": string,
      		"shiftCycle": string,
      		"timezone": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hosCarrierRespIdCompanyAn object which contains the "id" and "company" keys.
      hosCarrier.companyuint64Identifier of the Company to which this object belongs.
      hosCarrier.iduint64?Identifier given as input for the command.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeHosCarrierResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hosCarrier": {
      		"company": number,
      		"id": number
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a hosCarrier object, or it is invalid.
      3Not enough keys exist in the hosCarrier object.
      3The HosCarrier codes are invalid.
      3One of the HosCarrier codes is a duplicate.
      3During create: When creating a new HosCarrier, a company was not given.
      3During create: When creating a new HosCarrier, a name was not given, or it is invalid.
      3During create: When creating a new HosCarrier, an address was not given, or it is invalid.
      3During create: When creating a new HosCarrier, a shiftCycle was not given, or it is invalid.
      3During update: When updating a HosCarrier, the v was not an array, or contained too few numbers.
      5You do not have permission to create a HosCarrier.
      5You do not have permission to update this HosCarrier.
      6During update: When updating a HosCarrier, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The hosCarrier.company was not found by its unique identifier.
      31The hosCarrier.contact was not found by its unique identifier.
      62The hosCarrier.timezone was not found by its unique identifier.
      68The hosCarrier.logo was not found by its unique identifier.
      76During update: The HosCarrier was not found by its unique identifier.
      81The hosCarrier.address was not found by geocoding.
      130The hosCarrier.logo was found, but not in the same Company.
      130The hosCarrier.contact was found, but not in the same Company.
      130During update: When updating a HosCarrier, the company can not be changed.

      removeHosCarrier

      Deletes an existing HosCarrier.
      Request message description
      PropertyTypeRequiredDescription
      hosCarrierParamIdalwaysAn object to contain the identifier of the HosCarrier.
      hosCarrier.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeHosCarrier {
      	"hosCarrier": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hosCarrierRespDeletedAn object which contains the HosCarrier's id, owning Company id, and deleted status.
      hosCarrier.companyuint64Identifier of the Company to which this object belongs.
      hosCarrier.deletedbooleanFlag showing if the object is deleted.
      hosCarrier.iduint64?Identifier given as input for the command.
      hosCarrier.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeHosCarrierResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hosCarrier": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a hosCarrier object, or it is invalid.
      3The hosCarrier object does not contain an id, or it is invalid.
      5You do not have permission to delete this HosCarrier.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      76The HosCarrier was not found by its unique identifier.

      restoreHosCarrier

      Restores a deleted HosCarrier.
      Request message description
      PropertyTypeRequiredDescription
      hosCarrierParamIdalwaysAn object to contain the identifier of the HosCarrier.
      hosCarrier.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreHosCarrier {
      	"hosCarrier": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      hosCarrierRespDeletedAn object which contains the HosCarrier's id, owning Company id, and deleted status.
      hosCarrier.companyuint64Identifier of the Company to which this object belongs.
      hosCarrier.deletedbooleanFlag showing if the object is deleted.
      hosCarrier.iduint64?Identifier given as input for the command.
      hosCarrier.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreHosCarrierResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"hosCarrier": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a hosCarrier object, or it is invalid.
      3The hosCarrier object does not contain an id, or it is invalid.
      5You do not have permission to restore this HosCarrier.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      76The HosCarrier was not found by its unique identifier.
      77The HosCarrier was found, but is not marked as deleted.

      Maintenance

      getMaintenanceJob

      Gets details of the specified MaintenanceJob.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted MaintenanceJob.
      maintenanceJobParamIdalwaysAn object to contain the "id" of the MaintenanceJob.
      maintenanceJob.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getMaintenanceJob {
      	"includeDeleted": boolean,
      	"maintenanceJob": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      maintenanceJobMaintenanceJobThe requested MaintenanceJob.
      maintenanceJob.assetuint64The Vehicle or Trailer to which this job belongs
      maintenanceJob.companyuint64The company to which this Vehicle or Trailer belongs
      maintenanceJob.completeddatetimeWhen was this job created.
      maintenanceJob.costdoubleHow much the job cost in dollars.
      maintenanceJob.createddatetimeWhen was this job created.
      maintenanceJob.durationtimespanTime it took to complete the job.
      maintenanceJob.engineHoursdouble?The operating time at the time of the service.
      maintenanceJob.garagestring
      maximum-length: 100
      The name of the garage or service facility where the work is done.
      maintenanceJob.iduint64Unique identifier
      maintenanceJob.namestring
      maximum-length: 100
      The work being done. Like "oil change".
      maintenanceJob.notesstringNotes about the job. Like "changed the oil and filter".
      maintenanceJob.odometerdouble?The odometer at the time of the service.
      maintenanceJob.picturesArray.<uint64>
      for values see: Picture.id
      Images taken while performing the work for reference.
      maintenanceJob.referencestring
      maximum-length: 100
      A reference code used to track this job
      maintenanceJob.scheduleuint64?The Maintenance Schedule from which this job was created
      maintenanceJob.statusMaintenanceJobStatusThe status of this job.
      maintenanceJob.technicianstring
      maximum-length: 100
      The mechanic who performed the work.
      maintenanceJob.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getMaintenanceJobResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"maintenanceJob": {
      		"asset": number,
      		"company": number,
      		"completed": string,
      		"cost": number,
      		"created": string,
      		"duration": string,
      		"engineHours": number,
      		"garage": string,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"odometer": number,
      		"pictures": [
      			number
      		],
      		"reference": string,
      		"schedule": number,
      		"status": string,
      		"technician": string,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a maintenanceJob object, or it is invalid.
      3The maintenanceJob object does not contain an id, or it is invalid.
      5You do not have permission to view this MaintenanceJob.
      5You do not have permission to view this MaintenanceJob's Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.
      If you receive this error, please contact technical support.
      35The MaintenanceJob was not found by its unique identifier.

      getMaintenanceJobsList

      Gets a list of MaintenanceJobs by the Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      afterdatetimeoptional
      beforedatetimeoptional
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      pendingbooleanoptionalOptional parameter to including pending/past-due MaintenanceJobs.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getMaintenanceJobsList {
      	"after": string,
      	"before": string,
      	"company": {
      		"id": number
      	},
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"pending": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of MaintenanceJobs belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      maintenanceJobsArray.<MaintenanceJob>The list of requested MaintenanceJobs.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getMaintenanceJobsListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"maintenanceJobs": [
      		{
      			"asset": number,
      			"company": number,
      			"completed": string,
      			"cost": number,
      			"created": string,
      			"duration": string,
      			"engineHours": number,
      			"garage": string,
      			"id": number,
      			"name": string,
      			"notes": string,
      			"odometer": number,
      			"pictures": [
      				number
      			],
      			"reference": string,
      			"schedule": number,
      			"status": string,
      			"technician": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      3The (optional) before date is invalid.
      3The (optional) after date is invalid.
      5You do not have permission to view this MaintenanceJob.
      5You do not have permission to view any Assets in the given Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getMaintenanceJobsListByAsset

      Gets a list of MaintenanceJobs by the asset.
      Request message description
      PropertyTypeRequiredDefaultDescription
      afterdatetimeoptional
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      beforedatetimeoptional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      pendingbooleanoptionalOptional parameter to including pending/past-due MaintenanceJobs.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getMaintenanceJobsListByAsset {
      	"after": string,
      	"asset": {
      		"id": number
      	},
      	"before": string,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"pending": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of MaintenanceJobs belong.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      maintenanceJobsArray.<MaintenanceJob>The list of requested MaintenanceJobs.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getMaintenanceJobsListByAssetResponse {
      	"asset": {
      		"company": number,
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"maintenanceJobs": [
      		{
      			"asset": number,
      			"company": number,
      			"completed": string,
      			"cost": number,
      			"created": string,
      			"duration": string,
      			"engineHours": number,
      			"garage": string,
      			"id": number,
      			"name": string,
      			"notes": string,
      			"odometer": number,
      			"pictures": [
      				number
      			],
      			"reference": string,
      			"schedule": number,
      			"status": string,
      			"technician": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a asset object, or it is invalid.
      3The asset object does not contain an id, or it is invalid.
      3The (optional) before date is invalid.
      3The (optional) after date is invalid.
      5You do not have permission to view this MaintenanceJob.
      5You do not have permission to view this Asset's MaintenanceJobs.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.

      getMaintenanceJobsListBySchedule

      Gets a list of MaintenanceJobs by the schedule under which they were created/completed.
      Request message description
      PropertyTypeRequiredDefaultDescription
      afterdatetimeoptional
      beforedatetimeoptional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      maintenanceScheduleParamIdalwaysAn object to contain the "id" of the MaintenanceSchedule.
      maintenanceSchedule.iduint64alwaysIdentifier given as input for the command.
      pendingbooleanoptionalOptional parameter to including pending/past-due MaintenanceJobs.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getMaintenanceJobsListBySchedule {
      	"after": string,
      	"before": string,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"maintenanceSchedule": {
      		"id": number
      	},
      	"pending": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      maintenanceJobsArray.<MaintenanceJob>The list of requested MaintenanceJobs.
      maintenanceScheduleRespIdCompanyAn object to contain the "id" of the MaintenanceSchedule to which the array of MaintenanceJobs belong.
      maintenanceSchedule.companyuint64Identifier of the Company to which this object belongs.
      maintenanceSchedule.iduint64?Identifier given as input for the command.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getMaintenanceJobsListByScheduleResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"maintenanceJobs": [
      		{
      			"asset": number,
      			"company": number,
      			"completed": string,
      			"cost": number,
      			"created": string,
      			"duration": string,
      			"engineHours": number,
      			"garage": string,
      			"id": number,
      			"name": string,
      			"notes": string,
      			"odometer": number,
      			"pictures": [
      				number
      			],
      			"reference": string,
      			"schedule": number,
      			"status": string,
      			"technician": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"maintenanceSchedule": {
      		"company": number,
      		"id": number
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a maintenanceSchedule object, or it is invalid.
      3The maintenanceSchedule object does not contain an id, or it is invalid.
      3The (optional) before date is invalid.
      3The (optional) after date is invalid.
      5You do not have permission to view this MaintenanceJob.
      5You do not have permission to view any Assets in the given Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      37The MaintenanceSchedule was not found by its unique identifier.

      getMaintenanceSchedule

      Gets details of the specified MaintenanceSchedule.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted MaintenanceSchedule.
      maintenanceScheduleParamIdalwaysAn object to contain the "id" of the MaintenanceSchedule.
      maintenanceSchedule.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getMaintenanceSchedule {
      	"includeDeleted": boolean,
      	"maintenanceSchedule": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      maintenanceScheduleMaintenanceScheduleThe requested MaintenanceSchedule.
      maintenanceSchedule.companyuint64The company to which this schedule belongs
      maintenanceSchedule.costdoubleThe estimated cost for the job cost in dollars.
      maintenanceSchedule.durationtimespanThe estimated time for the job.
      maintenanceSchedule.fillcolour
      maximum-length: 22
      The fill/background colour of the icon.
      maintenanceSchedule.garagestring
      maximum-length: 100
      The name of the garage or service facility where the work is done.
      maintenanceSchedule.graphiccodified
      maximum-length: 22
      The name of the symbol for this schedule.
      maintenanceSchedule.iduint64Unique identifier
      maintenanceSchedule.intervalsObject.<uint64, MaintenanceInterval>
      for keys see: Asset.id
      The per-asset details calculated by the system to help predict the creation of Maintenance Jobs.
      maintenanceSchedule.namestring
      maximum-length: 100
      The name of the work to be done. Like "oil change".
      maintenanceSchedule.notesstringNotes about the work to be done. Like "change the oil and oil filter".
      maintenanceSchedule.notifyArray.<email>
      for values see: User.login
      List of Users to send notifications.
      maintenanceSchedule.predictionDaysuint32The number of days in advance to predict a job will become pending.
      maintenanceSchedule.recurDaysuint32?The number of days between service visits.
      maintenanceSchedule.recurDistancedouble?The amount of mileage between service visits.
      maintenanceSchedule.recurEngineHoursdouble?The number of operating hours between service visits.
      maintenanceSchedule.referencestring
      maximum-length: 100
      A reference code used to track this job
      maintenanceSchedule.strokecolour
      maximum-length: 22
      Outline and graphic colour.
      maintenanceSchedule.targetsexpressionThe targeting expression to select which Vehicles and Trailers require this maintenance work.
      maintenanceSchedule.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getMaintenanceScheduleResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"maintenanceSchedule": {
      		"company": number,
      		"cost": number,
      		"duration": string,
      		"fill": string,
      		"garage": string,
      		"graphic": string,
      		"id": number,
      		"intervals": {
      			string: {
      				"asset": number,
      				"date": string,
      				"engineHours": number,
      				"lastJob": number,
      				"odometer": number
      			}
      		},
      		"name": string,
      		"notes": string,
      		"notify": [
      			string
      		],
      		"predictionDays": number,
      		"recurDays": number,
      		"recurDistance": number,
      		"recurEngineHours": number,
      		"reference": string,
      		"stroke": string,
      		"targets": string,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a maintenanceSchedule object, or it is invalid.
      3The maintenanceSchedule object does not contain an id, or it is invalid.
      5You do not have permission to view this MaintenanceSchedule.
      5You do not have permission to view any assets in the given Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      37The MaintenanceSchedule was not found by its unique identifier.

      getMaintenanceSchedulesList

      Gets the list of MaintenanceSchedules for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getMaintenanceSchedulesList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of MaintenanceSchedules belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      maintenanceSchedulesArray.<MaintenanceSchedule>The list of requested MaintenanceSchedules.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getMaintenanceSchedulesListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"maintenanceSchedules": [
      		{
      			"company": number,
      			"cost": number,
      			"duration": string,
      			"fill": string,
      			"garage": string,
      			"graphic": string,
      			"id": number,
      			"intervals": {
      				string: {
      					"asset": number,
      					"date": string,
      					"engineHours": number,
      					"lastJob": number,
      					"odometer": number
      				}
      			},
      			"name": string,
      			"notes": string,
      			"notify": [
      				string
      			],
      			"predictionDays": number,
      			"recurDays": number,
      			"recurDistance": number,
      			"recurEngineHours": number,
      			"reference": string,
      			"stroke": string,
      			"targets": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view this MaintenanceSchedule.
      5You do not have permission to view any assets in the given Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.

      mergeMaintenanceJob

      Creates a new or updates an existing MaintenanceJob.
      Request message description
      PropertyTypeRequiredDescription
      maintenanceJobObject.<string, ?>alwaysA simple object to contain the MaintenanceJob parameters.
      maintenanceJob.assetuint64?createThe identifier of the Asset to which this MaintenanceJob is assigned.
      maintenanceJob.completeddatetimeoptionalWhen was this MaintenanceJob created.
      maintenanceJob.costdouble?optionalHow much the MaintenanceJob cost in dollars.
      maintenanceJob.createddatetimeoptionalWhen was this MaintenanceJob created.
      maintenanceJob.durationtimespanoptionalTime it took to complete the MaintenanceJob.
      maintenanceJob.engineHoursdouble?optionalThe operating time at the time of the service.
      maintenanceJob.garagestring
      maximum-length: 100
      optionalThe name of the garage or service facility where the work is done.
      maintenanceJob.iduint64?updateThe unique identifier of the MaintenanceJob you want to update.
      maintenanceJob.namestring
      maximum-length: 100
      createThe work being done. Like "oil change".
      maintenanceJob.notesstringoptionalNotes about the MaintenanceJob. Like "changed the oil and filter".
      maintenanceJob.odometerdouble?optionalThe odometer at the time of the service.
      maintenanceJob.picturesArray.<uint64>
      for values see: Picture.id
      optionalPictures taken while performing the work for reference.
      maintenanceJob.referencestring
      maximum-length: 100
      optionalA reference code used to track this MaintenanceJob.
      maintenanceJob.scheduleuint64?optionalThe MaintenanceSchedule from which this job was created
      maintenanceJob.statusMaintenanceJobStatus?optionalThe status of this MaintenanceJob.
      maintenanceJob.technicianstring
      maximum-length: 100
      optionalThe mechanic who performed the work.
      maintenanceJob.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeMaintenanceJob {
      	"maintenanceJob": {
      		"asset": number,
      		"completed": string,
      		"cost": number,
      		"created": string,
      		"duration": string,
      		"engineHours": number,
      		"garage": string,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"odometer": number,
      		"pictures": [
      			number
      		],
      		"reference": string,
      		"schedule": number,
      		"status": string,
      		"technician": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      maintenanceJobRespIdAssetAn object which contains the "id", "asset", and "company" keys.
      maintenanceJob.assetuint64Identifier of the Asset to which this object belongs
      maintenanceJob.companyuint64Identifier of the Company to which this object belongs.
      maintenanceJob.iduint64?Identifier given as input for the command.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeMaintenanceJobResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"maintenanceJob": {
      		"asset": number,
      		"company": number,
      		"id": number
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a maintenanceJob object, or it is invalid.
      3Not enough keys exist in the maintenanceJob object.
      3The given maintenanceJob.completed is too far into the future.
      3maintenanceJob.asset can not be changed
      3The given maintenanceJob.asset was invalid.
      3The given maintenanceJob.schedule was invalid.
      3The given maintenanceJob.status was invalid.
      3The given maintenanceJob.created date was invalid.
      3The given maintenanceJob.completed date was invalid.
      3The given maintenanceJob.odometer was invalid.
      3The given maintenanceJob.engineHours was invalid.
      3The given maintenanceJob.duration was invalid, or it was not positive.
      3The given maintenanceJob.cost was invalid.
      3The given maintenanceJob.pictures was invalid.
      3During create: When creating a new MaintenanceJob, a maintenanceJob.name was not given, or it is invalid.
      3During update: When updating a MaintenanceJob, the maintenanceJob.id was invalid.
      3During update: When updating a MaintenanceJob, the maintenanceJob.name was given as blank.
      3During update: When updating a MaintenanceJob, the v was not an array, or contained too few numbers.
      3One of the maintenanceJob.pictures values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      5You do not have permission to create a new MaintenanceJob.
      5You do not have permission to update this MaintenanceJob.
      5You do not have permission to view the target Asset.
      6During update: When updating a MaintenanceJob, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.
      35The MaintenanceJob was not found by its unique identifier.
      37The MaintenanceSchedule was not found by its unique identifier.
      69One or more Pictures were not found by their unique identifiers.
      130The maintenanceJob.schedule and maintenanceJob.asset belong to different companies.
      130During update: When updating a MaintenanceJob, the maintenanceJob.asset can not be changed.

      mergeMaintenanceSchedule

      Creates a new or updates an existing MaintenanceSchedule.
      Request message description
      PropertyTypeRequiredDescription
      maintenanceScheduleObject.<string, ?>alwaysA simple object to contain the MaintenanceSchedule parameters.
      maintenanceSchedule.companyuint64?optionalThe company to which this MaintenanceSchedule. After creation, this value is read-only.
      maintenanceSchedule.costdouble?optionalThe estimated cost for the created MaintenanceJob cost in dollars.
      maintenanceSchedule.durationtimespanoptionalThe estimated time for the created MaintenanceJob.
      maintenanceSchedule.fillstring
      maximum-length: 22
      optionalThe fill/background colour of the icon. Should be a hex colour in the format #RRGGBB.
      maintenanceSchedule.garagestring
      maximum-length: 100
      optionalThe name of the garage or service facility where the work is done.
      maintenanceSchedule.graphiccodified
      maximum-length: 22
      optionalThe name of the symbol for this report.
      maintenanceSchedule.iduint64?updateThe unique identifier of the MaintenanceSchedule you want to update.
      maintenanceSchedule.intervalsObject.<uint64, MaintenanceInterval>optionalThe per-Asset details calculated by the system to help predict the creation of MaintenanceJobs.
      maintenanceSchedule.namestring
      maximum-length: 100
      createThe name of the MaintenanceSchedule.
      maintenanceSchedule.notesstringoptionalNotes about the MaintenanceSchedule.
      maintenanceSchedule.notifyArray.<email>optionalList of Users to send notifications.
      maintenanceSchedule.predictionDaysuint32?optionalThe number of days in advance to predict a MaintenanceJob will become pending.
      maintenanceSchedule.recurDaysuint32?optionalThe number of days between service visits.
      maintenanceSchedule.recurDistancedouble?optionalThe amount of mileage between service visits.
      maintenanceSchedule.recurEngineHoursdouble?optionalThe number of operating hours between service visits.
      maintenanceSchedule.referencestring
      maximum-length: 100
      optionalA reference code used to track this created MaintenanceJob.
      maintenanceSchedule.strokestring
      maximum-length: 22
      optionalOutline and graphic colour. Should be a hex colour in the format #RRGGBB.
      maintenanceSchedule.targetsexpressionoptionalWhich Assets are targetted by this MaintenanceSchedule.
      maintenanceSchedule.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeMaintenanceSchedule {
      	"maintenanceSchedule": {
      		"company": number,
      		"cost": number,
      		"duration": string,
      		"fill": string,
      		"garage": string,
      		"graphic": string,
      		"id": number,
      		"intervals": {
      			string: {
      				"asset": number,
      				"date": string,
      				"engineHours": number,
      				"lastJob": number,
      				"odometer": number
      			}
      		},
      		"name": string,
      		"notes": string,
      		"notify": [
      			string
      		],
      		"predictionDays": number,
      		"recurDays": number,
      		"recurDistance": number,
      		"recurEngineHours": number,
      		"reference": string,
      		"stroke": string,
      		"targets": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      maintenanceScheduleRespIdCompanyAn object which contains the "id" and "company" keys.
      maintenanceSchedule.companyuint64Identifier of the Company to which this object belongs.
      maintenanceSchedule.iduint64?Identifier given as input for the command.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeMaintenanceScheduleResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"maintenanceSchedule": {
      		"company": number,
      		"id": number
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a maintenanceSchedule object, or it is invalid.
      3Not enough keys exist in the maintenanceSchedule object.
      3The maintenanceSchedule.name was not given, or it is invalid.
      3The maintenanceSchedule.notify was invalid.
      3The maintenanceSchedule.predictionDays was invalid, or the value was not between 5 and 180.
      3The maintenanceSchedule.recurDays was invalid.
      3The maintenanceSchedule.recurDistance was invalid.
      3The maintenanceSchedule.recurEngineHours was invalid.
      3The maintenanceSchedule.intervals was invalid.
      3The maintenanceSchedule.duration was invalid, or it was not positive.
      3The maintenanceSchedule.cost was invalid.
      3The maintenanceSchedule.notify was invalid.
      3One of the maintenanceSchedule.notify values was invalid.
      3The maintenanceSchedule.intervals was invalid.
      3One of the maintenanceSchedule.intervals values was invalid.
      3During create: The maintenanceSchedule.company was invalid.
      3During create: When creating a MaintenanceSchedule, the maintenanceSchedule.targets was invalid.
      3During update: When updating a MaintenanceSchedule, the maintenanceSchedule.id was invalid.
      3During update: When updating a MaintenanceSchedule, the maintenanceSchedule.name was given as blank.
      3During update: When updating a MaintenanceSchedule, the v was not an array, or contained too few numbers.
      5You do not have permission to create a new MaintenanceSchedule.
      5You do not have permission to update this MaintenanceSchedule.
      5You do not have permission to view one of the Assets in a given maintenanceSchedule.intervals.
      6During update: When updating a MaintenanceSchedule, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.
      37The MaintenanceSchedule was not found by its unique identifier.
      130During update: When updating a MaintenanceSchedule, the maintenanceSchedule.companycompany was provided as a different value.

      removeMaintenanceJob

      Deletes an existing MaintenanceJob.
      Request message description
      PropertyTypeRequiredDescription
      maintenanceJobParamIdalwaysAn object to contain the "id" of the MaintenanceJob.
      maintenanceJob.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeMaintenanceJob {
      	"maintenanceJob": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      maintenanceJobRespAssetDeletedAn object which contains the MaintenanceJob's id, owning Company id, related Asset id, and deleted status.
      maintenanceJob.assetuint64Identifier of the Asset to which this object belongs.
      maintenanceJob.companyuint64Identifier of the Company to which this object belongs.
      maintenanceJob.deletedbooleanFlag showing if the object is deleted.
      maintenanceJob.iduint64?Identifier given as input for the command.
      maintenanceJob.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeMaintenanceJobResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"maintenanceJob": {
      		"asset": number,
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a maintenanceJob object, or it is invalid.
      3The maintenanceJob object does not contain an id, or it is invalid.
      5You do not have permission to delete this MaintenanceJob.
      5You do not have permission to view this MaintenanceJob's Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.
      If you receive this error, please contact technical support.
      35The MaintenanceJob was not found by its unique identifier.

      removeMaintenanceSchedule

      Deletes an existing MaintenanceSchedule.
      Request message description
      PropertyTypeRequiredDescription
      maintenanceScheduleParamIdalwaysAn object to contain the "id" of the MaintenanceSchedule.
      maintenanceSchedule.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeMaintenanceSchedule {
      	"maintenanceSchedule": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      maintenanceScheduleRespDeletedAn object which contains the MaintenanceSchedule's unique identifier and deleted status.
      maintenanceSchedule.companyuint64Identifier of the Company to which this object belongs.
      maintenanceSchedule.deletedbooleanFlag showing if the object is deleted.
      maintenanceSchedule.iduint64?Identifier given as input for the command.
      maintenanceSchedule.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeMaintenanceScheduleResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"maintenanceSchedule": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a maintenanceSchedule object, or it is invalid.
      3The maintenanceSchedule object does not contain an id, or it is invalid.
      5You do not have permission to delete this MaintenanceSchedule.
      5You do not have permission to view any Assets targeted by this MaintenanceSchedule.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      37The MaintenanceSchedule was not found by its unique identifier.

      restoreMaintenanceJob

      Restores the specified MaintenanceJob.
      Request message description
      PropertyTypeRequiredDescription
      maintenanceJobParamIdalwaysAn object to contain the "id" of the MaintenanceJob.
      maintenanceJob.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreMaintenanceJob {
      	"maintenanceJob": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      maintenanceJobRespAssetDeletedAn object which contains the MaintenanceJob's id, owning Company id, related Asset id, and deleted status.
      maintenanceJob.assetuint64Identifier of the Asset to which this object belongs.
      maintenanceJob.companyuint64Identifier of the Company to which this object belongs.
      maintenanceJob.deletedbooleanFlag showing if the object is deleted.
      maintenanceJob.iduint64?Identifier given as input for the command.
      maintenanceJob.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreMaintenanceJobResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"maintenanceJob": {
      		"asset": number,
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a maintenanceJob object, or it is invalid.
      3The maintenanceJob object does not contain an id, or it is invalid.
      5You do not have permission to restore this MaintenanceJob.
      5You do not have permission to view this MaintenanceJob's Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset was not found by its unique identifier.
      If you receive this error, please contact technical support.
      35The MaintenanceJob was not found by its unique identifier.
      36The MaintenanceJob was found, but is not marked as deleted.

      restoreMaintenanceSchedule

      Restores the specified MaintenanceSchedule.
      Request message description
      PropertyTypeRequiredDescription
      maintenanceScheduleParamIdalwaysAn object to contain the "id" of the MaintenanceSchedule.
      maintenanceSchedule.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreMaintenanceSchedule {
      	"maintenanceSchedule": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      maintenanceScheduleRespDeletedAn object which contains the MaintenanceSchedule's unique identifier and deleted status.
      maintenanceSchedule.companyuint64Identifier of the Company to which this object belongs.
      maintenanceSchedule.deletedbooleanFlag showing if the object is deleted.
      maintenanceSchedule.iduint64?Identifier given as input for the command.
      maintenanceSchedule.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreMaintenanceScheduleResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"maintenanceSchedule": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a maintenanceSchedule object, or it is invalid.
      3The maintenanceSchedule object does not contain an id, or it is invalid.
      5You do not have permission to restore this MaintenanceSchedule.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      37The MaintenanceSchedule was not found by its unique identifier.
      38The MaintenanceSchedule was found, but is not marked as deleted.

      Messaging

      getAssetMessage

      Gets details of the specified AssetMessage.
      Request message description
      PropertyTypeRequiredDefaultDescription
      assetMessageParamIdalwaysAn object to contain the "id" key.
      assetMessage.iduint64alwaysIdentifier given as input for the command.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted AssetMessage.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getAssetMessage {
      	"assetMessage": {
      		"id": number
      	},
      	"includeDeleted": boolean,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetMessageAssetMessageThe requested AssetMessage.
      assetMessage.assetuint64The asset to which this message relates.
      assetMessage.bodystringThe main contents of the memo.
      assetMessage.companyuint64The company to which this memo belongs.
      assetMessage.delivereddatetimeDate/time stamp of when the memo was delivered (or sent if delivery information unavailable).
      assetMessage.folderMessageFolderThe folder under which this message is stored.
      assetMessage.fromstring
      maximum-length: 254
      minimum-length: 6
      Sender address
      assetMessage.iduint64Unique identifier of this memo.
      assetMessage.incomingbooleanIndicates that this is a received message instead of a sent message.
      assetMessage.kindMessageTypeProtocol type
      assetMessage.processeddatetimeDate/time stamp of when the memo was processed.
      assetMessage.readByemail
      maximum-length: 254
      The user that read this message. This field is blank/null when unread.
      assetMessage.statusMessageStatusLifetime status
      assetMessage.subjectstring
      maximum-length: 100
      The subject of this message.
      assetMessage.tostring
      maximum-length: 254
      minimum-length: 6
      Recipient address
      assetMessage.useremail
      maximum-length: 254
      The user who sent/received this message.
      assetMessage.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getAssetMessageResponse {
      	"assetMessage": {
      		"asset": number,
      		"body": string,
      		"company": number,
      		"delivered": string,
      		"folder": string,
      		"from": string,
      		"id": number,
      		"incoming": boolean,
      		"kind": string,
      		"processed": string,
      		"readBy": string,
      		"status": string,
      		"subject": string,
      		"to": string,
      		"user": string,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a assetMessage object, or it is invalid.
      3The assetMessage object does not contain an id, or it is invalid.
      5You do not have permission to view the AssetMessages.
      5You do not have permission to view the Asset to which the AssetMessage belongs.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset that owns this AssetMessage was not found.
      If you receive this error, please contact technical support.
      63The AssetMessage was not found by its unique identifier.
      96The Asset that owns this AssetMessage is suspended. Before reading AssetMessages from an Asset, it must be reactivated.

      getAssetMessagesList

      Gets the list of AssetMessages for the specified Asset.
      Request message description
      PropertyTypeRequiredDefaultDescription
      afterdatetimeoptional
      assetParamIdalwaysAn object to contain the "id" of the Asset.
      asset.iduint64alwaysIdentifier given as input for the command.
      beforedatetimeoptional
      folderMessageFolderoptionalThe folder from which to retrieve AssetMessages. Default is MessageFolder.inbox.
      includeArchivebooleanoptional
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getAssetMessagesList {
      	"after": string,
      	"asset": {
      		"id": number
      	},
      	"before": string,
      	"folder": string,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of AssetMessages belong.
      asset.companyuint64Identifier of the Company to which this object belongs.
      asset.iduint64?Identifier given as input for the command.
      assetMessagesArray.<AssetMessage>The list of requested AssetMessages.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getAssetMessagesListResponse {
      	"asset": {
      		"company": number,
      		"id": number
      	},
      	"assetMessages": [
      		{
      			"asset": number,
      			"body": string,
      			"company": number,
      			"delivered": string,
      			"folder": string,
      			"from": string,
      			"id": number,
      			"incoming": boolean,
      			"kind": string,
      			"processed": string,
      			"readBy": string,
      			"status": string,
      			"subject": string,
      			"to": string,
      			"user": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request contains a folder value, but it is not valid.
      3The request does not contain a asset object, or it is invalid.
      3The asset object does not contain an id, or it is invalid.
      5You do not have permission to view AssetMessages.
      5You do not have permission to view the specified Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset that owns this message was not found.
      96The Asset that owns this message is suspended. Before reading messages from a Asset, it must be reactivated.

      getAssetMessagesListByCompany

      Gets the list of AssetMessages for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      afterdatetimeoptional
      beforedatetimeoptional
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      folderMessageFolderoptionalThe folder from which to retrieve AssetMessages. Default is MessageFolder.inbox.
      includeArchivebooleanoptional
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getAssetMessagesListByCompany {
      	"after": string,
      	"before": string,
      	"company": {
      		"id": number
      	},
      	"folder": string,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetMessagesArray.<AssetMessage>The list of requested AssetMessages.
      companyRespIdAn object to contain the "id" of the Company to which the array of AssetMessages belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getAssetMessagesListByCompanyResponse {
      	"assetMessages": [
      		{
      			"asset": number,
      			"body": string,
      			"company": number,
      			"delivered": string,
      			"folder": string,
      			"from": string,
      			"id": number,
      			"incoming": boolean,
      			"kind": string,
      			"processed": string,
      			"readBy": string,
      			"status": string,
      			"subject": string,
      			"to": string,
      			"user": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request contains a folder value, but it is not valid.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view any Assets in the given Company.
      5You do not have permission to view AssetMessages.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found.

      mergeAssetMessage

      Creates a new or updates an existing AssetMessage.
      Request message description
      PropertyTypeRequiredDescription
      assetMessageObject.<string, ?>alwaysA simple object to contain the AssetMessage parameters.
      assetMessage.assetuint64?createThe Asset that this AssetMessage was sent from or to. After creation, this value is read-only.
      assetMessage.bodystringcreateThe body of the AssetMessage. After creation, this value is read-only.
      assetMessage.folderMessageFolder?optionalThe folder where this AssetMessage is stored.
      assetMessage.iduint64?updateThe unique identifier of the AssetMessage you want to update.
      assetMessage.kindMessageType?createThe kind of protocol used for this AssetMessage. After creation, this value is read-only.
      assetMessage.readbooleanoptionalSet to true to log that the AssetMessage was received and read by yourself. Once set, the AssetMessage.readBy value will be your login, and cannot be set by anyone else.
      assetMessage.subjectstringoptionalThe AssetMessage subject field. After creation, this value is read-only. This is used exclusively with MessageType.email type AssetMessages.
      assetMessage.tostringcreateOptional to address used when creating the AssetMessage if no messaging address is available. After creation, this value is read-only.
      assetMessage.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeAssetMessage {
      	"assetMessage": {
      		"asset": number,
      		"body": string,
      		"folder": string,
      		"id": number,
      		"kind": string,
      		"read": boolean,
      		"subject": string,
      		"to": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetMessageRespIdAssetAn object which contains the "id", "company", and "asset" keys when there is no error.
      assetMessage.assetuint64Identifier of the Asset to which this object belongs
      assetMessage.companyuint64Identifier of the Company to which this object belongs.
      assetMessage.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeAssetMessageResponse {
      	"assetMessage": {
      		"asset": number,
      		"company": number,
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain an assetMessage object, or it is invalid.
      3Not enough keys exist in the assetMessage object.
      3The folder was given, but is invalid.
      3During create: When creating a new AssetMessage, an assetMessage.asset was not given.
      3During create: When creating a new AssetMessage, a assetMessage.kind was not given.
      3During create: When creating a new AssetMessage, the assetMessage.kind was an invalid value.
      3During update: When updating a AssetMessage, the assetMessage.id was invalid.
      3During update: When updating a AssetMessage, the v was not an array, or contained too few numbers.
      3During update after read: When updating a AssetMessage after it has been read, the readBy field can not be changed.
      5You do not have permission to view the Asset to which the AssetMessage belongs.
      5During create: You do not have permission to send new AssetMessages.
      5During update: You do not have permission to update AssetMessages.
      6During update: When updating a AssetMessage, the wrong version key(s) were given.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20During create: The Asset that owns this AssetMessage was not found.
      63During update: The AssetMessage was not found by its unique identifier.
      96During create: The Asset that owns this AssetMessage is suspended. Before sending or updating AssetMessages from a Asset, it must be reactivated.
      130During update: When updating a AssetMessage, the asset can not be changed.
      130During update: When updating a AssetMessage, the kind field can not be changed.
      130During update: When updating a AssetMessage, the to field can not be changed.
      130During update after sent: When updating a AssetMessage after processing, the subject field can not be changed.
      130During update after sent: When updating a AssetMessage after processing, the body field can not be changed.

      multiMergeAssetMessage

      Creates multiple new, or updates multiple existing AssetMessages.
      Request message description
      PropertyTypeRequiredDescription
      assetMessagesArray.<ParameterContent>optionalArray of parameters successfully parsed by the sub-command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      multiMergeAssetMessage {
      	"assetMessages": [
      		{
      			"asset": number,
      			"body": string,
      			"folder": string,
      			"id": number,
      			"kind": string,
      			"read": boolean,
      			"subject": string,
      			"to": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetMessagesArray.<RespIdAsset>Array or responses successfully processed by the sub-command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      multiMergeAssetMessageResponse {
      	"assetMessages": [
      		{
      			"asset": number,
      			"company": number,
      			"id": number
      		}
      	],
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain an operation collection, or it is invalid.
      3The operation collection is empty.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      105Too many items exist in the operation collection.
      110One or more of the sub-operations failed, see errorDetails for more information.
      Returns an ErrorDetailBatch as the errorDetails..

      removeAssetMessage

      Deletes an existing AssetMessage.
      Request message description
      PropertyTypeRequiredDescription
      assetMessageParamIdalwaysAn object to contain the "id" key.
      assetMessage.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeAssetMessage {
      	"assetMessage": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetMessageRespAssetDeletedAn object which contains the AssetMessage's id, owning Company id, and deleted status.
      assetMessage.assetuint64Identifier of the Asset to which this object belongs.
      assetMessage.companyuint64Identifier of the Company to which this object belongs.
      assetMessage.deletedbooleanFlag showing if the object is deleted.
      assetMessage.iduint64?Identifier given as input for the command.
      assetMessage.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeAssetMessageResponse {
      	"assetMessage": {
      		"asset": number,
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a assetMessage object, or it is invalid.
      3The assetMessage object does not contain an id, or it is invalid.
      5You do not have permission to delete AssetMessages.
      5You do not have permission to view the asset to which the AssetMessage belongs.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The asset that owns this AssetMessage was not found.
      If you receive this error, please contact technical support.
      63The AssetMessage was not found by its unique identifier.
      96The asset that owns this AssetMessage is suspended. Before reading AssetMessages from an Asset, it must be reactivated.

      restoreAssetMessage

      Restores the specified AssetMessage to its previous version.
      Request message description
      PropertyTypeRequiredDescription
      assetMessageParamIdalwaysAn object to contain the "id" key.
      assetMessage.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreAssetMessage {
      	"assetMessage": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      assetMessageRespAssetDeletedAn object which contains the AssetMessage's id, owning Company id, and deleted status.
      assetMessage.assetuint64Identifier of the Asset to which this object belongs.
      assetMessage.companyuint64Identifier of the Company to which this object belongs.
      assetMessage.deletedbooleanFlag showing if the object is deleted.
      assetMessage.iduint64?Identifier given as input for the command.
      assetMessage.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreAssetMessageResponse {
      	"assetMessage": {
      		"asset": number,
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a assetMessage object, or it is invalid.
      3The assetMessage object does not contain an id, or it is invalid.
      5You do not have permission to restore AssetMessages.
      5You do not have permission to view the Asset to which the AssetMessage belongs.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The Asset that owns this AssetMessage was not found.
      If you receive this error, please contact technical support.
      63The AssetMessage was not found by its unique identifier.
      96The Asset that owns this AssetMessage is suspended. Before reading AssetMessages from an Asset, it must be reactivated.
      101The AssetMessage was found, but is not marked as deleted.

      Places

      getPlace

      Gets details of the specified Place.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted Place.
      placeParamIdalwaysAn object to contain the "id" of the Place.
      place.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getPlace {
      	"includeDeleted": boolean,
      	"place": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      placePlaceThe requested Place.
      place.addressstring
      maximum-length: 200
      Full street address including province/state, country, and postal/zip code.
      place.anchorLatLngA central point of the shape. This is the exact centre of a PlaceType.radial and PlaceType.point shaped places, and the location of the pin on the map for all types. When routing, PlaceType.polygon and PlaceType.rectangle shapes use the anchor as the location within the place for deliveries.
      place.anchor.latdoubleLatitude
      place.anchor.lngdoubleLongitude
      place.colourcolour
      maximum-length: 22
      The fill colour given to this place for easy visual identification on the map (given in 24bit hex; #RRGGBB)
      place.companyuint64The company to which this POI belongs.
      place.iconuint64
      see: Icon.id
      The icon used to display this POI in lists and on the map.
      place.iduint64Unique identifier of this place.
      place.kindPlaceTypeThe kind of geography represented by this POI.
      place.labelsArray.<codified>
      for values see: LabelStyle.code
      The codified names of labels
      place.namestring
      maximum-length: 100
      POI's common name instead of street address.
      place.notesstringNotes!
      place.picturesArray.<uint64>
      for values see: Picture.id
      Images of this POI.
      place.radiusdouble?This member is only present for PlaceType.radial shapes, and is the radius in meters from the centre anchor.
      place.referencestring
      maximum-length: 100
      A custom field used to refer to an external system.
      place.shapeArray.<LatLng>The geography representing this POI for rectangle and polygon shape types. For PlaceType.radial and PlaceType.point shape types, the shape key is not present. For a PlaceType.rectangle, the array contains the north east and south west corner coordinates. For a PlaceType.polygon, the array lists all coordinates (oriented as counter-clockwise) needed to draw the geofence.
      place.vArray.<int32>
      fixed count: 2
      Object version keys used to validate synchronization for all object properties.
      place.v[0]int32The first element is for the general properties
      place.v[1]int32The second element is not used
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getPlaceResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"place": {
      		"address": string,
      		"anchor": {
      			"lat": number,
      			"lng": number
      		},
      		"colour": string,
      		"company": number,
      		"icon": number,
      		"id": number,
      		"kind": string,
      		"labels": [
      			string
      		],
      		"name": string,
      		"notes": string,
      		"pictures": [
      			number
      		],
      		"radius": number,
      		"reference": string,
      		"shape": [
      			{
      				"lat": number,
      				"lng": number
      			}
      		],
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a place object, or it is invalid.
      3The place object does not contain an id, or it is invalid.
      5You do not have permission to view this Place.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      40The Place was not found by its unique identifier.

      getPlacesList

      Gets the list of Places for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getPlacesList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of Places belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      placesArray.<Place>The list of requested Places.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getPlacesListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"places": [
      		{
      			"address": string,
      			"anchor": {
      				"lat": number,
      				"lng": number
      			},
      			"colour": string,
      			"company": number,
      			"icon": number,
      			"id": number,
      			"kind": string,
      			"labels": [
      				string
      			],
      			"name": string,
      			"notes": string,
      			"pictures": [
      				number
      			],
      			"radius": number,
      			"reference": string,
      			"shape": [
      				{
      					"lat": number,
      					"lng": number
      				}
      			],
      			"v": [
      				number
      			]
      		}
      	],
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view any Places for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getPlacesListByReference

      Gets the list of Places for the specified Company only if the Place reference field is a match.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      referencestringoptionalCase-insensitive reference used to match Places.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getPlacesListByReference {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reference": string,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of Places belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      placesArray.<Place>The list of requested Places.
      referencestringThe reference string given as input.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getPlacesListByReferenceResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"places": [
      		{
      			"address": string,
      			"anchor": {
      				"lat": number,
      				"lng": number
      			},
      			"colour": string,
      			"company": number,
      			"icon": number,
      			"id": number,
      			"kind": string,
      			"labels": [
      				string
      			],
      			"name": string,
      			"notes": string,
      			"pictures": [
      				number
      			],
      			"radius": number,
      			"reference": string,
      			"shape": [
      				{
      					"lat": number,
      					"lng": number
      				}
      			],
      			"v": [
      				number
      			]
      		}
      	],
      	"reference": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      3The reference is blank or null.
      5You do not have permission to view any Places for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      mergePlace

      Creates a new, or updates an existing Place.
      Request message description
      PropertyTypeRequiredDescription
      placeObject.<string, ?>alwaysA simple object to contain the Place parameters.
      place.addressstringoptionalFull street address including province/state, country, and postal/zip code.
      place.anchorLatLngoptionalCentral lat/long coordinates. When not present, the shape centre is used for routing.
      place.anchor.latdoubleoptionalLatitude
      place.anchor.lngdoubleoptionalLongitude
      place.colourcolour
      maximum-length: 22
      optionalThe fill colour given to this Place for easy visual identification on the map.
      place.companyuint64?createThe Company to which this Place belongs. After creation, this value is read-only.
      place.iconuint64?
      see: Icon.id
      createThe Icon used to display this POI in lists and on the map.
      place.iduint64?updateThe unique identifier of the Place you want to update.
      place.kindPlaceType?createThe kind of shape being created.
      place.labelsArray.<codified>
      for values see: LabelStyle.code
      optionalThe codified names of labels
      place.namestring
      maximum-length: 100
      createName for the Place.
      place.notesstringoptionalNotes for the Place.
      place.picturesArray.<uint64>
      for values see: Picture.id
      optionalThe identifiers of Pictures of this Place.
      place.radiusdouble?create (radial)Boundary threshold (in meters)
      place.referencestring
      maximum-length: 100
      optionalA custom field used to refer to an external system.
      place.shapeArray.<LatLng>create (rectangle or polygon)For a PlaceType.rectangle, the input contains the north east and south west corner coordinates. For a PlaceType.polygon, the input lists all coordinates (oriented as counter-clockwise) needed to draw the geofence.
      place.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergePlace {
      	"place": {
      		"address": string,
      		"anchor": {
      			"lat": number,
      			"lng": number
      		},
      		"colour": string,
      		"company": number,
      		"icon": number,
      		"id": number,
      		"kind": string,
      		"labels": [
      			string
      		],
      		"name": string,
      		"notes": string,
      		"pictures": [
      			number
      		],
      		"radius": number,
      		"reference": string,
      		"shape": [
      			{
      				"lat": number,
      				"lng": number
      			}
      		],
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      placeRespIdCompanyAn object which contains the "id" and "company" keys.
      place.companyuint64Identifier of the Company to which this object belongs.
      place.iduint64?Identifier given as input for the command.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergePlaceResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"place": {
      		"company": number,
      		"id": number
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a place object, or it is invalid.
      3No valid changes would be performed.
      3For a PlaceType.rectangle shape, the shape has fewer than 2 coordinates.
      3For a PlaceType.polygon shape, the shape has fewer than 3 coordinates.
      3During create: When creating a new Place, a name was not given.
      3During create: When creating a new Place, a company was not given.
      3During create: When creating a new Place, an icon was not given.
      3During update: When updating a Place, the name was given as null or blank.
      3During update: When updating a Place, the v was not an array, or contained too few numbers.
      3The place.kind was given, but it was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3The place.colour was given, but it was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the place.pictures identifiers given in the array cannot be parsed, or is a value less than zero.
      Returns an ErrorDetailInput as the errorDetails..
      3The place.anchor was given, but it was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the place.shape coordinates given in the array cannot be parsed, or is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3The place.shape string cannot be decoded using Google's Encoded Polyline algorithm.
      Returns an ErrorDetailInput as the errorDetails..
      3For a PlaceType.radial shape, the radius is outside of the size restrictions.
      Returns an ErrorDetailMinMax as the errorDetails..
      3For a PlaceType.rectangle shape, the diagonal distance is outside of the size restrictions.
      Returns an ErrorDetailMinMax as the errorDetails..
      3For a PlaceType.polygon shape, the widest diagonal distance is outside of the size restrictions.
      Returns an ErrorDetailMinMax as the errorDetails..
      5You do not have permission to create a new Place (with the given labels).
      5You do not have permission to update this Place.
      6During update: When updating a Place, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      33The place.icon given as input was not found.
      40During update: The Place was not found by its unique identifier.
      69One or more of the Picture identifiers given as input in the place.pictures array was not found.
      Returns an ErrorDetailBadIds as the errorDetails..
      71During update: Changing the labels on this Place in the requested way would grant you elevated access to it.
      Returns an ErrorDetailEscalation as the errorDetails..
      130During create: When creating a new point or radial Place, an anchor or address was not given.
      130During update: When updating a Place, the place.company can not be changed.

      removePlace

      Deletes an existing Place.
      Request message description
      PropertyTypeRequiredDescription
      placeParamIdalwaysAn object to contain the "id" of the Place.
      place.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removePlace {
      	"place": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      placeRespDeletedAn object which contains the place's id, owning company id, and deleted status.
      place.companyuint64Identifier of the Company to which this object belongs.
      place.deletedbooleanFlag showing if the object is deleted.
      place.iduint64?Identifier given as input for the command.
      place.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removePlaceResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"place": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a place object, or it is invalid.
      3The place object does not contain an id, or it is invalid.
      5You do not have permission to delete this Place.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      40The Place was not found by its unique identifier.

      restorePlace

      Restores the specified Place.
      Request message description
      PropertyTypeRequiredDescription
      placeParamIdalwaysAn object to contain the "id" of the Place.
      place.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restorePlace {
      	"place": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      placeRespDeletedAn object which contains the place's id, owning company id, and deleted status.
      place.companyuint64Identifier of the Company to which this object belongs.
      place.deletedbooleanFlag showing if the object is deleted.
      place.iduint64?Identifier given as input for the command.
      place.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restorePlaceResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"place": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a place object, or it is invalid.
      3The place object does not contain an id, or it is invalid.
      5You do not have permission to restore this Place.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      40The Place was not found by its unique identifier.
      41The Place was found, but is not marked as deleted.

      Providers and Configurations

      getProvider

      Gets details of the specified Provider.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted Provider.
      providerParamIdentifieralwaysAn object to contain the "id" of the Provider.
      provider.idstringalwaysThe Provider's identifier.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getProvider {
      	"includeDeleted": boolean,
      	"provider": {
      		"id": string
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerProviderThe requested Provider.
      provider.assetuint64?The asset for which this device provides field data.
      provider.attributesObject.<string, Object.<string, ProviderData>>
      for keys see: ProviderDataGroup
      for value-keys see: ProviderDataName
      Often changing values like latitude, longitude, speed, wiring state, VBus information, etc...
      provider.companyuint64The company to which this device belongs.
      provider.configurationuint64The provider's current (or pending) configuration profile.
      provider.firmwarestring
      maximum-length: 100
      The firmware/application version number.
      provider.firmwareStatusProvisioningStatusThe system's progress of updating the device's firmware/application.
      provider.geofenceLastdatetimeA timestamp from when the geofence list was updated by a User or a Provider.
      provider.geofenceStatusProvisioningStatusThe system's progress of updating the device's on-board geofence definitions.
      provider.idstring
      maximum-length: 50
      Unique identifier of this provider.
      provider.informationObject.<string, string>
      for keys see: ProviderDataName
      A list of read-only values about the device like IMEI, ESN, firmware version, hardware revision, etc...
      provider.kindProviderTypeThe kind of communication protocol this device uses.
      provider.lastCheckIndatetimeA timestamp from when the provider last checked for a new script or new geofences.
      provider.lastIPipv4The last IP address of the device.
      provider.namestring
      maximum-length: 100
      A nickname given to the device/hardware.
      provider.notesstringNotes!
      provider.passwordstring
      maximum-length: 50
      The password programmed on the device used to ensure the system is the only client authorized to make changes.
      provider.phoneNumberuint64?The phone number of this device.
      provider.pndstring
      maximum-length: 50
      The short-name of the kind of PND attached to this device. Leave blank if none.
      provider.scriptLastdatetimeA timestamp from when the script status was updated by a User or a Provider.
      provider.scriptStatusProvisioningStatusThe system's progress of updating the device's programming.
      provider.simstringICCID of the SIM card installed in this provider
      provider.snfObject.<string, string>Store-and-forward information like last sequence number of SnF window
      provider.vArray.<int32>
      fixed count: 2
      Object version keys used to validate synchronization for all object properties.
      provider.v[0]int32The first element is for the general properties
      provider.v[1]int32The first element is for the advanced properties
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProviderResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"provider": {
      		"asset": number,
      		"attributes": {
      			string: {
      				string: {
      					"dts": string,
      					"unit": string,
      					"value": Object
      				}
      			}
      		},
      		"company": number,
      		"configuration": number,
      		"firmware": string,
      		"firmwareStatus": string,
      		"geofenceLast": string,
      		"geofenceStatus": string,
      		"id": string,
      		"information": {
      			string: string
      		},
      		"kind": string,
      		"lastCheckIn": string,
      		"lastIP": string,
      		"name": string,
      		"notes": string,
      		"password": string,
      		"phoneNumber": number,
      		"pnd": string,
      		"scriptLast": string,
      		"scriptStatus": string,
      		"sim": string,
      		"snf": {
      			string: string
      		},
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a provider object, or it is invalid.
      3The provider object does not contain an id, or it is invalid.
      5You do not have permission to view this Provider.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      43The Provider was not found by its unique identifier.

      getProviderConfig

      Gets details of the specified Provider Config.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted Contact.
      providerConfigParamIdalwaysAn object to contain the "id" key.
      providerConfig.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getProviderConfig {
      	"includeDeleted": boolean,
      	"providerConfig": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerConfigProviderConfigThe requested ProviderConfig.
      providerConfig.companyuint64The company to which this configuration belongs.
      providerConfig.geofencesexpressionA search pattern used to filter which Places' geometry are used as geofences. Use null to disable. Use "*" to match all the Places the Provider's Asset can match. Or use "#123456" or "label:term" like other Place search patterns.
      providerConfig.iduint64Unique identifier of this configuration.
      providerConfig.namestring
      maximum-length: 100
      The nickname given to this configuration
      providerConfig.notesstringSimple details about how the providers are expected to behave.
      providerConfig.parametersObject.<string, string>The list of defined variable name/value pairs that the script requires.
      providerConfig.scriptuint64The script which this configuration implements.
      providerConfig.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProviderConfigResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerConfig": {
      		"company": number,
      		"geofences": string,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"parameters": {
      			string: string
      		},
      		"script": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a providerConfig object, or it is invalid.
      3The providerConfig object does not contain an id, or it is invalid.
      5You do not have permission to view this ProviderConfig.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      26The ProviderConfig was not found by its unique identifier.

      getProviderConfigsList

      Gets the list of ProviderConfigs for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getProviderConfigsList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of ProviderConfigs belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerConfigsArray.<ProviderConfig>The list of reqested ProviderConfigs.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProviderConfigsListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerConfigs": [
      		{
      			"company": number,
      			"geofences": string,
      			"id": number,
      			"name": string,
      			"notes": string,
      			"parameters": {
      				string: string
      			},
      			"script": number,
      			"v": [
      				number
      			]
      		}
      	],
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view this Company.
      5You do not have permission to view ProviderConfigs for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getProviderConfigType

      Gets details of the specified ProviderConfigurationType.
      Request message description
      PropertyTypeRequiredDescription
      providerConfigurationTypeParamIdalwaysAn object to contain the "id" of the ProviderConfigurationType.
      providerConfigurationType.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getProviderConfigType {
      	"providerConfigurationType": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerConfigurationType
      Deprecated
      ProviderConfigurationTypeThe requested ProviderConfigurationTypes.
      Use ProviderScript instead.
      providerConfigurationType.geofenceTypesArray.<PlaceType>A list of supported types of geofences which can be programmed directly onto the device.
      providerConfigurationType.iduint64Unique identifier.
      providerConfigurationType.maxGeofenceCountuint32The maximum number of geofences that can be programmed onto a device. This number changes based on device make and model, and can also change based on the supported geofence types.
      providerConfigurationType.minGeofenceCountuint32The minimum number of geofences that need to be programmed onto the device. This value is almost always zero.
      providerConfigurationType.namestring
      maximum-length: 100
      Name of the configuration type.
      providerConfigurationType.notesstringNotes regarding the use of this configuration.
      providerConfigurationType.providerTypeProviderTypeThe applicable type of provider for which this configuration type can be created.
      providerConfigurationType.scriptOptionsObject.<string, ProviderConfigurationNode>A tree-structure of configurations required (or optionally available) for programming a device.
      providerConfigurationType.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProviderConfigTypeResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerConfigurationType": {
      		"geofenceTypes": [
      			string
      		],
      		"id": number,
      		"maxGeofenceCount": number,
      		"minGeofenceCount": number,
      		"name": string,
      		"notes": string,
      		"providerType": string,
      		"scriptOptions": {
      			string: {
      				"id": string,
      				"isAdvanced": boolean,
      				"max": Object,
      				"min": Object,
      				"nodes": {
      					string: { /* recursive ProviderConfigurationNode objects */ }
      				},
      				"notes": string,
      				"type": string,
      				"unit": string,
      				"value": Object
      			}
      		},
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a providerConfigurationType object, or it is invalid.
      3The providerConfigurationType object does not contain an id, or it is invalid.
      5You do not have permission to view ProviderConfigurationTypes.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      47The ProviderConfigurationType was not found by its unique identifier.

      getProviderConfigTypesList

      Lists all the ProviderConfigurationTypes in the system.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getProviderConfigTypesList {
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerConfigurationTypesArray.<ProviderConfigurationType>The list of requested ProviderConfigurationTypes.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProviderConfigTypesListResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerConfigurationTypes": [
      		{
      			"geofenceTypes": [
      				string
      			],
      			"id": number,
      			"maxGeofenceCount": number,
      			"minGeofenceCount": number,
      			"name": string,
      			"notes": string,
      			"providerType": string,
      			"scriptOptions": {
      				string: {
      					"id": string,
      					"isAdvanced": boolean,
      					"max": Object,
      					"min": Object,
      					"nodes": {
      						string: { /* recursive ProviderConfigurationNode objects */ }
      					},
      					"notes": string,
      					"type": string,
      					"unit": string,
      					"value": Object
      				}
      			},
      			"v": [
      				number
      			]
      		}
      	],
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      5You do not have permission to view ProviderConfigurationTypes.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.

      getProviderConfiguration

      Gets details of the specified ProviderConfiguration.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted ProviderConfiguration.
      providerConfigurationParamIdalwaysAn object to contain the "id" key.
      providerConfiguration.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getProviderConfiguration {
      	"includeDeleted": boolean,
      	"providerConfiguration": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerConfiguration
      Deprecated
      ProviderConfigurationThe requested ProviderConfiguration.
      Use ProviderConfig instead.
      providerConfiguration.companyuint64The company to which this configuration belongs.
      providerConfiguration.geofencesArray.<uint64>List of Places loaded directly onto the provider.
      providerConfiguration.iduint64Unique identifier of this configuration.
      providerConfiguration.namestring
      maximum-length: 100
      The nickname given to this configuration
      providerConfiguration.notesstringSimple details about how the providers are expected to behave.
      providerConfiguration.scriptParametersObject.<string, Object>The list of defined variables given to the logic type's options pairs for the logic type requires.
      providerConfiguration.typeuint64The logic type which this configuration implements.
      providerConfiguration.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProviderConfigurationResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerConfiguration": {
      		"company": number,
      		"geofences": [
      			number
      		],
      		"id": number,
      		"name": string,
      		"notes": string,
      		"scriptParameters": {
      			string: Object
      		},
      		"type": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a providerConfiguration object, or it is invalid.
      3The providerConfiguration object does not contain an id, or it is invalid.
      5You do not have permission to view this ProviderConfiguration.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      26The ProviderConfiguration was not found by its unique identifier.

      getProviderConfigurationsList

      Gets the list of ProviderConfigurations for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getProviderConfigurationsList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerConfigurationsArray.<ProviderConfiguration>The list of reqested ProviderConfigurations.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProviderConfigurationsListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerConfigurations": [
      		{
      			"company": number,
      			"geofences": [
      				number
      			],
      			"id": number,
      			"name": string,
      			"notes": string,
      			"scriptParameters": {
      				string: Object
      			},
      			"type": number,
      			"v": [
      				number
      			]
      		}
      	],
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view this Company.
      5You do not have permission to view ProviderConfigurations for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getProviderRegistration

      Gets details of the specified ProviderRegistration.
      Request message description
      PropertyTypeRequiredDescription
      providerRegistrationParamCodealwaysAn object to contain the "id" of the provider.
      providerRegistration.codestringalwaysA "code" identifying a resource.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getProviderRegistration {
      	"providerRegistration": {
      		"code": string
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerRegistrationProviderRegistrationThe requested provider.
      providerRegistration.assetuint64?The Asset for which this device will provide data.
      providerRegistration.codestring
      fixed length: 6
      A unique six digit code.
      providerRegistration.companyuint64The company to which the device will belong.
      providerRegistration.completeddatetimeDate/time stamp of when this registration ended successfully.
      providerRegistration.configuint64The predefined configuration this device will use.
      providerRegistration.expiresdatetimeThe expiry date for this registration.
      providerRegistration.identifierstring
      maximum-length: 50
      The unique identifier of the device that completed this registration.
      providerRegistration.kindProviderTypeThe kind of protocol this device supports.
      providerRegistration.namestring
      maximum-length: 100
      A nickname given to the device once it has been provisioned.
      providerRegistration.notesstringNotes!
      providerRegistration.passwordstring
      maximum-length: 50
      The password programmed on the device used to ensure the system is the only client authorized to make changes.
      providerRegistration.phoneNumberuint64?The phone number of the device being provisioned. This is set by the user for long-term registrations, or by the client during serial port setup.
      providerRegistration.sincedatetimeDate/time stamp of when this registration began.
      providerRegistration.useremail
      maximum-length: 254
      The unique identifier the user who generated this registration.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProviderRegistrationResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerRegistration": {
      		"asset": number,
      		"code": string,
      		"company": number,
      		"completed": string,
      		"config": number,
      		"expires": string,
      		"identifier": string,
      		"kind": string,
      		"name": string,
      		"notes": string,
      		"password": string,
      		"phoneNumber": number,
      		"since": string,
      		"user": string
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a providerRegistration object, or it is invalid.
      3The providerRegistration code is not an integer or is less than zero.
      5You do not have access to the ProviderConfig/ProviderConfigurations.
      5You do not have access to view Providers.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      86The code is valid, but the ProviderRegistration was not found.

      getProviderRegistrationsList

      Gets the list of ProviderRegistrations for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Companyv.
      company.iduint64alwaysIdentifier given as input for the command.
      highestint32?optionalThe maximum ProviderRegistration.code when listing from the database.
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestint32?optionalThe minimum ProviderRegistration.code when listing from the database.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getProviderRegistrationsList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of providers belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerRegistrationsArray.<ProviderRegistration>The list of ProviderRegistrations.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProviderRegistrationsListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerRegistrations": [
      		{
      			"asset": number,
      			"code": string,
      			"company": number,
      			"completed": string,
      			"config": number,
      			"expires": string,
      			"identifier": string,
      			"kind": string,
      			"name": string,
      			"notes": string,
      			"password": string,
      			"phoneNumber": number,
      			"since": string,
      			"user": string
      		}
      	],
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company object, or it is invalid.
      3The company id is not an integer or is less than zero.
      5You do not have access to the ProviderConfigs/ProviderConfigurations.
      5You do not have access to view Providers.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company value is valid, but could not be found.

      getProviderRegistrationsListByKind

      Gets the list of ProviderRegistrations for the specified ProviderType.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Companyv.
      company.iduint64alwaysIdentifier given as input for the command.
      highestint32?optionalThe maximum ProviderRegistration.code when listing from the database.
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      kindProviderType?optionalThe type of ProviderRegistrations to list.
      limituint16?optionalMaximum number of objects in this response.
      lowestint32?optionalThe minimum ProviderRegistration.code when listing from the database.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getProviderRegistrationsListByKind {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"kind": string,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of providers belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      kindProviderType?The type of ProviderRegistrations being listed.
      messagestringAn English description of the error.
      providerRegistrationsArray.<ProviderRegistration>The list of ProviderRegistrations.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProviderRegistrationsListByKindResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"kind": string,
      	"message": string,
      	"providerRegistrations": [
      		{
      			"asset": number,
      			"code": string,
      			"company": number,
      			"completed": string,
      			"config": number,
      			"expires": string,
      			"identifier": string,
      			"kind": string,
      			"name": string,
      			"notes": string,
      			"password": string,
      			"phoneNumber": number,
      			"since": string,
      			"user": string
      		}
      	],
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company object, or it is invalid.
      3The company id is not an integer or is less than zero.
      3The specified kind is not valid.
      5You do not have access to the ProviderConfigs/ProviderConfigurations.
      5You do not have access to view Providers.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company value is valid, but could not be found.

      getProviderScript

      Gets details of the specified ProviderScript.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted ProviderScript.
      providerScriptParamIdalwaysAn object to contain the "id" of the ProviderScript.
      providerScript.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getProviderScript {
      	"includeDeleted": boolean,
      	"providerScript": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerScriptProviderScriptThe requested ProviderScript.
      providerScript.blocksArray.<ProviderScriptBlock>Blocks of file data which are (optionally) included in the script data file.
      providerScript.companyuint64The company to which this configuration belongs.
      providerScript.fillcolour
      maximum-length: 22
      The fill/background colour of the icon.
      providerScript.globalbooleanIndicates whether this script is available to child companies.
      providerScript.graphiccodified
      maximum-length: 22
      The name of the symbol for this script.
      providerScript.iduint64Unique identifier of this configuration.
      providerScript.kindProviderTypeThe type of provider for which this script can be used. Limiting to a specific model from a manufacturer is accomplished through the block conditions.
      providerScript.namestring
      maximum-length: 100
      The nickname given to this configuration
      providerScript.notesstringSimple details about how the providers are expected to behave.
      providerScript.parametersObject.<string, ProviderScriptParameter>Parameter definitions for this script, including type-hints and default values.
      providerScript.strokecolour
      maximum-length: 22
      Outline and graphic colour.
      providerScript.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProviderScriptResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerScript": {
      		"blocks": [
      			{
      				"condition": string,
      				"content": string,
      				"replace": string,
      				"validate": string
      			}
      		],
      		"company": number,
      		"fill": string,
      		"global": boolean,
      		"graphic": string,
      		"id": number,
      		"kind": string,
      		"name": string,
      		"notes": string,
      		"parameters": {
      			string: {
      				"advanced": boolean,
      				"context": string,
      				"notes": string,
      				"order": number,
      				"type": string,
      				"value": string
      			}
      		},
      		"stroke": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a providerScript object, or it is invalid.
      3The providerScript object does not contain an id, or it is invalid.
      5You do not have permission to view this ProviderScript.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      102The ProviderScript was not found by its unique identifier.

      getProviderScriptsList

      Gets the list of ProviderScripts for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      treebooleanoptionaltrueWhen true (default) the getter to retrieve the given Company's list of ProviderScripts as well as any publicly available ProviderScripts for the Company's parent(s).
      Request message structure
      getProviderScriptsList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number,
      	"tree": boolean
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of ProviderScripts belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerScriptsArray.<ProviderScript>The list of requested ProviderScripts.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProviderScriptsListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerScripts": [
      		{
      			"blocks": [
      				{
      					"condition": string,
      					"content": string,
      					"replace": string,
      					"validate": string
      				}
      			],
      			"company": number,
      			"fill": string,
      			"global": boolean,
      			"graphic": string,
      			"id": number,
      			"kind": string,
      			"name": string,
      			"notes": string,
      			"parameters": {
      				string: {
      					"advanced": boolean,
      					"context": string,
      					"notes": string,
      					"order": number,
      					"type": string,
      					"value": string
      				}
      			},
      			"stroke": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view ProviderScripts for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getProvidersList

      Gets the list of Providers for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      firststringoptional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      includeSuspendedbooleanoptionaltrueWhen true, the command will also return suspended Providers.
      laststringoptional
      limituint16?optionalMaximum number of objects in this response.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getProvidersList {
      	"company": {
      		"id": number
      	},
      	"first": string,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"includeSuspended": boolean,
      	"last": string,
      	"limit": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of Providers belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providersArray.<Provider>The list of requested Providers.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProvidersListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providers": [
      		{
      			"asset": number,
      			"attributes": {
      				string: {
      					string: {
      						"dts": string,
      						"unit": string,
      						"value": Object
      					}
      				}
      			},
      			"company": number,
      			"configuration": number,
      			"firmware": string,
      			"firmwareStatus": string,
      			"geofenceLast": string,
      			"geofenceStatus": string,
      			"id": string,
      			"information": {
      				string: string
      			},
      			"kind": string,
      			"lastCheckIn": string,
      			"lastIP": string,
      			"name": string,
      			"notes": string,
      			"password": string,
      			"phoneNumber": number,
      			"pnd": string,
      			"scriptLast": string,
      			"scriptStatus": string,
      			"sim": string,
      			"snf": {
      				string: string
      			},
      			"v": [
      				number
      			]
      		}
      	],
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view Providers for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getProvidersListByConfiguration

      Gets the list of Providers for the specified ProviderConfig or ProviderConfiguration.
      Request message description
      PropertyTypeRequiredDefaultDescription
      firststringoptional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      includeSuspendedbooleanoptionaltrueWhen true, the command will also return suspended Providers.
      laststringoptional
      limituint16?optionalMaximum number of objects in this response.
      providerConfigParamIdalwaysAn object to contain the "id" of the ProviderConfig/ProviderConfiguration.
      providerConfig.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getProvidersListByConfiguration {
      	"first": string,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"includeSuspended": boolean,
      	"last": string,
      	"limit": number,
      	"providerConfig": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerConfigRespIdCompanyAn object to contain the "id" of the ProviderConfig/ProviderConfiguration to which the array of Providers belong.
      providerConfig.companyuint64Identifier of the Company to which this object belongs.
      providerConfig.iduint64?Identifier given as input for the command.
      providersArray.<Provider>The list of requested Providers.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getProvidersListByConfigurationResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerConfig": {
      		"company": number,
      		"id": number
      	},
      	"providers": [
      		{
      			"asset": number,
      			"attributes": {
      				string: {
      					string: {
      						"dts": string,
      						"unit": string,
      						"value": Object
      					}
      				}
      			},
      			"company": number,
      			"configuration": number,
      			"firmware": string,
      			"firmwareStatus": string,
      			"geofenceLast": string,
      			"geofenceStatus": string,
      			"id": string,
      			"information": {
      				string: string
      			},
      			"kind": string,
      			"lastCheckIn": string,
      			"lastIP": string,
      			"name": string,
      			"notes": string,
      			"password": string,
      			"phoneNumber": number,
      			"pnd": string,
      			"scriptLast": string,
      			"scriptStatus": string,
      			"sim": string,
      			"snf": {
      				string: string
      			},
      			"v": [
      				number
      			]
      		}
      	],
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a providerConfig object, or it is invalid.
      3The providerConfig object does not contain an id, or it is invalid.
      5You do not have permission to view Providers for this ProviderConfig/ProviderConfiguration.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      48Could not find a ProviderConfig or ProviderConfiguration by the given identifier.

      mergeProvider

      Creates a new, or updates an existing Provider.
      Request message description
      PropertyTypeRequiredDescription
      providerObject.<string, ?>alwaysA simple object to contain the Provider parameters.
      provider.assetuint64?optionalA reference to the Asset with which to provide events.
      provider.configuint64?createIdentifier of the ProviderConfig/ProviderConfiguration this Provider will use.
      provider.idstringalwaysUnique identifier of the Provider.
      provider.kindProviderType?createThe type of Provider.
      provider.namestring
      maximum-length: 100
      createA name for the Provider.
      provider.notesstringoptionalNotes for this Provider.
      provider.passwordstringoptionalThe password required to communicate and program this Provider.
      provider.phoneuint64?optionalThe phone number this Provider uses (if known).
      provider.pndstringoptionalThe name of the Personal Navigation Device connected to this Provider.
      provider.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeProvider {
      	"provider": {
      		"asset": number,
      		"config": number,
      		"id": string,
      		"kind": string,
      		"name": string,
      		"notes": string,
      		"password": string,
      		"phone": number,
      		"pnd": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerRespIdendifierCompanyAn object which contains the "id" and "company" keys when there is no error.
      provider.companyuint64Identifier of the Company to which this object belongs.
      provider.idstringIdentifier given as input for the command.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeProviderResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"provider": {
      		"company": number,
      		"id": string
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The id was an invalid value.
      3A name was given, but the value is blank or white-space only.
      3During create: When creating a new Provider, a name was not given.
      3During create: When creating a new Provider, a company was not given.
      3During create: When creating a new Provider, a kind was not given.
      3During create: When creating a new Provider, a configuration was not given.
      3During update: When updating a Provider, the name was given as null or blank.
      3During update: When updating a Provider, the v was not an array, or contained too few numbers.
      3During update: Not enough data was given to perform a change.
      3The kind value was given, but it is not a valid member of the enum.
      Returns an ErrorDetailEnum as the errorDetails..
      3The phone value was given, but it is not an integer.
      Returns an ErrorDetailPhone as the errorDetails..
      5You do not have permission to create Providers in the given company.
      5You do not have permission to the Asset for which this Provider is currently providing events.
      5You do not have permission to the Asset specified for this Provider to provide events.
      5You do not have permission to change ProviderConfigs/ProviderConfigurations.
      5During update: The specified ProviderConfig/ProviderConfiguration belongs to a different Company and you do not have permission to delete the Provider from its current Company.
      5During update: The specified ProviderConfig/ProviderConfiguration belongs to a different Company and you do not have permission to create the Provider in the new Company.
      6During update: When updating a Provider, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The specified Asset was not found.
      43The Provider you are trying to update was not found.
      44The command values are set to create a new Provider, but a Provider of the given id already exists.
      47The specified ProviderConfigurationType was not found.
      If you receive this error, please contact technical support.
      48The specified ProviderConfig/ProviderConfiguration was not found.
      98During update: When updating a Provider, the Provider is suspended. Before making changes to a Provider, it must be reactivated.
      102The specified ProviderScript was not found.
      If you receive this error, please contact technical support.
      130The specified ProviderConfig/ProviderConfiguration if for a different ProviderType.
      130The specified Asset belongs to a different Company.
      130The specified ProviderConfig/ProviderConfiguration belongs to a different Company and the Asset was not null (and not set to null or an asset from the new company).
      130During update: The Provider's provider.kind can not be changed after it is created.

      mergeProviderConfig

      Creates a new or updates an existing ProviderConfig.
      Request message description
      PropertyTypeRequiredDescription
      providerConfigObject.<string, ?>alwaysA simple object to contain the ProviderConfig parameters.
      providerConfig.companyuint64?createThe Company to which the ProviderConfig belongs.
      providerConfig.geofencesexpressionoptionalA search pattern used to filter which Places' geometry are used as geofences. Use null or blank string to disable. Use "*" to match all the Places the Provider's Asset can match. Or use "#123456" or "label:term" like other Place search patterns.
      providerConfig.iduint64?updateThe unique identifier of the ProviderConfig you want to update.
      providerConfig.namestring
      maximum-length: 100
      createName for the ProviderConfig.
      providerConfig.notesstringoptionalNotes for the ProviderConfig.
      providerConfig.parametersObject.<string, string>optionalThe values needed to implement the script. Each key in this object is the name of a required script variable.
      providerConfig.scriptuint64?createThe ProviderScript to the ProviderConfig implements. After creation, this value is read-only.
      providerConfig.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeProviderConfig {
      	"providerConfig": {
      		"company": number,
      		"geofences": string,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"parameters": {
      			string: string
      		},
      		"script": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerConfigRespIdScriptAn object which contains the "id", "company", and "script" keys when there is no error.
      providerConfig.companyuint64Identifier of the Company to which this object belongs.
      providerConfig.iduint64?Identifier given as input for the command.
      providerConfig.scriptuint64Identifier of the script to which this object belongs.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeProviderConfigResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerConfig": {
      		"company": number,
      		"id": number,
      		"script": number
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a providerConfig object, or it is invalid.
      3Not enough keys exist in the providerConfig object.
      3During create: When creating a new ProviderConfig, a name was not given, or it is invalid.
      3During create: When creating a new ProviderConfig, a company was not given.
      3During create: When creating a new ProviderConfig, a script was not given.
      3During update: When updating a ProviderConfig, the id was invalid.
      3During update: When updating a ProviderConfig, the name was given as blank.
      3During update: When updating a ProviderConfig, the v was not an array, or contained too few numbers.
      3One of the providerConfig.parameters was invalid.
      Returns an ErrorDetailBadKeys as the errorDetails..
      3One of the providerConfig.parameters keys was blank or white-space.
      Returns an ErrorDetailInput as the errorDetails..
      5You do not have permission to create a new ProviderConfig.
      5You do not have permission to update this ProviderConfig.
      6During update: When updating a ProviderConfig, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      48During update: The ProviderConfig was not found by its unique identifier.
      102The ProviderScript was not found by its unique identifier.
      102The ProviderScript was found, but does not belong in the target company's tree.
      130There is one or more missing or invalid providerConfig.parameters required by the ProviderScript.
      130During update: When updating a ProviderConfig, the providerConfig.script can not be changed.
      130During update: When updating a ProviderConfig, the providerConfig.company can not be changed.

      mergeProviderConfiguration

      Creates a new or updates an existing ProviderConfiguration.
      Request message description
      PropertyTypeRequiredDescription
      providerConfigurationObject.<string, ?>alwaysA simple object to contain the ProviderConfiguration parameters.
      providerConfiguration.companyuint64?createThe Company to which the ProviderConfiguration belongs.
      providerConfiguration.geofencesArray.<uint64>
      for values see: Place.id
      optionalA list of Places whose shape is programmed directly onto Providers to raise instant boundary events.
      providerConfiguration.iduint64?updateThe unique identifier of the ProviderConfiguration you want to update.
      providerConfiguration.namestring
      maximum-length: 100
      createName for the ProviderConfiguration.
      providerConfiguration.notesstringoptionalNotes for the ProviderConfiguration.
      providerConfiguration.scriptParametersObject.<string, Object>optionalThe values needed to implement the ProviderConfigurationType. Each key in this object is the identifier of a required ProviderConfigurationNode. This command does not support patch semantics; all keys must be sent if any are sent.
      providerConfiguration.typeuint64?createThe ProviderConfigurationType that the ProviderConfiguration implements. After creation, this value is read-only.
      providerConfiguration.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeProviderConfiguration {
      	"providerConfiguration": {
      		"company": number,
      		"geofences": [
      			number
      		],
      		"id": number,
      		"name": string,
      		"notes": string,
      		"scriptParameters": {
      			string: Object
      		},
      		"type": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerConfigurationRespIdScriptAn object which contains the "id", "company", and "script" keys when there is no error.
      providerConfiguration.companyuint64Identifier of the Company to which this object belongs.
      providerConfiguration.iduint64?Identifier given as input for the command.
      providerConfiguration.scriptuint64Identifier of the script to which this object belongs.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeProviderConfigurationResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerConfiguration": {
      		"company": number,
      		"id": number,
      		"script": number
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a providerConfiguration object, or it is invalid.
      3Not enough keys exist in the providerConfiguration object.
      3During create: When creating a new ProviderConfiguration, a name was not given, or it is invalid.
      3During create: When creating a new ProviderConfiguration, a company was not given.
      3During create: When creating a new ProviderConfiguration, a type was not given.
      3During update: When updating a ProviderConfiguration, the id was invalid.
      3During update: When updating a ProviderConfiguration, the name was given as blank.
      3During update: When updating a ProviderConfiguration, the v was not an array, or contained too few numbers.
      3One of the providerConfiguration.scriptParameters was invalid.
      Returns an ErrorDetailBadKeys as the errorDetails..
      3There is one or more missing or invalid providerConfiguration.scriptParameters required by the ProviderConfigurationType.
      Returns an ErrorDetailBadKeys as the errorDetails..
      3One or more of the providerConfiguration.geofences Places were not a supported shape.
      Returns an ErrorDetailExternals as the errorDetails..
      3One of the providerConfiguration.scriptParameters keys was blank or white-space.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the providerConfiguration.geofences values was not a valid number.
      Returns an ErrorDetailInput as the errorDetails..
      5You do not have permission to create a new ProviderConfiguration.
      5You do not have permission to update this ProviderConfiguration.
      5You do not have permission to one or more Places specified as a providerConfiguration.geofences value.
      6During update: When updating a ProviderConfiguration, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      42One or more of the providerConfiguration.geofences Places were not found by its unique identifier.
      47During create: The ProviderConfigurationType was not found by its unique identifier.
      48During update: The ProviderConfiguration was not found by its unique identifier.
      51One or more of the providerConfiguration.scriptParameters or providerConfiguration.geofences values was invalid.
      Returns an ErrorDetailExternals as the errorDetails..
      130During update: When updating a ProviderConfiguration, the providerConfiguration.company can not be changed.
      130During update: When updating a ProviderConfiguration, the providerConfiguration.type can not be changed.

      mergeProviderRegistration

      Creates a new ProviderRegistration for a provider pending configuration.
      Request message description
      PropertyTypeRequiredDescription
      providerRegistrationObject.<string, ?>alwaysA simple object to contain the ProviderRegistration parameters.
      providerRegistration.assetuint64?optionalAn optional Asset to which the new Provider will be assigned.
      providerRegistration.configuint64createThe identifier of the ProviderConfig/ProviderConfiguration that will be loaded onto the new Provider.
      providerRegistration.identifierstring
      maximum-length: 50
      optionalIdentifier of the Provider to setup. This is helpful for long-term deployments, but will be overwritten during provisioning.
      providerRegistration.lifetimetimespanoptionalThe lifetime of the ProviderRegistration. The default value (if not specified) is 10 minutes. It can be specified as up to 2 months to allow for longer deployments.
      providerRegistration.namestring
      maximum-length: 100
      optionalA nickname given to the Provider once it has been provisioned.
      providerRegistration.notesstringoptionalNotes about the Provider for after it's been programmed.
      providerRegistration.passwordstring
      maximum-length: 50
      optionalThe password programmed on the Provider used to ensure the system is the only client authorized to make changes.
      providerRegistration.phoneuint64?optionalIf known beforehand, a phone number can be specified for new Providers.
      providerRegistration.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeProviderRegistration {
      	"providerRegistration": {
      		"asset": number,
      		"config": number,
      		"identifier": string,
      		"lifetime": string,
      		"name": string,
      		"notes": string,
      		"password": string,
      		"phone": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerRegistrationProviderRegistrationThe complete ProviderRegistration object.
      providerRegistration.assetuint64?The Asset for which this device will provide data.
      providerRegistration.codestring
      fixed length: 6
      A unique six digit code.
      providerRegistration.companyuint64The company to which the device will belong.
      providerRegistration.completeddatetimeDate/time stamp of when this registration ended successfully.
      providerRegistration.configuint64The predefined configuration this device will use.
      providerRegistration.expiresdatetimeThe expiry date for this registration.
      providerRegistration.identifierstring
      maximum-length: 50
      The unique identifier of the device that completed this registration.
      providerRegistration.kindProviderTypeThe kind of protocol this device supports.
      providerRegistration.namestring
      maximum-length: 100
      A nickname given to the device once it has been provisioned.
      providerRegistration.notesstringNotes!
      providerRegistration.passwordstring
      maximum-length: 50
      The password programmed on the device used to ensure the system is the only client authorized to make changes.
      providerRegistration.phoneNumberuint64?The phone number of the device being provisioned. This is set by the user for long-term registrations, or by the client during serial port setup.
      providerRegistration.sincedatetimeDate/time stamp of when this registration began.
      providerRegistration.useremail
      maximum-length: 254
      The unique identifier the user who generated this registration.
      registration
      Deprecated
      ProviderRegistration
      Use providerRegistration instead..
      registration.assetuint64?The Asset for which this device will provide data.
      registration.codestring
      fixed length: 6
      A unique six digit code.
      registration.companyuint64The company to which the device will belong.
      registration.completeddatetimeDate/time stamp of when this registration ended successfully.
      registration.configuint64The predefined configuration this device will use.
      registration.expiresdatetimeThe expiry date for this registration.
      registration.identifierstring
      maximum-length: 50
      The unique identifier of the device that completed this registration.
      registration.kindProviderTypeThe kind of protocol this device supports.
      registration.namestring
      maximum-length: 100
      A nickname given to the device once it has been provisioned.
      registration.notesstringNotes!
      registration.passwordstring
      maximum-length: 50
      The password programmed on the device used to ensure the system is the only client authorized to make changes.
      registration.phoneNumberuint64?The phone number of the device being provisioned. This is set by the user for long-term registrations, or by the client during serial port setup.
      registration.sincedatetimeDate/time stamp of when this registration began.
      registration.useremail
      maximum-length: 254
      The unique identifier the user who generated this registration.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeProviderRegistrationResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerRegistration": {
      		"asset": number,
      		"code": string,
      		"company": number,
      		"completed": string,
      		"config": number,
      		"expires": string,
      		"identifier": string,
      		"kind": string,
      		"name": string,
      		"notes": string,
      		"password": string,
      		"phoneNumber": number,
      		"since": string,
      		"user": string
      	},
      	"registration": {
      		"asset": number,
      		"code": string,
      		"company": number,
      		"completed": string,
      		"config": number,
      		"expires": string,
      		"identifier": string,
      		"kind": string,
      		"name": string,
      		"notes": string,
      		"password": string,
      		"phoneNumber": number,
      		"since": string,
      		"user": string
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2The service was not abe to generate a unique code.
      If you receive this error, please contact technical support.
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a providerRegistration object, or it is invalid.
      3The providerRegistration.config value is not an integer.
      3The providerRegistration.asset value was given, but it is not an integer.
      3The lifetime value was given and valid, but was too long of a time-span.
      Returns an ErrorDetailInput as the errorDetails..
      3The phone value was given, but it is not an integer.
      Returns an ErrorDetailPhone as the errorDetails..
      5You do not have access to the ProviderConfigs/ProviderConfigurations.
      5You do not have access to create new Provider.
      5You do not have access to the Asset being associated.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      20The specified Asset was not found.
      47The specified ProviderConfiguration is invalid.
      If you receive this error, please contact technical support.
      48The specified ProviderConfig/ProviderConfiguration was not found.
      102The specified ProviderConfig is invalid.
      If you receive this error, please contact technical support.
      130The specified Asset was found, but was not in the same Company as the given ProviderConfig/ProviderConfiguration.

      mergeProviderScript

      Creates a new or updates an existing ProviderScript.
      Request message description
      PropertyTypeRequiredDescription
      providerScriptObject.<string, ?>alwaysA simple object to contain the ProviderScript parameters.
      providerScript.blocksArray.<ProviderScriptBlock>
      minimum-count of values: 1
      createBlocks of file data which are (optionally) included in the ProviderScript data file.
      providerScript.companyuint64?createThe Company to which this ProviderScript belongs. After creation, this value is read-only.
      providerScript.fillstringoptionalBackground and fill colour in the UI.
      providerScript.globalbooleanoptionalIndicates whether this ProviderScript is available to child companies.
      providerScript.graphicstringoptionalThe name of the symbol shown in the UI.
      providerScript.iduint64?updateThe unique identifier of the ProviderScript you want to update.
      providerScript.kindProviderType?createThe type of provider for which this ProviderScript can be used. Limiting to a specific model from a manufacturer is accomplished through the block conditions.
      providerScript.namestring
      maximum-length: 100
      optionalName for the ProviderScript.
      providerScript.notesstringoptionalNotes for the ProviderScript.
      providerScript.parametersObject.<string, ProviderScriptParameter>optionalParameter definitions for this ProviderScript, including type-hints and default values.
      providerScript.strokestringoptionalText and outline colour in the UI.
      providerScript.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeProviderScript {
      	"providerScript": {
      		"blocks": [
      			{
      				"condition": string,
      				"content": string,
      				"replace": string,
      				"validate": string
      			}
      		],
      		"company": number,
      		"fill": string,
      		"global": boolean,
      		"graphic": string,
      		"id": number,
      		"kind": string,
      		"name": string,
      		"notes": string,
      		"parameters": {
      			string: {
      				"advanced": boolean,
      				"context": string,
      				"notes": string,
      				"order": number,
      				"type": string,
      				"value": string
      			}
      		},
      		"stroke": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerScriptRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
      providerScript.companyuint64Identifier of the Company to which this object belongs.
      providerScript.iduint64?Identifier given as input for the command.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeProviderScriptResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerScript": {
      		"company": number,
      		"id": number
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a providerScript object, or it is invalid.
      3Not enough keys exist in the providerScript object.
      3The given kind was not valid ProviderType.
      3During create: When creating a new ProviderScript, a name was not given, or it is invalid.
      3During create: When creating a new ProviderScript, a company was not given.
      3During create: When creating a new ProviderScript, a kind was not given, or it is invalid.
      3During create: When creating a new ProviderScript, at least one block must be given.
      3During update: When updating a ProviderScript, the id was invalid.
      3During update: When updating a ProviderScript, the name was given as blank.
      3During update: When updating a ProviderScript, the v was not an array, or contained too few numbers.
      3One of the providerScript.blocks was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the providerScript.blocks replace value was not a valid regular expression.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the providerScript.parameters was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the providerScript.parameters keys was blank or white-space.
      Returns an ErrorDetailInput as the errorDetails..
      5You do not have permission to create a new ProviderScript.
      5You do not have permission to update this ProviderScript.
      6During update: When updating a ProviderScript, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      102During update: The ProviderScript was not found by its unique identifier.
      104During update: When updating a ProviderScript which is marked as global, but is being set as private, but is implemented by ProviderConfigs from child companies.
      Returns an ErrorDetailCount as the errorDetails..
      130During update: When updating a ProviderScript, the providerScript.company can not be changed.
      130During update: When updating a ProviderScript, the providerScript.kind can not be changed.
      130There is one or more missing parameters identified as variables in the providerScript.blocks.
      Returns an ErrorDetailBadKeys as the errorDetails..

      removeProvider

      Deletes the specified Provider from the system.
      Request message description
      PropertyTypeRequiredDescription
      providerParamIdentifieralwaysAn object to contain the "id" of the Provider.
      provider.idstringalwaysThe Provider's identifier.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeProvider {
      	"provider": {
      		"id": string
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerRespIdendifierDeletedAn object which contains the Provider's id, owning Company id, and deleted status.
      provider.companyuint64Identifier of the Company to which this object belongs.
      provider.deletedbooleanFlag showing if the object is deleted.
      provider.idstringIdentifier given as input for the command.
      provider.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeProviderResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"provider": {
      		"company": number,
      		"deleted": boolean,
      		"id": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a provider object, or it is invalid.
      3The provider object does not contain an id, or it is invalid.
      5You do not have permission to delete this Provider.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      43The Provider was not found by its unique identifier.

      removeProviderConfig

      Deletes a ProviderConfig.
      Request message description
      PropertyTypeRequiredDescription
      providerConfigParamIdalwaysAn object to contain the "id" key.
      providerConfig.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeProviderConfig {
      	"providerConfig": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerConfigRespDeletedAn object which contains the ProviderConfig's id, owning Company id, and deleted status.
      providerConfig.companyuint64Identifier of the Company to which this object belongs.
      providerConfig.deletedbooleanFlag showing if the object is deleted.
      providerConfig.iduint64?Identifier given as input for the command.
      providerConfig.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeProviderConfigResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerConfig": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a providerConfig object, or it is invalid.
      3The providerConfig object does not contain an id, or it is invalid.
      5You do not have permission to delete this ProviderConfig.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      48The ProviderConfig was not found by its unique identifier.

      removeProviderConfiguration

      Deletes a ProviderConfiguration.
      Request message description
      PropertyTypeRequiredDescription
      providerConfigurationParamIdalwaysAn object to contain the "id" key.
      providerConfiguration.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeProviderConfiguration {
      	"providerConfiguration": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerConfigurationRespDeletedAn object which contains the ProviderConfiguration's id, owning Company id, and deleted status.
      providerConfiguration.companyuint64Identifier of the Company to which this object belongs.
      providerConfiguration.deletedbooleanFlag showing if the object is deleted.
      providerConfiguration.iduint64?Identifier given as input for the command.
      providerConfiguration.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeProviderConfigurationResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerConfiguration": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a providerConfiguration object, or it is invalid.
      3The providerConfiguration object does not contain an id, or it is invalid.
      5You do not have permission to delete this ProviderConfiguration.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      48The ProviderConfiguration was not found by its unique identifier.

      removeProviderRegistration

      Gets details of the specified ProviderRegistration.
      Request message description
      PropertyTypeRequiredDescription
      providerRegistrationParamCodealwaysAn object to contain the "id" of the provider.
      providerRegistration.codestringalwaysA "code" identifying a resource.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeProviderRegistration {
      	"providerRegistration": {
      		"code": string
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerRegistrationProviderRegistrationThe requested provider.
      providerRegistration.assetuint64?The Asset for which this device will provide data.
      providerRegistration.codestring
      fixed length: 6
      A unique six digit code.
      providerRegistration.companyuint64The company to which the device will belong.
      providerRegistration.completeddatetimeDate/time stamp of when this registration ended successfully.
      providerRegistration.configuint64The predefined configuration this device will use.
      providerRegistration.expiresdatetimeThe expiry date for this registration.
      providerRegistration.identifierstring
      maximum-length: 50
      The unique identifier of the device that completed this registration.
      providerRegistration.kindProviderTypeThe kind of protocol this device supports.
      providerRegistration.namestring
      maximum-length: 100
      A nickname given to the device once it has been provisioned.
      providerRegistration.notesstringNotes!
      providerRegistration.passwordstring
      maximum-length: 50
      The password programmed on the device used to ensure the system is the only client authorized to make changes.
      providerRegistration.phoneNumberuint64?The phone number of the device being provisioned. This is set by the user for long-term registrations, or by the client during serial port setup.
      providerRegistration.sincedatetimeDate/time stamp of when this registration began.
      providerRegistration.useremail
      maximum-length: 254
      The unique identifier the user who generated this registration.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeProviderRegistrationResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerRegistration": {
      		"asset": number,
      		"code": string,
      		"company": number,
      		"completed": string,
      		"config": number,
      		"expires": string,
      		"identifier": string,
      		"kind": string,
      		"name": string,
      		"notes": string,
      		"password": string,
      		"phoneNumber": number,
      		"since": string,
      		"user": string
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a providerRegistration object, or it is invalid.
      3The providerRegistration code is not an integer or is less than zero.
      5You do not have access to the ProviderConfig/ProviderConfigurations.
      5You do not have access to create new Providers.
      5You do not have access to the associated Asset.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      86The code is valid, but the ProviderRegistration was not found, or has already been completed.

      removeProviderScript

      Deletes an existing ProviderScript.
      Request message description
      PropertyTypeRequiredDescription
      providerScriptParamIdalwaysAn object to contain the "id" of the ProviderScript.
      providerScript.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeProviderScript {
      	"providerScript": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerScriptRespDeletedAn object which contains the ProviderScript's id, owning company id, and deleted status.
      providerScript.companyuint64Identifier of the Company to which this object belongs.
      providerScript.deletedbooleanFlag showing if the object is deleted.
      providerScript.iduint64?Identifier given as input for the command.
      providerScript.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeProviderScriptResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerScript": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a providerScript object, or it is invalid.
      3The providerScript object does not contain an id, or it is invalid.
      5You do not have permission to delete this ProviderScript.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      102The ProviderScript was not found by its unique identifier.
      104This ProviderScript is still being used by one of more ProviderConfigs.
      Returns an ErrorDetailCount as the errorDetails..

      restoreProvider

      Restores a deleted Provider.
      Request message description
      PropertyTypeRequiredDescription
      providerParamIdentifieralwaysAn object to contain the "id" of the Provider.
      provider.idstringalwaysThe Provider's identifier.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreProvider {
      	"provider": {
      		"id": string
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerRespIdendifierDeletedAn object which contains the Provider's id, owning Company id, and deleted status.
      provider.companyuint64Identifier of the Company to which this object belongs.
      provider.deletedbooleanFlag showing if the object is deleted.
      provider.idstringIdentifier given as input for the command.
      provider.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreProviderResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"provider": {
      		"company": number,
      		"deleted": boolean,
      		"id": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a provider object, or it is invalid.
      3The provider object does not contain an id, or it is invalid.
      5You do not have permission to restore this Provider.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      43The Provider was not found by its unique identifier.
      44The Provider was found, but is not marked as deleted.

      restoreProviderConfig

      Restores a deleted ProviderConfig.
      Request message description
      PropertyTypeRequiredDescription
      providerConfigParamIdalwaysAn object to contain the "id" key.
      providerConfig.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreProviderConfig {
      	"providerConfig": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerConfigRespDeletedAn object which contains the ProviderConfig's id, owning Company id, and deleted status.
      providerConfig.companyuint64Identifier of the Company to which this object belongs.
      providerConfig.deletedbooleanFlag showing if the object is deleted.
      providerConfig.iduint64?Identifier given as input for the command.
      providerConfig.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreProviderConfigResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerConfig": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a providerConfig object, or it is invalid.
      3The providerConfig object does not contain an id, or it is invalid.
      5You do not have permission to restore this ProviderConfig.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      48The ProviderConfig was not found by its unique identifier.
      49The ProviderConfig was found, but is not marked as deleted.

      restoreProviderConfiguration

      Restores a deleted ProviderConfiguration.
      Request message description
      PropertyTypeRequiredDescription
      providerConfigurationParamIdalwaysAn object to contain the "id" key.
      providerConfiguration.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreProviderConfiguration {
      	"providerConfiguration": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerConfigurationRespDeletedAn object which contains the ProviderConfiguration's id, owning Company id, and deleted status.
      providerConfiguration.companyuint64Identifier of the Company to which this object belongs.
      providerConfiguration.deletedbooleanFlag showing if the object is deleted.
      providerConfiguration.iduint64?Identifier given as input for the command.
      providerConfiguration.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreProviderConfigurationResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerConfiguration": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a providerConfiguration object, or it is invalid.
      3The providerConfiguration object does not contain an id, or it is invalid.
      5You do not have permission to restore this ProviderConfiguration.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      48The ProviderConfiguration was not found by its unique identifier.
      49The ProviderConfiguration was found, but is not marked as deleted.

      restoreProviderScript

      Restores the specified ProviderScript.
      Request message description
      PropertyTypeRequiredDescription
      providerScriptParamIdalwaysAn object to contain the "id" of the ProviderScript.
      providerScript.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreProviderScript {
      	"providerScript": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerScriptRespDeletedAn object which contains the ProviderScript's id, owning company id, and deleted status.
      providerScript.companyuint64Identifier of the Company to which this object belongs.
      providerScript.deletedbooleanFlag showing if the object is deleted.
      providerScript.iduint64?Identifier given as input for the command.
      providerScript.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreProviderScriptResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"providerScript": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a providerScript object, or it is invalid.
      3The providerScript object does not contain an id, or it is invalid.
      5You do not have permission to restore this ProviderScript.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      102The ProviderScript was not found by its unique identifier.
      103The ProviderScript was found, but is not marked as deleted.

      reviveProvider

      Revives (disables suspension on) an existing Provider.
      Request message description
      PropertyTypeRequiredDescription
      providerParamIdentifieralwaysAn object to contain the "id" of the Provider.
      provider.idstringalwaysThe Provider's identifier.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      reviveProvider {
      	"provider": {
      		"id": string
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerRespIdendifierSuspendedAn object which contains the Provider's unique identifier and suspended status.
      provider.companyuint64Identifier of the Company to which this object belongs.
      provider.idstringIdentifier given as input for the command.
      provider.suspendedbooleanFlag showing if the object is suspended.
      provider.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      reviveProviderResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"provider": {
      		"company": number,
      		"id": string,
      		"suspended": boolean,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a provider object, or it is invalid.
      3The provider object does not contain an id, or it is invalid.
      5You do not have permission to revive this Provider.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      43The Provider was not found by its unique identifier.
      99The Provider was found, but is not marked as suspended.

      suspendProvider

      Suspends an existing Provider.
      Request message description
      PropertyTypeRequiredDescription
      providerParamIdentifieralwaysAn object to contain the "id" of the Provider.
      provider.idstringalwaysThe Provider's identifier.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      suspendProvider {
      	"provider": {
      		"id": string
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      providerRespIdendifierSuspendedAn object which contains the Provider's unique identifier and suspended status.
      provider.companyuint64Identifier of the Company to which this object belongs.
      provider.idstringIdentifier given as input for the command.
      provider.suspendedbooleanFlag showing if the object is suspended.
      provider.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      suspendProviderResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"provider": {
      		"company": number,
      		"id": string,
      		"suspended": boolean,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a provider object, or it is invalid.
      3The provider object does not contain an id, or it is invalid.
      5You do not have permission to suspended this Provider.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      43The Provider was not found by its unique identifier.
      98The Provider was not found, but it is already marked as suspended.
      99The Provider was previously revived within the minimum period.
      Returns an ErrorDetailLocked as the errorDetails..

      Reports

      getReportResult

      Gets details of the specified ReportResult. Optionally, can also retrieve the report summary and breakdown. The WebSocket does not support serializing the ReportResult.summary or ReportResult.breakdown. Instead, please use the RESTful or Reports service.
      Request message description
      PropertyTypeRequiredDefaultDescription
      breakdownbooleanoptionalWhen true, will also retrieve all the ReportBreakdowns (when used through an applicable REST service).
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted ReportResult.
      reportResultParamIdalwaysAn object to contain the "id" of the ReportResult.
      reportResult.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      summarybooleanoptionalWhen true, will also retrieve all the ReportSummarys (when used through an applicable REST service).
      Request message structure
      getReportResult {
      	"breakdown": boolean,
      	"includeDeleted": boolean,
      	"reportResult": {
      		"id": number
      	},
      	"reqId": number,
      	"summary": boolean
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportResultReportResultThe requested ReportResult.
      reportResult.archivebooleanPreserve these results for later review. Results are regularly culled from the system.
      reportResult.boundsLatLngBoundsAfter processing, the boundary of the results are given so that a map can be focused on that area.
      reportResult.bounds.eastdoubleEastern longitude
      reportResult.bounds.northdoubleNorthern latitude
      reportResult.bounds.southdoubleSouthern latitude
      reportResult.bounds.westdoubleWestern longitude
      reportResult.companyuint64The company to which this report belongs
      reportResult.completeddatetimeThe date/time this result was finished processing.
      reportResult.createddatetimeThe date/time this result was requested.
      reportResult.errorstring
      maximum-length: 250
      A field which contains report error details if the ReportResult.status is ReportStatus.failed.
      reportResult.filteredArray.<uint64>When the report runs, a list of filtered places is calculated based on the ReportOption's place filtering expression.
      reportResult.iduint64Unique identifier
      reportResult.namestring
      maximum-length: 100
      Name of this report.
      reportResult.notesstringNotes about this report.
      reportResult.optionsReportOptionsSpecified parameters for the report logic, targeted Assets, and filtering Places.
      reportResult.options.filteringReportFilterModeThe mechanism to use for filtering based on places and regions.
      reportResult.options.parametersArray.<ReportParameter>A list of parameters to better shape the results.
      reportResult.options.placesexpressionA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
      reportResult.options.regionsArray.<string>A list of provinces and states, where only assets within those regions will be included in the results.
      reportResult.options.scorecardRulesReportScorecardRulesRules used to generate scorecard for this report.
      reportResult.options.scorecardRules.baseScoredoubleBase score for the scorecard.
      reportResult.options.scorecardRules.parametersArray.<ReportScorecardParameter>Infraction parameters used to generate the final score
      reportResult.options.targetsexpressionA targeting expression for including/excluding Assets.
      reportResult.progressbyteThe progress in processing/saving this result is a number between 0 and 100.
      reportResult.runByemail
      maximum-length: 254
      The login of the user that ran this report.
      reportResult.scheduleuint64?A reference to the schedule used to create this result. This field is optional as not all results are created on a schedule.
      reportResult.scorecardsArray.<ReportScorecard>Scorecards for all the targeted assets based on the scorecard rules.
      reportResult.statusReportStatusThe processing status of this report.
      reportResult.targetedArray.<uint64>When the report runs, a list of targeted assets is calculated based on the ReportOption's targeting expression.
      reportResult.templateuint64?A reference to the Template used to create this result. This field is optional because templates are not necessarily required; they just make life a lot easier.
      reportResult.timezonecodifiedThe timezone code used to adjust dates/times used in processing and saving this report.
      reportResult.totalsArray.<ReportTotal>After processing, the report totals the values from all summary instances for a quick overview of the kind of results generated.
      reportResult.typeReportTypeRefers to the type of logic used by this report.
      reportResult.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getReportResultResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportResult": {
      		"archive": boolean,
      		"bounds": {
      			"east": number,
      			"north": number,
      			"south": number,
      			"west": number
      		},
      		"company": number,
      		"completed": string,
      		"created": string,
      		"error": string,
      		"filtered": [
      			number
      		],
      		"id": number,
      		"name": string,
      		"notes": string,
      		"options": {
      			"filtering": string,
      			"parameters": [
      				{
      					"type": string,
      					"value": string
      				}
      			],
      			"places": string,
      			"regions": [
      				string
      			],
      			"scorecardRules": {
      				"baseScore": number,
      				"parameters": [
      					{
      						"condition": string,
      						"duration": string,
      						"points": number
      					}
      				]
      			},
      			"targets": string
      		},
      		"progress": number,
      		"runBy": string,
      		"schedule": number,
      		"scorecards": [
      			{
      				"asset": number,
      				"rulePoints": {
      					string: number
      				},
      				"score": number
      			}
      		],
      		"status": string,
      		"targeted": [
      			number
      		],
      		"template": number,
      		"timezone": string,
      		"totals": [
      			{
      				"asset": number,
      				"distance": number,
      				"duration": string,
      				"stateDetail": string,
      				"summaryCount": number,
      				"value": number,
      				"valueType": string
      			}
      		],
      		"type": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a reportResult object, or it is invalid.
      3The reportResult object does not contain an id, or it is invalid.
      5You do not have permission to view ReportResults.
      5You do not have permission to any of the Assets targetted by this ReportResult.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company to which the ReportResult belongs was not found.
      67The ReportResult you are trying to retrieve was not found.
      95When trynig to get summary and/or breakdown, the ReportResult has not finished running.

      getReportResultsList

      Gets the list of ReportResult for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      afterdatetimeoptional
      beforedatetimeoptional
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getReportResultsList {
      	"after": string,
      	"before": string,
      	"company": {
      		"id": number
      	},
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of ReportResults belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportResultsArray.<ReportResult>The list of requested ReportResults.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getReportResultsListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportResults": [
      		{
      			"archive": boolean,
      			"bounds": {
      				"east": number,
      				"north": number,
      				"south": number,
      				"west": number
      			},
      			"company": number,
      			"completed": string,
      			"created": string,
      			"error": string,
      			"filtered": [
      				number
      			],
      			"id": number,
      			"name": string,
      			"notes": string,
      			"options": {
      				"filtering": string,
      				"parameters": [
      					{
      						"type": string,
      						"value": string
      					}
      				],
      				"places": string,
      				"regions": [
      					string
      				],
      				"scorecardRules": {
      					"baseScore": number,
      					"parameters": [
      						{
      							"condition": string,
      							"duration": string,
      							"points": number
      						}
      					]
      				},
      				"targets": string
      			},
      			"progress": number,
      			"runBy": string,
      			"schedule": number,
      			"scorecards": [
      				{
      					"asset": number,
      					"rulePoints": {
      						string: number
      					},
      					"score": number
      				}
      			],
      			"status": string,
      			"targeted": [
      				number
      			],
      			"template": number,
      			"timezone": string,
      			"totals": [
      				{
      					"asset": number,
      					"distance": number,
      					"duration": string,
      					"stateDetail": string,
      					"summaryCount": number,
      					"value": number,
      					"valueType": string
      				}
      			],
      			"type": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view ReportResult.
      5You do not have permission to any of the Assets in the Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company whose ReportResults you are trying to list was not found.

      getReportResultsListByTemplate

      Gets the list of ReportResult for the specified ReportTemplate.
      Request message description
      PropertyTypeRequiredDefaultDescription
      afterdatetimeoptional
      beforedatetimeoptional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      reportTemplateParamIdalwaysAn object to contain the "id" of the reportTemplate.
      reportTemplate.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getReportResultsListByTemplate {
      	"after": string,
      	"before": string,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"reportTemplate": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportResultsArray.<ReportResult>The list of requested ReportResults.
      reportTemplateRespIdCompanyAn object to contain the "id" of the ReportTemplate to which the array of ReportResults belong.
      reportTemplate.companyuint64Identifier of the Company to which this object belongs.
      reportTemplate.iduint64?Identifier given as input for the command.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getReportResultsListByTemplateResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportResults": [
      		{
      			"archive": boolean,
      			"bounds": {
      				"east": number,
      				"north": number,
      				"south": number,
      				"west": number
      			},
      			"company": number,
      			"completed": string,
      			"created": string,
      			"error": string,
      			"filtered": [
      				number
      			],
      			"id": number,
      			"name": string,
      			"notes": string,
      			"options": {
      				"filtering": string,
      				"parameters": [
      					{
      						"type": string,
      						"value": string
      					}
      				],
      				"places": string,
      				"regions": [
      					string
      				],
      				"scorecardRules": {
      					"baseScore": number,
      					"parameters": [
      						{
      							"condition": string,
      							"duration": string,
      							"points": number
      						}
      					]
      				},
      				"targets": string
      			},
      			"progress": number,
      			"runBy": string,
      			"schedule": number,
      			"scorecards": [
      				{
      					"asset": number,
      					"rulePoints": {
      						string: number
      					},
      					"score": number
      				}
      			],
      			"status": string,
      			"targeted": [
      				number
      			],
      			"template": number,
      			"timezone": string,
      			"totals": [
      				{
      					"asset": number,
      					"distance": number,
      					"duration": string,
      					"stateDetail": string,
      					"summaryCount": number,
      					"value": number,
      					"valueType": string
      				}
      			],
      			"type": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"reportTemplate": {
      		"company": number,
      		"id": number
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a reportTemplate object, or it is invalid.
      3The reportTemplate object does not contain an id, or it is invalid.
      5You do not have permission to view ReportResults.
      5You do not have permission to any of the Assets in the Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company whose ReportResults you are trying to list was not found.
      52The ReportTemplate whose ReportResults you are trying to list was not found.

      getReportSchedule

      Gets details of the specified ReportSchedule.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted ReportSchedule.
      reportScheduleParamIdalwaysAn object to contain the "id" of the ReportSchedule.
      reportSchedule.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getReportSchedule {
      	"includeDeleted": boolean,
      	"reportSchedule": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportScheduleReportScheduleThe requested ReportSchedule.
      reportSchedule.companyuint64The company to which this report belongs
      reportSchedule.enabledbooleanIndicates whether this schedule is allowed to run.
      reportSchedule.iduint64Unique identifier
      reportSchedule.namestring
      maximum-length: 100
      Name of this report.
      reportSchedule.notesstringNotes about this report.
      reportSchedule.notifyReportNotificationsA list of users and a targeting expression for assets which receive report results notifications.
      reportSchedule.notify.assetsexpressionA targeting expression to identify which assets receive the report results. The results emailed to each asset will only be for themselves, not all assets. To receive the emailed results, the Asset must have a Asset.messagingAddress, or for a Person type asset, their Contact.emails["Email"].
      reportSchedule.notify.usersArray.<email>
      for values see: UserGeneral.login
      maximum-length of values: 50
      List of users to send emailed report. Each email will only contain the results for the assets each user is allowed to view.
      reportSchedule.optionsReportOptionsSpecified parameters for the report logic, targeted Assets, and filtering Places.
      reportSchedule.options.filteringReportFilterModeThe mechanism to use for filtering based on places and regions.
      reportSchedule.options.parametersArray.<ReportParameter>A list of parameters to better shape the results.
      reportSchedule.options.placesexpressionA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
      reportSchedule.options.regionsArray.<string>A list of provinces and states, where only assets within those regions will be included in the results.
      reportSchedule.options.scorecardRulesReportScorecardRulesRules used to generate scorecard for this report.
      reportSchedule.options.scorecardRules.baseScoredoubleBase score for the scorecard.
      reportSchedule.options.scorecardRules.parametersArray.<ReportScorecardParameter>Infraction parameters used to generate the final score
      reportSchedule.options.targetsexpressionA targeting expression for including/excluding Assets.
      reportSchedule.owneremail
      maximum-length: 254
      Login of the user who has ownership of this report schedule.
      reportSchedule.repetitionReportRecurrenceThe recurring schedule to generate report results.
      reportSchedule.repetition.enddatetimeThe optional time when the schedule stops recurring in local-time (not UTC).
      reportSchedule.repetition.iterationsuint16The number of times this schedule has been invoked to generate results.
      reportSchedule.repetition.kindReportRecurrenceTypeHow often the report is automatically run. Daily, weekly, monthly, etc...
      reportSchedule.repetition.lastEndDatedatetimeThe date/time stamp from the last result used to inform the nextStartDate and nextEndDate properties. This value is null when the schedule has not yet run once.
      reportSchedule.repetition.lastResultuint64?The unique identifier of the last ReportResult generated by this schedule.
      reportSchedule.repetition.lastStartDatedatetimeThe date/time stamp from the last result used to inform the nextStartDate and nextEndDate properties. This value is null when the schedule has not yet run once.
      reportSchedule.repetition.nextEndDatedatetimeThis date/time is used as the endDate ReportParameter for the next iteration of this recurring report. This value is null when the schedule is calculated to stop recurring.
      reportSchedule.repetition.nextStartDatedatetimeThis date/time is used as the startDate ReportParameter for the next iteration of this recurring report. This value is null when the schedule is calculated to stop recurring.
      reportSchedule.repetition.startdatetimeWhen the schedule is to begin recurring in local-time (not UTC).
      reportSchedule.repetition.timezonecodifiedThe local timezone used to calculate recurring date/time ranges.
      reportSchedule.repetition.weekdaybyteUsed only for weekly schedules, it's a number between 0 and 6 representing the day of the week, with Sunday being the first day of the week.
      reportSchedule.repetition.weekdaysArray.<boolean>
      fixed count: 7
      Used only for daily schedules, this 7 item, boolean array, determines if the schedule should recur on that day of the week.
      reportSchedule.templateuint64A reference to the Template used to create this result.
      reportSchedule.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getReportScheduleResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportSchedule": {
      		"company": number,
      		"enabled": boolean,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"notify": {
      			"assets": string,
      			"users": [
      				string
      			]
      		},
      		"options": {
      			"filtering": string,
      			"parameters": [
      				{
      					"type": string,
      					"value": string
      				}
      			],
      			"places": string,
      			"regions": [
      				string
      			],
      			"scorecardRules": {
      				"baseScore": number,
      				"parameters": [
      					{
      						"condition": string,
      						"duration": string,
      						"points": number
      					}
      				]
      			},
      			"targets": string
      		},
      		"owner": string,
      		"repetition": {
      			"end": string,
      			"iterations": number,
      			"kind": string,
      			"lastEndDate": string,
      			"lastResult": number,
      			"lastStartDate": string,
      			"nextEndDate": string,
      			"nextStartDate": string,
      			"start": string,
      			"timezone": string,
      			"weekday": number,
      			"weekdays": [
      				boolean
      			]
      		},
      		"template": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a reportSchedule object, or it is invalid.
      3The reportSchedule object does not contain an id, or it is invalid.
      5You do not have permission to view ReportSchedules.
      5You do not have permission to any of the Assets targetted by this ReportSchedule (or ReportTemplate).
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The company to which the report belongs was not found.
      52The ReportTemplate to which the ReportSchedule refers was not found.
      93The ReportSchedule you are trying to retrieve was not found.

      getReportSchedulesList

      Gets the list of ReportSchedules for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalways
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getReportSchedulesList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object which contains only one key "id" when there is no error. The "id" key is the unique identifier of the company to which the array of objects relate.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportSchedulesArray.<ReportSchedule>The list of schedules.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getReportSchedulesListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportSchedules": [
      		{
      			"company": number,
      			"enabled": boolean,
      			"id": number,
      			"name": string,
      			"notes": string,
      			"notify": {
      				"assets": string,
      				"users": [
      					string
      				]
      			},
      			"options": {
      				"filtering": string,
      				"parameters": [
      					{
      						"type": string,
      						"value": string
      					}
      				],
      				"places": string,
      				"regions": [
      					string
      				],
      				"scorecardRules": {
      					"baseScore": number,
      					"parameters": [
      						{
      							"condition": string,
      							"duration": string,
      							"points": number
      						}
      					]
      				},
      				"targets": string
      			},
      			"owner": string,
      			"repetition": {
      				"end": string,
      				"iterations": number,
      				"kind": string,
      				"lastEndDate": string,
      				"lastResult": number,
      				"lastStartDate": string,
      				"nextEndDate": string,
      				"nextStartDate": string,
      				"start": string,
      				"timezone": string,
      				"weekday": number,
      				"weekdays": [
      					boolean
      				]
      			},
      			"template": number,
      			"v": [
      				number
      			]
      		}
      	],
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view ReportSchedules.
      5You do not have permission to view Asset history.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The company whose ReportSchedules you are trying to list was not found.

      getReportSchedulesListByTemplate

      Gets the list of ReportSchedules for the specified ReportTemplate.
      Request message description
      PropertyTypeRequiredDefaultDescription
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reportTemplateParamIdalways
      reportTemplate.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getReportSchedulesListByTemplate {
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reportTemplate": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportSchedulesArray.<ReportSchedule>The list of schedules.
      reportTemplateRespIdCompanyAn object which contains only one key "id" when there is no error. The "id" key is the unique identifier of the company to which the array of objects relate.
      reportTemplate.companyuint64Identifier of the Company to which this object belongs.
      reportTemplate.iduint64?Identifier given as input for the command.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getReportSchedulesListByTemplateResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportSchedules": [
      		{
      			"company": number,
      			"enabled": boolean,
      			"id": number,
      			"name": string,
      			"notes": string,
      			"notify": {
      				"assets": string,
      				"users": [
      					string
      				]
      			},
      			"options": {
      				"filtering": string,
      				"parameters": [
      					{
      						"type": string,
      						"value": string
      					}
      				],
      				"places": string,
      				"regions": [
      					string
      				],
      				"scorecardRules": {
      					"baseScore": number,
      					"parameters": [
      						{
      							"condition": string,
      							"duration": string,
      							"points": number
      						}
      					]
      				},
      				"targets": string
      			},
      			"owner": string,
      			"repetition": {
      				"end": string,
      				"iterations": number,
      				"kind": string,
      				"lastEndDate": string,
      				"lastResult": number,
      				"lastStartDate": string,
      				"nextEndDate": string,
      				"nextStartDate": string,
      				"start": string,
      				"timezone": string,
      				"weekday": number,
      				"weekdays": [
      					boolean
      				]
      			},
      			"template": number,
      			"v": [
      				number
      			]
      		}
      	],
      	"reportTemplate": {
      		"company": number,
      		"id": number
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a reportTemplate object, or it is invalid.
      3The reportTemplate object does not contain an id, or it is invalid.
      5You do not have permission to view ReportTemplates.
      5You do not have permission to view ReportSchedules.
      5You do not have permission to view Asset history.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The company whose ReportSchedules you are trying to list was not found.
      52The ReportTemplate whose ReportSchedules you are trying to list was not found.

      getReportTemplate

      Gets details of the specified ReportTemplate.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted ReportTemplate.
      reportTemplateParamIdalwaysAn object to contain the "id" of the ReportTemplate.
      reportTemplate.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getReportTemplate {
      	"includeDeleted": boolean,
      	"reportTemplate": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportTemplateReportTemplateThe requested ReportTemplate.
      reportTemplate.companyuint64The company to which this report belongs
      reportTemplate.fillcolour
      maximum-length: 22
      The fill/background colour of the icon.
      reportTemplate.graphiccodified
      maximum-length: 22
      The name of the symbol for this report.
      reportTemplate.iduint64Unique identifier
      reportTemplate.namestring
      maximum-length: 100
      Name of this report.
      reportTemplate.notesstringNotes about this report.
      reportTemplate.optionsReportOptionsSpecified parameters for the report logic, targeted Assets, and filtering Places.
      reportTemplate.options.filteringReportFilterModeThe mechanism to use for filtering based on places and regions.
      reportTemplate.options.parametersArray.<ReportParameter>A list of parameters to better shape the results.
      reportTemplate.options.placesexpressionA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
      reportTemplate.options.regionsArray.<string>A list of provinces and states, where only assets within those regions will be included in the results.
      reportTemplate.options.scorecardRulesReportScorecardRulesRules used to generate scorecard for this report.
      reportTemplate.options.scorecardRules.baseScoredoubleBase score for the scorecard.
      reportTemplate.options.scorecardRules.parametersArray.<ReportScorecardParameter>Infraction parameters used to generate the final score
      reportTemplate.options.targetsexpressionA targeting expression for including/excluding Assets.
      reportTemplate.strokecolour
      maximum-length: 22
      Outline and graphic colour.
      reportTemplate.typeReportTypeRefers to the type of logic used by this report.
      reportTemplate.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getReportTemplateResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportTemplate": {
      		"company": number,
      		"fill": string,
      		"graphic": string,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"options": {
      			"filtering": string,
      			"parameters": [
      				{
      					"type": string,
      					"value": string
      				}
      			],
      			"places": string,
      			"regions": [
      				string
      			],
      			"scorecardRules": {
      				"baseScore": number,
      				"parameters": [
      					{
      						"condition": string,
      						"duration": string,
      						"points": number
      					}
      				]
      			},
      			"targets": string
      		},
      		"stroke": string,
      		"type": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a reportTemplate object, or it is invalid.
      3The reportTemplate object does not contain an id, or it is invalid.
      5You do not have permission to view ReportTemplates.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      52The ReportTemplate you are trying to retrieve was not found.

      getReportTemplatesList

      Gets the list of ReportTemplate for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getReportTemplatesList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of ReportTemplates belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportTemplatesArray.<ReportTemplate>The list of requested ReportTemplates.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getReportTemplatesListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportTemplates": [
      		{
      			"company": number,
      			"fill": string,
      			"graphic": string,
      			"id": number,
      			"name": string,
      			"notes": string,
      			"options": {
      				"filtering": string,
      				"parameters": [
      					{
      						"type": string,
      						"value": string
      					}
      				],
      				"places": string,
      				"regions": [
      					string
      				],
      				"scorecardRules": {
      					"baseScore": number,
      					"parameters": [
      						{
      							"condition": string,
      							"duration": string,
      							"points": number
      						}
      					]
      				},
      				"targets": string
      			},
      			"stroke": string,
      			"type": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view ReportTemplates.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.

      mergeReportResult

      Creates a new ReportResult that will run automatically, or updates an existing ReportResult.
      Request message description
      PropertyTypeRequiredDescription
      reportResultObject.<string, ?>alwaysA simple object to contain the ReportResult parameters.
      reportResult.archivebooleanoptionalIndicates whether this report should be archived. Archived report ReportResult are stored for six months. Non-archive reports are purged after 24 hours.
      reportResult.companyuint64?create (complex)The Company to which these report ReportResult belongs.
      reportResult.iduint64?updateThe unique identifier of the ReportResult you want to update.
      reportResult.namestring
      maximum-length: 100
      createName for the report ReportResult.
      reportResult.notesstringoptionalNotes for these report ReportResult.
      reportResult.optionsObject.<string, ?>create (complex)Specified parameters for the report logic, targeted Assets, and filtering Places and/or regions.
      reportResult.options.filteringReportFilterMode?optionalThe mechanism to use for filtering based on Places and regions.
      reportResult.options.parametersArray.<ReportParameter>optionalA list of parameters to better shape the ReportResult.
      reportResult.options.placesexpressionoptionalA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
      reportResult.options.regionsArray.<string>optionalA list of provinces and states, where only Assets within those regions will be included in the ReportResult.
      reportResult.options.scorecardRulesObject.<string, ?>alwaysRules used to generate ReportScorecard for the ReportResult.
      reportResult.options.scorecardRules.baseScoredoubleoptionalBase score for the ReportScorecard.
      reportResult.options.scorecardRules.parametersArray.<ReportScorecardParameter>optionalInfraction parameters used to generate the final ReportScorecard.score.
      reportResult.options.targetsexpressionoptionalA targeting expression for including/excluding Assets.
      reportResult.templateuint64?create (simple)Identifier of the ReportTemplate used to help create these ReportResult.
      reportResult.timezonecodifiedcreateThe Timezone.code of the local timezone used to calculate times.
      reportResult.typeReportType?create (complex)The kind of logic used to build the report ReportResult.
      reportResult.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeReportResult {
      	"reportResult": {
      		"archive": boolean,
      		"company": number,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"options": {
      			"filtering": string,
      			"parameters": [
      				{
      					"type": string,
      					"value": string
      				}
      			],
      			"places": string,
      			"regions": [
      				string
      			],
      			"scorecardRules": {
      				"baseScore": number,
      				"parameters": [
      					{
      						"condition": string,
      						"duration": string,
      						"points": number
      					}
      				]
      			},
      			"targets": string
      		},
      		"template": number,
      		"timezone": string,
      		"type": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportResultRespIdCompanyTemplateAn object which contains the "id", "company", and "template" keys.
      reportResult.companyuint64Identifier of the Company to which this object belongs.
      reportResult.iduint64?Identifier given as input for the command.
      reportResult.templateuint64?Identifier of the ReportTemplate the report object implements.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeReportResultResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportResult": {
      		"company": number,
      		"id": number,
      		"template": number
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      2During update: When updating a ReportResult, you cannot change options after ReportResult begins running.
      If you receive this error, please contact technical support.
      2During update: When updating a ReportResult, you cannot change timezone after ReportResult begins running.
      If you receive this error, please contact technical support.
      3The request does not contain a reportResult object, or it is invalid.
      3No valid changes would be performed.
      3During create: When creating a new ReportResult, a timezone was not given.
      3During create: When creating a new ReportResult, a company or template was not given.
      3During create: When creating a new ReportResult, a type or template was not given.
      3During create: When creating a new ReportResult, a name or template was not given.
      3During create: When creating a new ReportResult, the options or template was not given.
      3During create: When creating a new ReportResult, given template does not match the given company.
      3During update: When updating a ReportResult, the v was not an array, or contained too few numbers.
      3During update: When updating a ReportResult, the name was given as null or blank.
      5There are no targeted assets, so the report would not run.
      5During create: You do not have permission to create new ReportResult.
      5During update: You do not have permission to update ReportResult.
      6During update: When updating a ReportResult, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company being targetted is not found.
      52During create: When creating a new ReportResult, the given ReportTemplate was not found.
      67During update: The ReportResult you are trying to update was not found.
      130During create: When creating a new ReportResult, and no reportResult.options.targets are given, and the ReportTemplate also has no targets.
      130During create: The specified reportResult.company was found, but was not in the same Company as the given ReportTemplate.
      130During update: When updating a ReportResult, the reportResult.company can not be changed.

      mergeReportSchedule

      Creates a new, or updates an existing ReportSchedule.
      Request message description
      PropertyTypeRequiredDescription
      reportScheduleObject.<string, ?>alwaysA simple object to contain the ReportSchedule parameters.
      reportSchedule.enabledbooleanoptionalIndicates whether this schedule is allowed to run.
      reportSchedule.iduint64?updateThe unique identifier of the ReportSchedule you want to update.
      reportSchedule.namestring
      maximum-length: 100
      createName for the ReportSchedule.
      reportSchedule.notesstringoptionalNotes for the ReportSchedule.
      reportSchedule.notifyObject.<string, ?>alwaysA list of users and a targeting expression for Assets which receive report results notifications.
      reportSchedule.notify.assetsexpression
      maximum-length: 255
      optionalA targeting expression to identify which Assets receive the ReportResult.
      reportSchedule.notify.usersArray.<email>
      maximum-count: 50
      optionalList of Users to send emailed report. Each email will only contain the ReportResult for the Assets each User is allowed to view.
      reportSchedule.optionsObject.<string, ?>alwaysSpecified parameters for the report logic, targeted Assets, and filtering Places.
      reportSchedule.options.filteringReportFilterMode?optionalThe mechanism to use for filtering based on Places and regions.
      reportSchedule.options.parametersArray.<ReportParameter>optionalA list of parameters to better shape the ReportResult.
      reportSchedule.options.placesexpressionoptionalA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
      reportSchedule.options.regionsArray.<string>optionalA list of provinces and states, where only Assets within those regions will be included in the ReportResult.
      reportSchedule.options.scorecardRulesObject.<string, ?>alwaysRules used to generate ReportScorecard for the ReportResult.
      reportSchedule.options.scorecardRules.baseScoredoubleoptionalBase score for the ReportScorecard.
      reportSchedule.options.scorecardRules.parametersArray.<ReportScorecardParameter>optionalInfraction parameters used to generate the final ReportScorecard.score.
      reportSchedule.options.targetsexpressionoptionalA targeting expression for including/excluding Assets.
      reportSchedule.owneremailcreateThe user which owns the schedule. When report results are created, they will be created with this user's Asset permissions.
      reportSchedule.repetitionObject.<string, ?>createThe recurring schedule to generate report results.
      reportSchedule.repetition.enddatetimeoptionalThe optional time when the ReportSchedule stops recurring in local-time (not UTC).
      reportSchedule.repetition.kindReportRecurrenceType?optionalHow often the report is automatically run. Daily, weekly, monthly, etc...
      reportSchedule.repetition.startdatetimeoptionalWhen the ReportSchedule is to begin recurring in local-time (not UTC).
      reportSchedule.repetition.timezonecodifiedoptionalThe local Timezone used to calculate recurring date/time ranges.
      reportSchedule.repetition.weekdaybyte?optionalUsed only for weekly schedules, it's a number between 0 and 6 representing the day of the week, with Sunday being the first day of the week.
      reportSchedule.repetition.weekdaysArray.<boolean>optionalUsed only for daily schedules, this 7 item, boolean array, determines if the ReportSchedule should recur on that day of the week.
      reportSchedule.templateuint64?createIdentifier of the ReportTemplate used to help create results.
      reportSchedule.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeReportSchedule {
      	"reportSchedule": {
      		"enabled": boolean,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"notify": {
      			"assets": string,
      			"users": [
      				string
      			]
      		},
      		"options": {
      			"filtering": string,
      			"parameters": [
      				{
      					"type": string,
      					"value": string
      				}
      			],
      			"places": string,
      			"regions": [
      				string
      			],
      			"scorecardRules": {
      				"baseScore": number,
      				"parameters": [
      					{
      						"condition": string,
      						"duration": string,
      						"points": number
      					}
      				]
      			},
      			"targets": string
      		},
      		"owner": string,
      		"repetition": {
      			"end": string,
      			"kind": string,
      			"start": string,
      			"timezone": string,
      			"weekday": number,
      			"weekdays": [
      				boolean
      			]
      		},
      		"template": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportScheduleRespIdCompanyTemplateAn object which contains the "id", "company", and "template" keys.
      reportSchedule.companyuint64Identifier of the Company to which this object belongs.
      reportSchedule.iduint64?Identifier given as input for the command.
      reportSchedule.templateuint64?Identifier of the ReportTemplate the report object implements.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeReportScheduleResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportSchedule": {
      		"company": number,
      		"id": number,
      		"template": number
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a reportSchedule object, or it is invalid.
      3No valid changes would be performed.
      3The reportSchedule.owner value is not a valid email address.
      3The reportSchedule.repetition.kind is not a valid value.
      3The reportSchedule.repetition.weekdays is not a valid value.
      3The reportSchedule.repetition.weekday is not a valid value.
      3One or more of the reportSchedule.options.parameters was not a valid.
      3One or more of the reportSchedule.options parameters' type was not a valid.
      3One or more of the reportSchedule.options.scorecardRules.parameters was not a valid.
      3One or more of the reportSchedule.options.scorecardRules.parameters' ReportScorecardParameter.conditions was not a valid.
      3One or more of the reportSchedule.options.scorecardRules.parameters' ReportScorecardParameter.durations was not a valid.
      3One or more of the reportSchedule.options.scorecardRules.parameters' ReportScorecardParameter.points was not a valid.
      3During create: When creating a new ReportSchedule, a template was not given.
      3During create: When creating a new ReportSchedule, a name or template was not given.
      3During create: When creating a new ReportSchedule, the given repetition pattern parameters were incomplete.
      3During update: When updating a ReportSchedule, the v was not an array, or contained too few numbers.
      3During update: When updating a ReportSchedule, the name was given as null or blank.
      3The options filtering specified was not a valid.
      Returns an ErrorDetailEnum as the errorDetails..
      3One or more of the options parameters type was specified more than once.
      Returns an ErrorDetailInput as the errorDetails..
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      62The repetition timezone was invalid or could not be found.
      130During update: When updating a ReportSchedule, the reportSchedule.template can not be changed.

      mergeReportTemplate

      Creates a new or, updates an existing ReportTemplate.
      Request message description
      PropertyTypeRequiredDescription
      reportTemplateObject.<string, ?>alwaysA simple object to contain the ReportTemplate parameters.
      reportTemplate.companyuint64?createThe Company to which this ReportTemplate belongs.
      reportTemplate.fillstringoptionalBackground and fill colour in the UI.
      reportTemplate.graphicstringoptionalThe name of the symbol shown in the UI.
      reportTemplate.iduint64?updateThe unique identifier of the ReportTemplate you want to update.
      reportTemplate.namestring
      maximum-length: 100
      createName for the ReportTemplate.
      reportTemplate.notesstringoptionalNotes about the ReportTemplate.
      reportTemplate.optionsObject.<string, ?>alwaysSpecified parameters for the report logic, targeted Assets, and filtering Places and/or regions.
      reportTemplate.options.filteringReportFilterMode?optionalThe mechanism to use for filtering based on Places and regions.
      reportTemplate.options.parametersArray.<ReportParameter>optionalA list of parameters to better shape the ReportResult.
      reportTemplate.options.placesexpressionoptionalA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
      reportTemplate.options.regionsArray.<string>optionalA list of provinces and states, where only Assets within those regions will be included in the ReportResult.
      reportTemplate.options.scorecardRulesObject.<string, ?>alwaysRules used to generate ReportScorecard for the ReportResult.
      reportTemplate.options.scorecardRules.baseScoredoubleoptionalBase score for the ReportScorecard.
      reportTemplate.options.scorecardRules.parametersArray.<ReportScorecardParameter>optionalInfraction parameters used to generate the final ReportScorecard.score.
      reportTemplate.options.targetsexpressionoptionalA targeting expression for including/excluding Assets.
      reportTemplate.strokestringoptionalText and outline colour in the UI.
      reportTemplate.typeReportType?createThe kind of logic used to build the report results.
      reportTemplate.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeReportTemplate {
      	"reportTemplate": {
      		"company": number,
      		"fill": string,
      		"graphic": string,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"options": {
      			"filtering": string,
      			"parameters": [
      				{
      					"type": string,
      					"value": string
      				}
      			],
      			"places": string,
      			"regions": [
      				string
      			],
      			"scorecardRules": {
      				"baseScore": number,
      				"parameters": [
      					{
      						"condition": string,
      						"duration": string,
      						"points": number
      					}
      				]
      			},
      			"targets": string
      		},
      		"stroke": string,
      		"type": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportTemplateRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
      reportTemplate.companyuint64Identifier of the Company to which this object belongs.
      reportTemplate.iduint64?Identifier given as input for the command.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeReportTemplateResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportTemplate": {
      		"company": number,
      		"id": number
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a reportTemplate object, or it is invalid.
      3Not enough keys exist in the reportTemplate object.
      3During create: When creating a new ReportTemplate, the name was given, but is blank or null.
      3During create: When creating a new ReportTemplate, a company was not given.
      3During create: When creating a new ReportTemplate, the type was not given.
      3During create: When creating a new ReportTemplate, the type was given, but is invalid.
      3During update: When updating a ReportTemplate, the id was invalid.
      3During update: When updating a ReportTemplate, the v was not an array, or contained too few numbers.
      5You do not have permission to either create a new ReportTemplate.
      5You do not have permission to either update ReportTemplates.
      6During update: When updating a ReportTemplate, the wrong version key(s) were given.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      52During update: The ReportTemplate you are trying to update was not found.
      130During update: When updating a ReportTemplate, the reportTemplate.company can not be changed.
      130During update: When updating a ReportTemplate, the reportTemplate.type can not be changed.

      removeReportResult

      Deletes the specified ReportResult.
      Request message description
      PropertyTypeRequiredDescription
      reportResultParamIdalwaysAn object to contain the "id" of the ReportResult.
      reportResult.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeReportResult {
      	"reportResult": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportResultRespDeletedAn object which contains the ReportResult's id, owning Company id, and deleted status.
      reportResult.companyuint64Identifier of the Company to which this object belongs.
      reportResult.deletedbooleanFlag showing if the object is deleted.
      reportResult.iduint64?Identifier given as input for the command.
      reportResult.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeReportResultResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportResult": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a reportResult object, or it is invalid.
      3The reportResult object does not contain an id, or it is invalid.
      5You do not have permission to delete ReportResults.
      5You do not have permission to view all of the Assets targetted by this ReportResult.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company to which the ReportResult belongs was not found.
      67The ReportResult you are trying to delete was not found.

      removeReportSchedule

      Deletes the specified ReportSchedule.
      Request message description
      PropertyTypeRequiredDescription
      reportScheduleParamIdalwaysAn object to contain the "id" of the ReportSchedule.
      reportSchedule.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeReportSchedule {
      	"reportSchedule": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportScheduleRespDeletedAn object which contains the ReportSchedule's id, owning Company id, and deleted status.
      reportSchedule.companyuint64Identifier of the Company to which this object belongs.
      reportSchedule.deletedbooleanFlag showing if the object is deleted.
      reportSchedule.iduint64?Identifier given as input for the command.
      reportSchedule.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeReportScheduleResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportSchedule": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a reportSchedule object, or it is invalid.
      3The reportSchedule object does not contain an id, or it is invalid.
      5You do not have permission to view ReportSchedules.
      5You do not have permission to all of the Assets targetted by this ReportSchedule (or ReportTemplate).
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company to which the ReportSchedule belongs was not found.
      52The ReportTemplate to which the ReportSchedule refers was not found.
      93The ReportSchedule you are trying to retrieve was not found.

      removeReportTemplate

      Removes the specified ReportTemplate.
      Request message description
      PropertyTypeRequiredDescription
      reportTemplateParamIdalwaysAn object to contain the "id" of the ReportTemplate.
      reportTemplate.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeReportTemplate {
      	"reportTemplate": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportTemplateRespDeletedAn object which contains the ReportTemplate's id, owning Company id, and deleted status.
      reportTemplate.companyuint64Identifier of the Company to which this object belongs.
      reportTemplate.deletedbooleanFlag showing if the object is deleted.
      reportTemplate.iduint64?Identifier given as input for the command.
      reportTemplate.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeReportTemplateResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportTemplate": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a reportTemplate object, or it is invalid.
      3The reportTemplate object does not contain an id, or it is invalid.
      5You do not have permission to delete ReportTemplates.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      52The ReportTemplate you are trying to delete was not found.

      restoreReportResult

      Restores a deleted ReportResult.
      Request message description
      PropertyTypeRequiredDescription
      reportResultParamIdalwaysAn object to contain the "id" of the ReportResult.
      reportResult.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreReportResult {
      	"reportResult": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportResultRespDeletedAn object which contains the ReportResult's id, owning Company id, and deleted status.
      reportResult.companyuint64Identifier of the Company to which this object belongs.
      reportResult.deletedbooleanFlag showing if the object is deleted.
      reportResult.iduint64?Identifier given as input for the command.
      reportResult.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreReportResultResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportResult": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a reportResult object, or it is invalid.
      3The reportResult object does not contain an id, or it is invalid.
      5You do not have permission to restore ReportResults.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      67The ReportResult you are trying to restore was not found.
      75The ReportResult you are trying to restore is not deleted.

      restoreReportSchedule

      Restores a deleted ReportSchedule.
      Request message description
      PropertyTypeRequiredDescription
      reportScheduleParamIdalwaysAn object to contain the "id" of the ReportSchedule.
      reportSchedule.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreReportSchedule {
      	"reportSchedule": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportScheduleRespDeletedAn object which contains the ReportSchedule's id, owning Company id, and deleted status.
      reportSchedule.companyuint64Identifier of the Company to which this object belongs.
      reportSchedule.deletedbooleanFlag showing if the object is deleted.
      reportSchedule.iduint64?Identifier given as input for the command.
      reportSchedule.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreReportScheduleResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportSchedule": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a reportSchedule object, or it is invalid.
      3The reportSchedule object does not contain an id, or it is invalid.
      5You do not have permission to restore ReportSchedules.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      93The ReportSchedule you are trying to restore was not found.
      94The ReportSchedule you are trying to restore is not deleted.

      restoreReportTemplate

      Restores a deleted ReportTemplate to its previous version.
      Request message description
      PropertyTypeRequiredDescription
      reportTemplateParamIdalwaysAn object to contain the "id" of the ReportTemplate.
      reportTemplate.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreReportTemplate {
      	"reportTemplate": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reportTemplateRespDeletedAn object which contains the ReportTemplate's id, owning Company id, and deleted status.
      reportTemplate.companyuint64Identifier of the Company to which this object belongs.
      reportTemplate.deletedbooleanFlag showing if the object is deleted.
      reportTemplate.iduint64?Identifier given as input for the command.
      reportTemplate.vArray.<uint32>
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreReportTemplateResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reportTemplate": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a reportTemplate object, or it is invalid.
      3The reportTemplate object does not contain an id, or it is invalid.
      5You do not have permission to delete ReportTemplates.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      52The ReportTemplate you are trying to restore was not found.
      53The ReportTemplate you are trying to restore was not found, but is not deleted.

      Self

      getSessionDetails

      Gets details of the current session (yourself) and User.
      Request message description
      PropertyTypeRequiredDescription
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getSessionDetails {
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      expirydatetimeThe timestamp of when this session expires.
      ghostIdstringYour session identifier.
      machineSelfMachineThis Machine's details (if the service is being used by a Machine). If this value is not present, then the session is not a machine account.
      machine.companyuint64The company to which this user belongs.
      machine.enabledbooleanIndicates whether system access is disable.
      machine.formatsObject.<codified, datetimetemplate>
      maximum-length of values: 20
      The format strings defining the preferred way to display ambiguous values.
      machine.groupsArray.<UserGroup>The list of UserGroup to which this User belongs.
      machine.insecurebooleanWhen true, no access restrictions (machine.secret, machine.referrers, or machine.ipRanges) are enforced.
      machine.ipRangesArray.<ipv4>
      maximum-length of values: 19
      Restrict service access to only the provided IP ranges. Currently we only support IPv4 ranges using CIDR slash-notation.
      machine.keystring
      maximum-length: 50
      The unique idenifier used to access the system.
      machine.languagecodified
      maximum-length: 5
      minimum-length: 2
      Preferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
      machine.measurementsObject.<codified, SystemsOfUnits>Preferred way of displaying ambiguous numbers in the context of measurements.
      machine.nicknamestring
      maximum-length: 100
      Human friendly name for these credentials
      machine.notAfterdatetimeAn optional timestamp that restricts this machine account from being used after the given date.
      machine.notBeforedatetimeAn optional timestamp that restricts this machine account from being used before the given date.
      machine.notesstring
      maximum-length: 8000
      Notes about this machine.
      machine.optionsObject.<codified, string>
      maximum-length of values: 20
      Additional options which do not fit in with the formats or measurements preferences.
      machine.permissionsArray.<Permission>Permission rules which override the group rules.
      machine.referrersArray.<url>
      maximum-length of values: 254
      Optional list of your managed domains from which this machine account can be used.
      machine.secretstring
      maximum-length: 1000
      A token used to encode or validate requests.
      machine.servicesArray.<url>
      maximum-length of values: 254
      List of system service URIs that this machine account is permitted to access.
      machine.timezonecodifiedThe service account's local timezone.
      machine.vArray.<uint32>
      messagestringAn English description of the error.
      passwordPolicyPasswordPolicyThis User's Company.passwordPolicy.
      passwordPolicy.expireModePasswordExpiryModeDefines how passwords expire.
      passwordPolicy.expireThresholdbyteThe threshold for expiry.
      passwordPolicy.includeLettersbooleanDo passwords require alphabetical characters.
      passwordPolicy.includeNumbersbooleanDo passwords require numeric characters.
      passwordPolicy.includeSpecialbooleanDo passwords require non-alphanumeric characters.
      passwordPolicy.includeUpperLowerbooleanDo passwords require upper-case and lower-case letters.
      passwordPolicy.minimumLengthbyteThe minimum number of characters required.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      serverTimedatetimeThe UTC date/time of the server hosting the connection.
      sessionPolicySessionPolicyThis User's Company.sessionPolicy.
      sessionPolicy.applicationsArray.<string>The list of applications users are allowed to use to create sessions.
      sessionPolicy.expireTimeoutuint16The lifetime duration of a session in minutes.
      sessionPolicy.idleAllowedbooleanDefines whether a session should be automatically killed when the connection breaks.
      sessionPolicy.ipv4RangesArray.<ipv4>
      maximum-length of values: 19
      Restrict session creation to only the provided IPv4 ranges (using CIDR slash-notation). Leave blank for Internet access.
      sessionPolicy.maxSessionsbyteThe maximum number of sessions allowed per user.
      sessionPolicy.multiUserSessionMultiUserDefines the behaviour of the system when a user creates multiple sessions.
      userSelfUserThis session's User details (if the service is being used by a User). If this value is not present, then the session is not yet authenticated.
      user.companyuint64The company to which this user belongs.
      user.contactContactAssociated contact information for this user.
      user.contact.addressesObject.<string, string>Mailing addresses. Use the object key like a name of the address. Example keys: Home, Work, Park, etc.
      user.contact.companyuint64The company to which this contact belongs
      user.contact.datesObject.<string, datetime>Date information. Use the object key like a name of the date. Example keys: Birthday, Started Date, Retired On, etc.
      user.contact.emailsObject.<string, email>
      maximum-length of values: 254
      Email addresses. Use the object key like a name of the address. Example keys: Home, Work, Support, Old, etc.
      user.contact.iduint64Unique identifier of this contact.
      user.contact.namestring
      maximum-length: 100
      The person's name
      user.contact.notesstringNotes about this person.
      user.contact.optionsObject.<string, string>Uncategorized information. Use the object keys and values however you'd like.
      user.contact.otherNamesObject.<string, string>
      maximum-length of values: 254
      A collection of other names this person might go by. Use the object key like a name identifier. Example keys: Initials, Nickname, Maiden Name, etc.
      user.contact.phonesObject.<string, phone>Phone numbers. Use the object key like a name of the phone number. Example keys: Mobile, Fax, Home, Office, etc.
      user.contact.picturesArray.<uint64>
      for values see: Picture.id
      Pictures of this Contact.
      user.contact.rolesArray.<string>A list of roles they play in the Company.
      user.contact.urlsObject.<string, url>
      maximum-length of values: 254
      Websites and other online resources. Use the object key like a name of the address. Example keys: Downloads, Support, FTP, etc.
      user.contact.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      user.enabledbooleanIndicates whether system access is disable.
      user.formatsObject.<codified, datetimetemplate>
      maximum-length of values: 20
      The format strings defining the preferred way to display ambiguous values.
      user.groupsArray.<UserGroup>The list of UserGroups to which this User belongs.
      user.languagecodified
      maximum-length: 5
      minimum-length: 2
      Preferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
      user.loginemail
      maximum-length: 254
      minimum-length: 6
      The unique public email address used to access the system.
      user.measurementsObject.<codified, SystemsOfUnits>Preferred way of displaying ambiguous numbers in the context of measurements.
      user.nicknamestring
      maximum-length: 100
      Human friendly name for these credentials
      user.notifyArray.<UserNotifications>
      maximum-count: 7
      Definition of how and when to send alerts to the user.
      user.optionsObject.<codified, string>
      maximum-length of values: 20
      Additional options which do not fit in with the formats or measurements preferences.
      user.passwordExpiredbooleanIndicated whether the credentials have expired according to the company's policy.
      user.permissionsArray.<Permission>Individual permission rules which override the UserGroup rules.
      user.timezonecodifiedThe user's local timezone.
      user.vArray.<uint32>
      Response message structure
      getSessionDetailsResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"expiry": string,
      	"ghostId": string,
      	"machine": {
      		"company": number,
      		"enabled": boolean,
      		"formats": {
      			string: string
      		},
      		"groups": [
      			{
      				"company": number,
      				"id": number,
      				"name": string,
      				"notes": string,
      				"permissions": [
      					{
      						"company": number,
      						"kind": string,
      						"labels": [
      							string
      						],
      						"level": string,
      						"method": string,
      						"type": string
      					}
      				],
      				"v": [
      					number
      				]
      			}
      		],
      		"insecure": boolean,
      		"ipRanges": [
      			string
      		],
      		"key": string,
      		"language": string,
      		"measurements": {
      			string: string
      		},
      		"nickname": string,
      		"notAfter": string,
      		"notBefore": string,
      		"notes": string,
      		"options": {
      			string: string
      		},
      		"permissions": [
      			{
      				"company": number,
      				"kind": string,
      				"labels": [
      					string
      				],
      				"level": string,
      				"method": string,
      				"type": string
      			}
      		],
      		"referrers": [
      			string
      		],
      		"secret": string,
      		"services": [
      			string
      		],
      		"timezone": string,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"passwordPolicy": {
      		"expireMode": string,
      		"expireThreshold": number,
      		"includeLetters": boolean,
      		"includeNumbers": boolean,
      		"includeSpecial": boolean,
      		"includeUpperLower": boolean,
      		"minimumLength": number
      	},
      	"reqId": number,
      	"serverTime": string,
      	"sessionPolicy": {
      		"applications": [
      			string
      		],
      		"expireTimeout": number,
      		"idleAllowed": boolean,
      		"ipv4Ranges": [
      			string
      		],
      		"maxSessions": number,
      		"multiUser": string
      	},
      	"user": {
      		"company": number,
      		"contact": {
      			"addresses": {
      				string: string
      			},
      			"company": number,
      			"dates": {
      				string: string
      			},
      			"emails": {
      				string: string
      			},
      			"id": number,
      			"name": string,
      			"notes": string,
      			"options": {
      				string: string
      			},
      			"otherNames": {
      				string: string
      			},
      			"phones": {
      				string: number
      			},
      			"pictures": [
      				number
      			],
      			"roles": [
      				string
      			],
      			"urls": {
      				string: string
      			},
      			"v": [
      				number
      			]
      		},
      		"enabled": boolean,
      		"formats": {
      			string: string
      		},
      		"groups": [
      			{
      				"company": number,
      				"id": number,
      				"name": string,
      				"notes": string,
      				"permissions": [
      					{
      						"company": number,
      						"kind": string,
      						"labels": [
      							string
      						],
      						"level": string,
      						"method": string,
      						"type": string
      					}
      				],
      				"v": [
      					number
      				]
      			}
      		],
      		"language": string,
      		"login": string,
      		"measurements": {
      			string: string
      		},
      		"nickname": string,
      		"notify": [
      			{
      				"email": string,
      				"enabled": boolean,
      				"end": string,
      				"name": string,
      				"offline": [
      					string
      				],
      				"online": [
      					string
      				],
      				"sms": number,
      				"start": string,
      				"weekdays": [
      					boolean
      				]
      			}
      		],
      		"options": {
      			string: string
      		},
      		"passwordExpired": boolean,
      		"permissions": [
      			{
      				"company": number,
      				"kind": string,
      				"labels": [
      					string
      				],
      				"level": string,
      				"method": string,
      				"type": string
      			}
      		],
      		"timezone": string,
      		"v": [
      			number
      		]
      	}
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      28The session is valid, but the CompanyPolicies is missing.
      If you receive this error, please contact technical support.
      54The session is valid, but the User (or Machine) is missing.
      If you receive this error, please contact technical support.

      login

      Creates a new session and allows access to authorized services.
      Request message description
      PropertyTypeRequiredDescription
      passwordstringalwaysUser's password.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      userAgentstringoptionalApplication name. This should match the allowed applications from user's company's SessionPolicy.applications.
      usernamestringalwaysUser's email address.
      Request message structure
      login {
      	"password": string,
      	"reqId": number,
      	"userAgent": string,
      	"username": string
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      loginResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The username is not a valid email address.
      3The password is blank or not given.
      11The username and/or password are not correct.
      12The client application is not allowed based on the Company's policy.
      13The client IP address is not allowed based on the Company's policy.
      14The User's Company's policy does not allow for multiple sessions per User, and there is already another active session.
      28The User's Company cannot be found. If you encounter this error, please contact support.
      73There are too many concurrent sessions for this User.
      73There are too many concurrent WebSocket connections for this User.
      85The credentials are correct, but the User is not allowed to log in.

      logout

      Ends your session.
      Request message description
      PropertyTypeRequiredDescription
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      logout {
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      expirydatetimeThe timestamp from when you session expired.
      ghostIdstringYour old, no longer valid, session identifier.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      logoutResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"expiry": string,
      	"ghostId": string,
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.

      updateOwnContact

      Allows a User to update their own Contact. If your User has no associated Contact, you will receive a Contact not found error.
      Request message description
      PropertyTypeRequiredDescription
      addressesObject.<string, string>optionalMailing addresses Use the object key like a name of the address. Example keys: Home, Work, Park, etc.
      datesObject.<string, datetime>optionalDate information Use the object key like a name of the date. Example keys: Birthday, Started Date, Retired On, etc.
      emailsObject.<string, email>
      maximum-length of values: 254
      optionalEmail addresses Use the object key like a name of the address. Example keys: Home, Work, Support, Old, etc.
      namestringoptionalName for yourself.
      notesstringoptionalNotes for yourself.
      optionsObject.<string, string>optionalUncategorized information Use the object keys and values however you'd like.
      otherNamesObject.<string, string>
      maximum-length of values: 254
      optionalA collection of other names this person might go by. Use the object key like a name identifier. Example keys: Initials, Nickname, Maiden Name, etc.
      phonesObject.<string, phone?>optionalPhone numbers. Use the object key like a name of the phone number. Example keys: Mobile, Fax, Home, Office, etc.
      picturesArray.<uint64>
      for values see: Picture.id
      optionalPictures of yourself.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      rolesArray.<codified>optionalA list of roles they play in the Company.
      urlsObject.<string, url>
      maximum-length of values: 254
      optionalWebsites and other online resources Use the object key like a name of the address. Example keys: Downloads, Support, FTP, etc.
      Request message structure
      updateOwnContact {
      	"addresses": {
      		string: string
      	},
      	"dates": {
      		string: string
      	},
      	"emails": {
      		string: string
      	},
      	"name": string,
      	"notes": string,
      	"options": {
      		string: string
      	},
      	"otherNames": {
      		string: string
      	},
      	"phones": {
      		string: number
      	},
      	"pictures": [
      		number
      	],
      	"reqId": number,
      	"roles": [
      		string
      	],
      	"urls": {
      		string: string
      	}
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      updateOwnContactResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a contact object, or it is invalid.
      3The contact object does not contain an id, or it is invalid.
      3No valid changes would be performed.
      3The v was not an array, or contained too few numbers.
      3One of the otherNames keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the emails keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the phones keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the addresses keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the urls keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the dates keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the options keys or values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the pictures values is invalid.
      Returns an ErrorDetailInput as the errorDetails..
      6The wrong version key(s) were given.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      31Your User does not have a Contact defined.
      54Your User was not found. If the problem persists, please contact support.
      69One or more of the pictures identifiers given was not found.
      85Your User is disabled. If the problem persists, please contact support.

      updateOwnPassword

      Allows a session User to change their own password.
      Request message description
      PropertyTypeRequiredDescription
      currentstringalwaysYour current password, as verification that you are the proper account owner.
      passwordstringalwaysYour new password must conform to your company's password policy.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      updateOwnPassword {
      	"current": string,
      	"password": string,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      expiresdatetimeSpecific date/time of when the password will expire.
      messagestringAn English description of the error.
      passwordPolicyPasswordPolicyYour Company's password policy.
      passwordPolicy.expireModePasswordExpiryModeDefines how passwords expire.
      passwordPolicy.expireThresholdbyteThe threshold for expiry.
      passwordPolicy.includeLettersbooleanDo passwords require alphabetical characters.
      passwordPolicy.includeNumbersbooleanDo passwords require numeric characters.
      passwordPolicy.includeSpecialbooleanDo passwords require non-alphanumeric characters.
      passwordPolicy.includeUpperLowerbooleanDo passwords require upper-case and lower-case letters.
      passwordPolicy.minimumLengthbyteThe minimum number of characters required.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      updateOwnPasswordResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"expires": string,
      	"message": string,
      	"passwordPolicy": {
      		"expireMode": string,
      		"expireThreshold": number,
      		"includeLetters": boolean,
      		"includeNumbers": boolean,
      		"includeSpecial": boolean,
      		"includeUpperLower": boolean,
      		"minimumLength": number
      	},
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The current password is blank or not given.
      3The new password is blank or not given.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      11The current password is not correct.
      15The new password is not strong enough to comply with the PasswordPolicy requirements.
      17The current password cannot be the same as the new password.
      28Your CompanyPolicies is missing. If the problem persists, please contact support.
      28Your Company's PasswordPolicy is missing. If the problem persists, please contact support.
      54The session User was not found. If the problem persists, please contact support.
      85The session User is disabled. If the problem persists, please contact support.

      updateOwnPreferences

      Allows a session User to change their own preferences.
      Request message description
      PropertyTypeRequiredDescription
      formatsObject.<string, string>optionalFormatting help for dates, times, numbers.
      languagestringoptionalPreferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
      measurementsObject.<string, SystemsOfUnits?>optionalPreferred way of displaying ambiguous numbers in the context of measurements.
      notifyArray.<UserNotifications>optionalList of UserNotifications preferences. Please note that active times cannot overlap.
      optionsObject.<string, string>optionalAdditional options which do not fit in with the formats or measurements preferences. If a value of null is given, the option is removed. To keep the option, you can use a blank string. For convenience, if the value of an option is given as JSON (instead of a string), they are automatically serialized with no white-space.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      timezonecodifiedoptionalYour local Timezone used to calculate times.
      Request message structure
      updateOwnPreferences {
      	"formats": {
      		string: string
      	},
      	"language": string,
      	"measurements": {
      		string: string
      	},
      	"notify": [
      		{
      			"email": string,
      			"enabled": boolean,
      			"end": string,
      			"name": string,
      			"offline": [
      				string
      			],
      			"online": [
      				string
      			],
      			"sms": number,
      			"start": string,
      			"weekdays": [
      				boolean
      			]
      		}
      	],
      	"options": {
      		string: string
      	},
      	"reqId": number,
      	"timezone": string
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      updateOwnPreferencesResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3No valid changes would be performed.
      3The given language was not a valid region.
      3One of the keys given in the formats dictionary was blank.
      3One of the keys given in the measurements dictionary was blank.
      3One of the keys given in the options dictionary was blank.
      3One of the given notify values was null, had a blank name property, or was not a valid object.
      3One of the measurements could not be parsed.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the notify could not be parsed.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the notify did not contain a name.
      Returns an ErrorDetailInput as the errorDetails..
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      54Your User was not found. If the problem persists, please contact support.
      62The given timezone could not be found.
      Returns an ErrorDetailInput as the errorDetails..
      85Your User is disabled. If the problem persists, please contact support.

      Users and Groups

      getMachine

      Gets details of the specified Machine.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted Machine.
      machineParamKeyalwaysAn object to contain the "key" of the Machine.
      machine.keystringalwaysThe Machine's login.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getMachine {
      	"includeDeleted": boolean,
      	"machine": {
      		"key": string
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      machineMachineThe requested Machine.
      machine.companyuint64The company to which this user belongs.
      machine.enabledbooleanIndicates whether system access is disable.
      machine.formatsObject.<codified, datetimetemplate>
      maximum-length of values: 20
      The format strings defining the preferred way to display ambiguous values.
      machine.groupsArray.<uint64>A list of groups to which this machine account belongs.
      machine.insecurebooleanWhen true, no access restrictions (SelfMachine.secret, SelfMachine.referrers, or SelfMachine.ipRanges) are enforced.
      machine.ipRangesArray.<ipv4>
      maximum-length of values: 19
      Restrict service access to only the provided IP ranges. Currently we only support IPv4 ranges using CIDR slash-notation.
      machine.keystring
      maximum-length: 50
      The unique idenifier used to access the system.
      machine.languagecodified
      maximum-length: 5
      minimum-length: 2
      Preferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
      machine.measurementsObject.<codified, SystemsOfUnits>Preferred way of displaying ambiguous numbers in the context of measurements.
      machine.nicknamestring
      maximum-length: 100
      Human friendly name for these credentials
      machine.notAfterdatetimeAn optional timestamp that restricts this machine account from being used after the given date.
      machine.notBeforedatetimeAn optional timestamp that restricts this machine account from being used before the given date.
      machine.notesstring
      maximum-length: 8000
      Notes about this machine.
      machine.optionsObject.<codified, string>
      maximum-length of values: 20
      Additional options which do not fit in with the formats or measurements preferences.
      machine.permissionsArray.<Permission>Permission rules which override the group rules.
      machine.referrersArray.<url>
      maximum-length of values: 254
      Optional list of your managed domains from which this machine account can be used.
      machine.secretstring
      maximum-length: 1000
      A token used to encode or validate requests.
      machine.servicesArray.<url>
      maximum-length of values: 254
      List of system service URIs that this machine account is permitted to access.
      machine.timezonecodifiedThe service account's local timezone.
      machine.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getMachineResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"machine": {
      		"company": number,
      		"enabled": boolean,
      		"formats": {
      			string: string
      		},
      		"groups": [
      			number
      		],
      		"insecure": boolean,
      		"ipRanges": [
      			string
      		],
      		"key": string,
      		"language": string,
      		"measurements": {
      			string: string
      		},
      		"nickname": string,
      		"notAfter": string,
      		"notBefore": string,
      		"notes": string,
      		"options": {
      			string: string
      		},
      		"permissions": [
      			{
      				"company": number,
      				"kind": string,
      				"labels": [
      					string
      				],
      				"level": string,
      				"method": string,
      				"type": string
      			}
      		],
      		"referrers": [
      			string
      		],
      		"secret": string,
      		"services": [
      			string
      		],
      		"timezone": string,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a machine object, or it is invalid.
      3The machine object does not contain a key, or it is invalid.
      5You do not have permission to view Machines.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      127The requested Machine is not found.

      getMachinesList

      Gets the list of Machines for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      firststringoptional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      laststringoptional
      limituint16?optionalMaximum number of objects in this response.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getMachinesList {
      	"company": {
      		"id": number
      	},
      	"first": string,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"last": string,
      	"limit": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of Machines belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      machinesArray.<Machine>The list requested of Machines.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getMachinesListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"machines": [
      		{
      			"company": number,
      			"enabled": boolean,
      			"formats": {
      				string: string
      			},
      			"groups": [
      				number
      			],
      			"insecure": boolean,
      			"ipRanges": [
      				string
      			],
      			"key": string,
      			"language": string,
      			"measurements": {
      				string: string
      			},
      			"nickname": string,
      			"notAfter": string,
      			"notBefore": string,
      			"notes": string,
      			"options": {
      				string: string
      			},
      			"permissions": [
      				{
      					"company": number,
      					"kind": string,
      					"labels": [
      						string
      					],
      					"level": string,
      					"method": string,
      					"type": string
      				}
      			],
      			"referrers": [
      				string
      			],
      			"secret": string,
      			"services": [
      				string
      			],
      			"timezone": string,
      			"v": [
      				number
      			]
      		}
      	],
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view this Company's Machines.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.

      getSessionsList

      Gets the list of SessionFull for the specified Company.
      Request message description
      PropertyTypeRequiredDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getSessionsList {
      	"company": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of SessionFulls belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      sessionsArray.<SessionFull>The list of requested SessionFull.
      Response message structure
      getSessionsListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number,
      	"sessions": [
      		{
      			"active": boolean,
      			"company": number,
      			"created": string,
      			"expiry": string,
      			"handle": string,
      			"ipAddress": string,
      			"lastActivity": string,
      			"lastCommand": string,
      			"login": string,
      			"sockets": number,
      			"status": string,
      			"userAgent": string
      		}
      	]
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view SessionFulls for this Company.
      5You do not have permission to view Users for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.

      getSessionsListByUser

      Gets the list of SessionFulls for the specified User.
      Request message description
      PropertyTypeRequiredDescription
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      userParamLoginalwaysAn object to contain the "login" of the User.
      user.loginemailalwaysThe User's login.
      Request message structure
      getSessionsListByUser {
      	"reqId": number,
      	"user": {
      		"login": string
      	}
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      sessionsArray.<SessionFull>The list of requested SessionFull.
      userRespLoginCompanyAn object to contain the "login" of the User to which the array of SessionFulls belong.
      user.companyuint64Identifier of the Company to which the User belongs.
      user.loginstringThe User's login.
      Response message structure
      getSessionsListByUserResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number,
      	"sessions": [
      		{
      			"active": boolean,
      			"company": number,
      			"created": string,
      			"expiry": string,
      			"handle": string,
      			"ipAddress": string,
      			"lastActivity": string,
      			"lastCommand": string,
      			"login": string,
      			"sockets": number,
      			"status": string,
      			"userAgent": string
      		}
      	],
      	"user": {
      		"company": number,
      		"login": string
      	}
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a user object, or it is invalid.
      3The user object does not contain a login, or it is not an email address.
      5You do not have permission to view SessionFulls for this Company.
      5You do not have permission to view Users for this Company.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      54The User was not found by its unique identifier.

      getUser

      Gets details of the specified User.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted User.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      userParamLoginalwaysAn object to contain the "login" of the User.
      user.loginemailalwaysThe User's login.
      Request message structure
      getUser {
      	"includeDeleted": boolean,
      	"reqId": number,
      	"user": {
      		"login": string
      	}
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      userUserThe requested User.
      user.companyuint64The company to which this user belongs.
      user.contactuint64?Contact information for this user.
      user.enabledbooleanIndicates whether system access is disable.
      user.formatsObject.<codified, datetimetemplate>
      maximum-length of values: 20
      The format strings defining the preferred way to display ambiguous values.
      user.groupsArray.<uint64>A list of groups to which this user belongs.
      user.languagecodified
      maximum-length: 5
      minimum-length: 2
      Preferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
      user.loginemail
      maximum-length: 254
      minimum-length: 6
      Unique identifier of this user.
      user.measurementsObject.<codified, SystemsOfUnits>Preferred way of displaying ambiguous numbers in the context of measurements.
      user.nicknamestring
      maximum-length: 100
      Human friendly name for these credentials
      user.notifyArray.<UserNotifications>
      maximum-count: 7
      Definition of how and when to send alerts to the user.
      user.optionsObject.<codified, string>
      maximum-length of values: 20
      Additional options which do not fit in with the formats or measurements preferences.
      user.passwordExpiredbooleanIndicated whether the credentials have expired according to the company's policy.
      user.permissionsArray.<Permission>Individual permission rules which override the group rules.
      user.timezonecodifiedThe user's local timezone.
      user.vArray.<int32>
      fixed count: 2
      Object version keys used to validate synchronization for all object properties.
      user.v[0]int32The first element is for the general properties
      user.v[1]int32The second element is for the advanced properties
      Response message structure
      getUserResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number,
      	"user": {
      		"company": number,
      		"contact": number,
      		"enabled": boolean,
      		"formats": {
      			string: string
      		},
      		"groups": [
      			number
      		],
      		"language": string,
      		"login": string,
      		"measurements": {
      			string: string
      		},
      		"nickname": string,
      		"notify": [
      			{
      				"email": string,
      				"enabled": boolean,
      				"end": string,
      				"name": string,
      				"offline": [
      					string
      				],
      				"online": [
      					string
      				],
      				"sms": number,
      				"start": string,
      				"weekdays": [
      					boolean
      				]
      			}
      		],
      		"options": {
      			string: string
      		},
      		"passwordExpired": boolean,
      		"permissions": [
      			{
      				"company": number,
      				"kind": string,
      				"labels": [
      					string
      				],
      				"level": string,
      				"method": string,
      				"type": string
      			}
      		],
      		"timezone": string,
      		"v": [
      			number
      		]
      	}
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a user object, or it is invalid.
      3The user object does not contain a login, or it is an invalid email address.
      5You do not have permission to view Users.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      54The requested User is not found.

      getUserGroup

      Gets an existing UserGroup.
      Request message description
      PropertyTypeRequiredDefaultDescription
      includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted UserGroup.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      userGroupParamIdalwaysAn object to contain the "id" of the UserGroup.
      userGroup.iduint64alwaysIdentifier given as input for the command.
      Request message structure
      getUserGroup {
      	"includeDeleted": boolean,
      	"reqId": number,
      	"userGroup": {
      		"id": number
      	}
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      userGroupUserGroupThe requested UserGroup.
      userGroup.companyuint64The company to which this group belongs.
      userGroup.iduint64Unique identifier of this group.
      userGroup.namestring
      maximum-length: 100
      A name given to this group.
      userGroup.notesstringNotes about this group, and to whom this group should be applied.
      userGroup.permissionsArray.<Permission>Permissions for this group.
      userGroup.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      Response message structure
      getUserGroupResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number,
      	"userGroup": {
      		"company": number,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"permissions": [
      			{
      				"company": number,
      				"kind": string,
      				"labels": [
      					string
      				],
      				"level": string,
      				"method": string,
      				"type": string
      			}
      		],
      		"v": [
      			number
      		]
      	}
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a userGroup object, or it is invalid.
      3The requested userGroup id was invalid.
      5You do not have permission to view UserGroups.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      30The UserGroup was not found by its unique identifier.

      getUserGroupsList

      Gets the list of UserGroups for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      highestuint64?optional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      limituint16?optionalMaximum number of objects in this response.
      lowestuint64?optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getUserGroupsList {
      	"company": {
      		"id": number
      	},
      	"highest": number,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"limit": number,
      	"lowest": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of contacts belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      userGroupsArray.<UserGroup>The requested list of UserGroups.
      Response message structure
      getUserGroupsListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number,
      	"userGroups": [
      		{
      			"company": number,
      			"id": number,
      			"name": string,
      			"notes": string,
      			"permissions": [
      				{
      					"company": number,
      					"kind": string,
      					"labels": [
      						string
      					],
      					"level": string,
      					"method": string,
      					"type": string
      				}
      			],
      			"v": [
      				number
      			]
      		}
      	]
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view this Company's UserGroups.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.

      getUsersList

      Gets the list of Users for the specified Company.
      Request message description
      PropertyTypeRequiredDefaultDescription
      companyParamIdalwaysAn object to contain the "id" of the Company.
      company.iduint64alwaysIdentifier given as input for the command.
      firststringoptional
      includeArchivebooleanoptionalfalseWhen true, the command will also return archived objects.
      includeDeletedbooleanoptionalfalseWhen true, the command will also return deleted objects.
      laststringoptional
      limituint16?optionalMaximum number of objects in this response.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getUsersList {
      	"company": {
      		"id": number
      	},
      	"first": string,
      	"includeArchive": boolean,
      	"includeDeleted": boolean,
      	"last": string,
      	"limit": number,
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyRespIdAn object to contain the "id" of the Company to which the array of Users belong.
      company.iduint64?Identifier given as input for the command.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      usersArray.<User>The list of requested Users.
      Response message structure
      getUsersListResponse {
      	"company": {
      		"id": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number,
      	"users": [
      		{
      			"company": number,
      			"contact": number,
      			"enabled": boolean,
      			"formats": {
      				string: string
      			},
      			"groups": [
      				number
      			],
      			"language": string,
      			"login": string,
      			"measurements": {
      				string: string
      			},
      			"nickname": string,
      			"notify": [
      				{
      					"email": string,
      					"enabled": boolean,
      					"end": string,
      					"name": string,
      					"offline": [
      						string
      					],
      					"online": [
      						string
      					],
      					"sms": number,
      					"start": string,
      					"weekdays": [
      						boolean
      					]
      				}
      			],
      			"options": {
      				string: string
      			},
      			"passwordExpired": boolean,
      			"permissions": [
      				{
      					"company": number,
      					"kind": string,
      					"labels": [
      						string
      					],
      					"level": string,
      					"method": string,
      					"type": string
      				}
      			],
      			"timezone": string,
      			"v": [
      				number
      			]
      		}
      	]
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a company object, or it is invalid.
      3The company object does not contain an id, or it is invalid.
      5You do not have permission to view this Company's Users.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.

      killSession

      Terminates a SessionFull and forces the User to log back in.
      Request message description
      PropertyTypeRequiredDescription
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      sessionParamHandlealwaysAn object to contain the "handle" of the SessionFull.
      session.handlestringalwaysA "handle" identifying a session.
      Request message structure
      killSession {
      	"reqId": number,
      	"session": {
      		"handle": string
      	}
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      sessionSessionAn object which contains the SessionFull's handle, related User login, and owning Company id.
      session.companyuint64?Identifier of the Company to which this object belongs
      session.expirydatetimeA timestamp for when the Session will expire.
      session.handlestringA "handle" identifying a resource.
      session.loginstringThe User to which the Session belongs.
      Response message structure
      killSessionResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number,
      	"session": {
      		"company": number,
      		"expiry": string,
      		"handle": string,
      		"login": string
      	}
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a session object, or it is invalid.
      3The session object does not contain a handle, or it is invalid.
      5You do not have permission to kill this SessionFull.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      19The SessionFull was not found by its handle, or it is expired.

      mergeMachine

      Creates a new or updates an existing Machine.
      Request message description
      PropertyTypeRequiredDescription
      machineObject.<string, ?>alwaysAn object to contain the Machine parameters.
      machine.companyuint64?createThe company to which this Machine belongs. After creation, this value is read-only.
      machine.enabledbooleanoptionalIndicates whether system access is disable.
      machine.formatsObject.<string, string>optionalThe format strings defining the preferred way to display ambiguous values.
      machine.groupsArray.<uint64>
      for values see: UserGroup.id
      optionalA list of UserGroup to which this Machine belongs.
      machine.insecurebooleanoptionalIndicates whether completely insecure/unrestricted system access is allowed.
      machine.ipRangesArray.<ipv4>
      maximum-length of values: 19
      optionalRestrict Machine access to only the provided IPv4 ranges (using CIDR slash-notation).
      machine.keystringupdateThe unique identifier of the Machine you want to update.
      machine.languagestring
      maximum-length: 5
      minimum-length: 2
      optionalPreferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
      machine.measurementsObject.<string, SystemsOfUnits?>optionalPreferred way of displaying ambiguous numbers in the context of measurements.
      machine.nicknamestring
      maximum-length: 100
      optionalHuman friendly name for this Machine.
      machine.notAfterdatetimeoptionalAn optional timestamp that restricts this Machine from being used after the given date.
      machine.notBeforedatetimeoptionalAn optional timestamp that restricts this Machine from being used before the given date.
      machine.notesstring
      maximum-length: 8000
      optionalNotes about this Machine.
      machine.optionsObject.<string, string>optionalAdditional options which do not fit in with the formats or measurements preferences.
      machine.permissionsArray.<ParamPermission>optionalIndividual permission rules which override the UserGroup rules.
      machine.referrersArray.<url>
      maximum-length of values: 254
      optionalOptional list of your managed domains from which this Machine can be used.
      machine.secretbooleanoptionalA flag to either remove, or generate a new SelfMachine.secret.
      machine.servicesArray.<url>
      maximum-length of values: 254
      optionalList of Fleet Freedom service URIs that this Machine is permitted to access.
      machine.timezonecodifiedoptionalThe Machine's local timezone.
      machine.vArray.<int32>optional
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeMachine {
      	"machine": {
      		"company": number,
      		"enabled": boolean,
      		"formats": {
      			string: string
      		},
      		"groups": [
      			number
      		],
      		"insecure": boolean,
      		"ipRanges": [
      			string
      		],
      		"key": string,
      		"language": string,
      		"measurements": {
      			string: string
      		},
      		"nickname": string,
      		"notAfter": string,
      		"notBefore": string,
      		"notes": string,
      		"options": {
      			string: string
      		},
      		"permissions": [
      			{
      				"company": number,
      				"kind": string,
      				"labels": [
      					string
      				],
      				"level": string,
      				"method": string
      			}
      		],
      		"referrers": [
      			string
      		],
      		"secret": boolean,
      		"services": [
      			string
      		],
      		"timezone": string,
      		"v": [
      			number
      		]
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      machineRespKeyCompanyAn object which contains the "key" and "company" keys when there is no error.
      machine.companyuint64Identifier of the Company to which the Machine belongs.
      machine.keystringThe Machine's key.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeMachineResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"machine": {
      		"company": number,
      		"key": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      2Unable to generate unique key.
      If you receive this error, please contact technical support.
      3The request does not contain a machine object, or it is invalid.
      3No valid changes would be performed.
      3The given language value was not a valid culture.
      3One of the keys given in the machine.formats dictionary was blank.
      3One of the keys given in the machine.measurements dictionary was blank.
      3One of the keys given in the machine.options dictionary was blank.
      3During create: When creating a new Machine, a key was given. Keys are generated by the system during creation.
      3During create: When creating a new Machine, a company was not given.
      3One of the schemes in the given machine.services array was not allowed.
      Returns an ErrorDetailEnum as the errorDetails..
      3One of the schemes in the given machine.referrers array was not allowed.
      Returns an ErrorDetailEnum as the errorDetails..
      3The given machine.notBefore value could not be parsed into a date/time.
      Returns an ErrorDetailInput as the errorDetails..
      3The given machine.notAfter value could not be parsed into a date/time.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the values given in the machine.measurements dictionary was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the values given in the machine.groups array was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the values given in the machine.permissions array was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the values given in the machine.services array was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the values given in the machine.referrers array was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the values given in the machine.ipRanges array was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the values given in the machine.ipRanges array was a loopback.
      Returns an ErrorDetailInput as the errorDetails..
      3During update: When updating a Machine, the given key was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      5During create: You do not have sufficient permission to create a new Machine.
      5During update: You do not have sufficient permission to update Machines.
      6During update: When updating a Machine, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      30One or more of the UserGroups given could not be found, or were from a different Company.
      Returns an ErrorDetailBadIds as the errorDetails..
      62The given Timezone value could not be found.
      Returns an ErrorDetailInput as the errorDetails..
      71The Machine you are creating or updating would have higher, or more, permissions than you do.
      Returns an ErrorDetailEscalation as the errorDetails..
      127During update: When updating a Machine and the Machine does not exists.
      130During update: When updating a Machine, the machine.company can not be changed.

      mergeUser

      Creates a new or updates an existing User.
      Request message description
      PropertyTypeRequiredDescription
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      userObject.<string, ?>always
      user.companyuint64?createThe company to which this User belongs. After creation, this value is read-only.
      user.contactuint64?optionalContact information for this User.
      user.enabledbooleanoptionalIndicates whether system access is disable.
      user.formatsObject.<codified, string>optionalThe format strings defining the preferred way to display ambiguous values.
      user.groupsArray.<uint64>
      for values see: UserGroup.id
      optionalA list of UserGroups to which this User is a member.
      user.languagestring
      maximum-length: 5
      minimum-length: 2
      optionalPreferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
      user.loginemailalwaysThe unique identifier of the User you want to update.
      user.measurementsObject.<codified, SystemsOfUnits?>optionalPreferred way of displaying ambiguous numbers in the context of measurements.
      user.nicknamestring
      maximum-length: 100
      optionalHuman friendly name for these credentials
      user.notifyArray.<UserNotifications>optionalDefinition of how and when to send alerts to the User.
      user.optionsObject.<codified, string>optionalAdditional options which do not fit in with the formats or measurements preferences.
      user.passwordstringcreateThis User's password.
      user.passwordExpiredbooleanoptionalIndicated whether the credentials have expired according to the company's policy.
      user.permissionsArray.<ParamPermission>
      maximum-count of values: 254
      optionalIndividual permission rules which override the UserGroup rules.
      user.timezonecodifiedoptionalThe User's local timezone.
      user.vArray.<int32>optional
      Request message structure
      mergeUser {
      	"reqId": number,
      	"user": {
      		"company": number,
      		"contact": number,
      		"enabled": boolean,
      		"formats": {
      			string: string
      		},
      		"groups": [
      			number
      		],
      		"language": string,
      		"login": string,
      		"measurements": {
      			string: string
      		},
      		"nickname": string,
      		"notify": [
      			{
      				"email": string,
      				"enabled": boolean,
      				"end": string,
      				"name": string,
      				"offline": [
      					string
      				],
      				"online": [
      					string
      				],
      				"sms": number,
      				"start": string,
      				"weekdays": [
      					boolean
      				]
      			}
      		],
      		"options": {
      			string: string
      		},
      		"password": string,
      		"passwordExpired": boolean,
      		"permissions": [
      			{
      				"company": number,
      				"kind": string,
      				"labels": [
      					string
      				],
      				"level": string,
      				"method": string
      			}
      		],
      		"timezone": string,
      		"v": [
      			number
      		]
      	}
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      userRespLoginCompany
      user.companyuint64Identifier of the Company to which the User belongs.
      user.loginstringThe User's login.
      Response message structure
      mergeUserResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number,
      	"user": {
      		"company": number,
      		"login": string
      	}
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a user object, or it is invalid.
      3No valid changes would be performed.
      3The user object did not contain a login, or was not a valid email address.
      3The user object contains a contact which is not valid.
      3The user object contains a blank password.
      3The given language was not a valid region.
      3One of the keys given in the user.formats dictionary was blank.
      3One of the keys given in the user.measurements dictionary was blank.
      3One of the keys given in the user.options dictionary was blank.
      3One of the given user.notify values was null, had a blank name property, or was not a valid object.
      3The contact given is from a different company than the User.
      3During create: When creating a new User, a company was not given.
      3During create: When creating a new User, a password was not given.
      3During update: When updating a User, the company can not be changed.
      3One of the user.measurements could not be parsed.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the user.notify preferences could not be parsed.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the user.notify preferences did not contain a name.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the user.groups was not given as a number.
      Returns an ErrorDetailInput as the errorDetails..
      3One of the user.permissions was invalid.
      Returns an ErrorDetailInput as the errorDetails..
      5During create: You do not have sufficient permission to create a new User.
      5During update: You do not have sufficient permission to update Users.
      5During update: You do not have sufficient permission to update User permissions.
      5During update: You do not have sufficient permission to view contacts.
      6During update: When updating a User, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      15The user.password given for the User was not strong enough.
      16You cannot execute this command because your password has expired.
      28The User's company's password policy could not be found.
      If you receive this error, please contact technical support.
      30One or more of the UserGroups given could not be found, or were from a different company.
      Returns an ErrorDetailBadIds as the errorDetails..
      31The Contact given could not be found.
      54During update: When updating a User and the User does not exists.
      55During create: When creating a new User and the User already exists.
      57You cannot disable your own User.
      62The given Timezone could not be found.
      Returns an ErrorDetailInput as the errorDetails..
      71The User you are creating or updating would have higher, or more, permissions than you do.
      Returns an ErrorDetailEscalation as the errorDetails..
      130The specified user.contact was found, but was not in the same Company as the given User.
      130During update: When updating an User, the user.company can not be changed.

      mergeUserGroup

      Creates a new or updates an existing UserGroup.
      Request message description
      PropertyTypeRequiredDescription
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      userGroupObject.<string, ?>alwaysA simple object to contain the UserGroup parameters.
      userGroup.companyuint64?createThe company to which this UserGroup belongs. After creation, this value is read-only.
      userGroup.iduint64?updateThe unique identifier of the UserGroup you want to update.
      userGroup.namestring
      maximum-length: 100
      createName for the UserGroup.
      userGroup.notesstringoptionalNotes for the UserGroup.
      userGroup.permissionsArray.<ParamPermission>
      maximum-count of values: 254
      optionalList of permissions assigned to members of this UserGroup.
      userGroup.vArray.<int32>optional
      Request message structure
      mergeUserGroup {
      	"reqId": number,
      	"userGroup": {
      		"company": number,
      		"id": number,
      		"name": string,
      		"notes": string,
      		"permissions": [
      			{
      				"company": number,
      				"kind": string,
      				"labels": [
      					string
      				],
      				"level": string,
      				"method": string
      			}
      		],
      		"v": [
      			number
      		]
      	}
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      userGroupRespIdCompanyAn object which contains the "id" and "company".
      userGroup.companyuint64Identifier of the Company to which this object belongs.
      userGroup.iduint64?Identifier given as input for the command.
      Response message structure
      mergeUserGroupResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number,
      	"userGroup": {
      		"company": number,
      		"id": number
      	}
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a userGroup object, or it is invalid.
      3Not enough keys exist in the userGroup object.
      3During create: When creating a new UserGroup, a company was not given.
      3During create: When creating a new UserGroup, a name was not given, or it is invalid.
      3During update: When updating a UserGroup, the id was invalid.
      3During update: When updating a UserGroup, the userGroup object contained too few keys.
      5During create: You do not have permission to create a new UserGroup.
      5During update: You do not have permission to update UserGroups.
      6During update: When updating a UserGroup, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      30During update: The UserGroup was not found by its unique identifier.
      71Resulting permissions would grant a higher level of access than session User's own access level.
      130During update: When updating a UserGroup, the userGroup.company can not be changed.

      removeMachine

      Deletes an existing Machine.
      Request message description
      PropertyTypeRequiredDescription
      machineParamKeyalwaysAn object to contain the "key" of the Machine.
      machine.keystringalwaysThe Machine's login.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeMachine {
      	"machine": {
      		"key": string
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      machineRespKeyDeletedAn object which contains the Machine's key, owning Company id, and deleted status.
      machine.companyuint64Identifier of the Company to which the Machine belongs.
      machine.deletedbooleanFlag showing if the object is deleted.
      machine.keystringThe Machine's key.
      machine.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeMachineResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"machine": {
      		"company": number,
      		"deleted": boolean,
      		"key": string,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a machine object, or it is invalid.
      3The machine object does not contain a key, or it is invalid.
      5You do not have permission to delete Machines.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      127The requested Machine is not found.

      removeUser

      Deletes an existing User.
      Request message description
      PropertyTypeRequiredDescription
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      userParamLoginalwaysAn object to contain the "login" of the User.
      user.loginemailalwaysThe User's login.
      Request message structure
      removeUser {
      	"reqId": number,
      	"user": {
      		"login": string
      	}
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      userRespLoginDeletedAn object which contains the User's login, owning Company id, and deleted status.
      user.companyuint64Identifier of the Company to which the User belongs.
      user.deletedbooleanFlag showing if the object is deleted.
      user.loginstringThe User's login.
      user.vArray.<uint32>
      Response message structure
      removeUserResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number,
      	"user": {
      		"company": number,
      		"deleted": boolean,
      		"login": string,
      		"v": [
      			number
      		]
      	}
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a user object, or it is invalid.
      3The user object does not contain a login, or it is an invalid email address.
      5You do not have permission to delete Users.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      54The requested User is not found.
      57You cannot delete your own User.

      removeUserGroup

      Deletes an existing UserGroup.
      Request message description
      PropertyTypeRequiredDescription
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      userGroupParamIdalwaysAn object to contain the "id" of the UserGroup.
      userGroup.iduint64alwaysIdentifier given as input for the command.
      Request message structure
      removeUserGroup {
      	"reqId": number,
      	"userGroup": {
      		"id": number
      	}
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      userGroupRespDeletedAn object which contains the "id" and "company" keys when there is no error.
      userGroup.companyuint64Identifier of the Company to which this object belongs.
      userGroup.deletedbooleanFlag showing if the object is deleted.
      userGroup.iduint64?Identifier given as input for the command.
      userGroup.vArray.<uint32>
      Response message structure
      removeUserGroupResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number,
      	"userGroup": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	}
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a userGroup object, or it is invalid.
      3The requested userGroup id was invalid.
      5You do not have permission to delete UserGroups.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      30The UserGroup was not found by its unique identifier.
      65The UserGroup is currently in use. Please remove any Users who are a member of the UserGroup, then try again.

      restoreMachine

      Restores the specified Machine if it's been deleted.
      Request message description
      PropertyTypeRequiredDescription
      machineParamKeyalwaysAn object to contain the "key" of the Machine.
      machine.keystringalwaysThe Machine's login.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreMachine {
      	"machine": {
      		"key": string
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      machineRespKeyDeletedAn object which contains the Machine's key, owning Company id, and deleted status.
      machine.companyuint64Identifier of the Company to which the Machine belongs.
      machine.deletedbooleanFlag showing if the object is deleted.
      machine.keystringThe Machine's key.
      machine.vArray.<uint32>
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreMachineResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"machine": {
      		"company": number,
      		"deleted": boolean,
      		"key": string,
      		"v": [
      			number
      		]
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a machine object, or it is invalid.
      3The machine object does not contain a key, or it is invalid.
      5You do not have permission to restore deleted Machines.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      127The requested Machine is not found.
      128The requested Machine was found, but is not marked as deleted.

      restoreUser

      Restores the specified User if it's been deleted.
      Request message description
      PropertyTypeRequiredDescription
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      userParamLoginalwaysAn object to contain the "login" of the User.
      user.loginemailalwaysThe User's login.
      Request message structure
      restoreUser {
      	"reqId": number,
      	"user": {
      		"login": string
      	}
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      userRespLoginDeletedAn object which contains the User's login, owning Company id, and deleted status.
      user.companyuint64Identifier of the Company to which the User belongs.
      user.deletedbooleanFlag showing if the object is deleted.
      user.loginstringThe User's login.
      user.vArray.<uint32>
      Response message structure
      restoreUserResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number,
      	"user": {
      		"company": number,
      		"deleted": boolean,
      		"login": string,
      		"v": [
      			number
      		]
      	}
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a user object, or it is invalid.
      3The user object does not contain a login, or it is an invalid email address.
      5You do not have permission to restore Users.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      54The requested User is not found.
      55The requested User not found, but is not marked as deleted.

      restoreUserGroup

      Restores a previously deleted UserGroup.
      Request message description
      PropertyTypeRequiredDescription
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      userGroupParamIdalwaysAn object to contain the "id" of the UserGroup.
      userGroup.iduint64alwaysIdentifier given as input for the command.
      Request message structure
      restoreUserGroup {
      	"reqId": number,
      	"userGroup": {
      		"id": number
      	}
      }
      Response message description
      PropertyTypeDescription
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      userGroupRespDeletedAn object which contains the "id" and "company" keys when there is no error.
      userGroup.companyuint64Identifier of the Company to which this object belongs.
      userGroup.deletedbooleanFlag showing if the object is deleted.
      userGroup.iduint64?Identifier given as input for the command.
      userGroup.vArray.<uint32>
      Response message structure
      restoreUserGroupResponse {
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number,
      	"userGroup": {
      		"company": number,
      		"deleted": boolean,
      		"id": number,
      		"v": [
      			number
      		]
      	}
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a userGroup object, or it is invalid.
      3The requested userGroup id was invalid.
      5You do not have permission to delete UserGroups.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      30The UserGroup was not found by its unique identifier.
      66The UserGroup was found, but is not marked as deleted.

      White-labelling

      getCompanyReseller

      Gets details of the specified CompanyReseller.
      Request message description
      PropertyTypeRequiredDescription
      companyResellerParamIdalwaysAn object to contain the "id" key.
      companyReseller.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      getCompanyReseller {
      	"companyReseller": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyResellerCompanyResellerThe requested CompanyReseller.
      companyReseller.contactInfoObject.<string, uint64>
      maximum-count of keys: 100
      for values see: Contact.id
      A list of Contacts for company specific things like Technical Support, Billing, etc...
      companyReseller.domainstring
      maximum-length: 100
      The URN and path to the instance of v4. It does not contain the protocol because all instances are required to be HTTPS.
      companyReseller.favouritestring
      maximum-length: 200
      The name of the icon file used for browser bookmarks.
      companyReseller.gamutObject.<string, ColourStyle>
      maximum-length of keys: 25
      Colours used as templates for status tags, labels, and places.
      companyReseller.graphicsObject.<string, codified>
      maximum-length of keys: 25
      maximum-length of values: 30
      A list of symbol names and their corresponding FontAwesome icon names.
      companyReseller.iconstring
      maximum-length: 200
      The name of the image uploaded as the logo (used for collapsed/mobile view).
      companyReseller.iduint64Unique identifier of the Company.
      companyReseller.languagesArray.<codified>
      maximum-length of values: 5
      A list of supported languages for your customers.
      companyReseller.notifyEmailNotificationServerEmailThe server used for notification and conversational email messages sent and received by the system.
      companyReseller.notifyEmail.incomingAddressstringThe domain or IP address of the incoming email server.
      companyReseller.notifyEmail.incomingLoginstringThe username used to login to the incoming email server.
      companyReseller.notifyEmail.incomingMessageNumberuint32IMAP message sequence number so only recent messages are retrieved.
      companyReseller.notifyEmail.incomingPortuint16The port number of the incoming email server.
      companyReseller.notifyEmail.incomingSecurebooleanIs the incoming email server using a secure SSL/TLS connection (it should).
      companyReseller.notifyEmail.incomingTypestringThe type of incoming protocol to use (IMAP or POP3).
      companyReseller.notifyEmail.outgoingAddressstringThe domain or IP address of the outgoing email server.
      companyReseller.notifyEmail.outgoingLoginstringThe username used to login to the outgoing email server.
      companyReseller.notifyEmail.outgoingPortuint16The port number of the outgoing email server.
      companyReseller.notifyEmail.outgoingReplyToemailAn optional field which can be set as the "sent from" and/or "reply-to" address.
      companyReseller.notifyEmail.outgoingSecurebooleanIs the outgoing email server using a secure SSL/TLS connection (it should).
      companyReseller.notifyEmail.outgoingTypestringThe type of outgoing protocol to use (only SMTP).
      companyReseller.notifySmsNotificationServerSmsDefinition for load-balanced outbound SMS numbers for the reseller.
      companyReseller.notifySms.notifyLimituint16A per-number/per-day limit on the amount of Notifications sent.
      companyReseller.notifySms.phoneNumbersObject.<string, Array.<phone>>
      fixed length of keys: 2
      All phone numbers listed by the country (using two-digit ISO 3166-1 alpha-2 country codes) they each serve.
      companyReseller.parentuint64The unique identifier of this company's parent organization.
      companyReseller.recoverBodystringThe body of the email sent to a user requesting a password reset.
      companyReseller.recoverIsHtmlboolean
      companyReseller.recoverSubjectstringThe subject of the email sent to a user requesting a password reset.
      companyReseller.serviceNamestring
      maximum-length: 150
      The name of the branded service being provided to the seller's customers.
      companyReseller.termsPreamblestringA preamble to the general terms and conditions offered by Fleet Freedom.
      companyReseller.termsUpdateddatetimeThe date and time when the terms were updated. This will promt users who are logging-in to re-agree to the new terms
      companyReseller.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
      companyReseller.websiteObject.<string, colour>
      maximum-length of keys: 25
      maximum-length of values: 22
      Themed colours used in the web-based UI.
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      getCompanyResellerResponse {
      	"companyReseller": {
      		"contactInfo": {
      			string: number
      		},
      		"domain": string,
      		"favourite": string,
      		"gamut": {
      			string: {
      				"fill": string,
      				"stroke": string
      			}
      		},
      		"graphics": {
      			string: string
      		},
      		"icon": string,
      		"id": number,
      		"languages": [
      			string
      		],
      		"logo": string,
      		"notifyEmail": {
      			"incomingAddress": string,
      			"incomingLogin": string,
      			"incomingMessageNumber": number,
      			"incomingPort": number,
      			"incomingSecure": boolean,
      			"incomingType": string,
      			"outgoingAddress": string,
      			"outgoingLogin": string,
      			"outgoingPort": number,
      			"outgoingReplyTo": string,
      			"outgoingSecure": boolean,
      			"outgoingType": string
      		},
      		"notifySms": {
      			"notifyLimit": number,
      			"phoneNumbers": {
      				string: [
      					number
      				]
      			}
      		},
      		"parent": number,
      		"recoverBody": string,
      		"recoverIsHtml": boolean,
      		"recoverSubject": string,
      		"serviceName": string,
      		"termsPreamble": string,
      		"termsUpdated": string,
      		"v": [
      			number
      		],
      		"website": {
      			string: string
      		}
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      3The request does not contain a companyReseller object, or it is invalid.
      3The companyReseller object does not contain an id, or it is invalid.
      5You do not have permission to view this Company.
      5You do not have permission to view this CompanyReseller.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.
      28The CompanyReseller was not found by its unique identifier.

      mergeCompanyReseller

      Adds or updates the CompanyReseller to a Company.
      Request message description
      PropertyTypeRequiredDescription
      companyResellerObject.<string, ?>alwaysA simple object to contain the CompanyReseller parameters.
      companyReseller.contactInfoObject.<string, uint64?>
      maximum-count of keys: 100
      for values see: Contact.id
      optionalA list of Contacts for company specific things like Technical Support, Billing, etc...
      companyReseller.domainstring
      maximum-length: 100
      createThe URN and path to the instance of v4. It does not contain the protocol because all instances are required to be HTTPS.
      companyReseller.favouritestring
      maximum-length: 200
      optionalThe name of the icon file used for browser bookmarks.
      companyReseller.gamutObject.<string, ColourStyle>
      maximum-length of keys: 25
      createColours used as templates for status tags, labels, and places.
      companyReseller.graphicsObject.<string, codified>
      maximum-length of keys: 25
      maximum-length of values: 30
      createA list of symbol names and their corresponding FontAwesome icon names.
      companyReseller.iconstring
      maximum-length: 200
      createThe name of the image uploaded as the logo (used for collapsed/mobile view).
      companyReseller.iduint64alwaysThe unique identifier of the company you want to update.
      companyReseller.languagesArray.<codified>
      maximum-length of values: 5
      optionalA list of supported languages for your customers.
      companyReseller.notifyEmailObject.<string, ?>createSettings for sending and receiving email notifcations and asset messages.
      companyReseller.notifyEmail.incomingAddressstringoptionalThe domain or IP address of the incoming email server.
      companyReseller.notifyEmail.incomingLoginstringoptionalThe username used to login to the incoming email server.
      companyReseller.notifyEmail.incomingMessageNumberuint32?optionalIMAP message sequence number so only recent messages are retrieved.
      companyReseller.notifyEmail.incomingPasswordstringoptionalThe password used to login to the incoming email server.
      companyReseller.notifyEmail.incomingPortuint16?optionalThe port number of the incoming email server.
      companyReseller.notifyEmail.incomingSecurebooleanoptionalIs the incoming email server using a secure SSL/TLS connection (it should).
      companyReseller.notifyEmail.incomingTypestringoptionalThe type of incoming protocol to use (IMAP or POP3).
      companyReseller.notifyEmail.outgoingAddressstringoptionalThe domain or IP address of the outgoing email server.
      companyReseller.notifyEmail.outgoingLoginstringoptionalThe username used to login to the outgoing email server.
      companyReseller.notifyEmail.outgoingPasswordstringoptionalThe password used to login to the outgoing email server.
      companyReseller.notifyEmail.outgoingPortuint16?optionalThe port number of the outgoing email server.
      companyReseller.notifyEmail.outgoingReplyToemailoptionalAn optional field which can be set as the "sent from" and/or "reply-to" address.
      companyReseller.notifyEmail.outgoingSecurebooleanoptionalIs the outgoing email server using a secure SSL/TLS connection (it should).
      companyReseller.notifySmsObject.<string, ?>createSettings for sending and receiving SMS notifcations and asset messages.
      companyReseller.notifySms.notifyLimituint16?optionalA per-number/per-day limit on the amount of Notifications sent.
      companyReseller.notifySms.phoneNumbersObject.<string, Array.<phone>>
      fixed length of keys: 2
      optionalAll phone numbers listed by the country (using two-digit ISO 3166-1 alpha-2 country codes) they each serve.
      companyReseller.recoverBodystringcreateThe body of the email sent to a user requesting a password reset.
      companyReseller.recoverIsHtmlbooleanoptional
      companyReseller.recoverSubjectstringoptionalThe subject of the email sent to a user requesting a password reset.
      companyReseller.serviceNamestring
      maximum-length: 150
      createThe name of the branded service being provided to the seller's customers.
      companyReseller.termsPreamblestringoptionalA small body of text added as a preamble for the Trak-iT Wireless Inc. terms of service.
      companyReseller.termsUpdateddatetimeoptionalA timestamp from when the preamble was changed.
      companyReseller.vArray.<int32>optional
      companyReseller.websiteObject.<string, colour>
      maximum-length of keys: 25
      maximum-length of values: 22
      createThemed colours used in the web-based UI.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      mergeCompanyReseller {
      	"companyReseller": {
      		"contactInfo": {
      			string: number
      		},
      		"domain": string,
      		"favourite": string,
      		"gamut": {
      			string: {
      				"fill": string,
      				"stroke": string
      			}
      		},
      		"graphics": {
      			string: string
      		},
      		"icon": string,
      		"id": number,
      		"languages": [
      			string
      		],
      		"logo": string,
      		"notifyEmail": {
      			"incomingAddress": string,
      			"incomingLogin": string,
      			"incomingMessageNumber": number,
      			"incomingPassword": string,
      			"incomingPort": number,
      			"incomingSecure": boolean,
      			"incomingType": string,
      			"outgoingAddress": string,
      			"outgoingLogin": string,
      			"outgoingPassword": string,
      			"outgoingPort": number,
      			"outgoingReplyTo": string,
      			"outgoingSecure": boolean
      		},
      		"notifySms": {
      			"notifyLimit": number,
      			"phoneNumbers": {
      				string: [
      					number
      				]
      			}
      		},
      		"recoverBody": string,
      		"recoverIsHtml": boolean,
      		"recoverSubject": string,
      		"serviceName": string,
      		"termsPreamble": string,
      		"termsUpdated": string,
      		"v": [
      			number
      		],
      		"website": {
      			string: string
      		}
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyResellerRespIdParentAn object which contains the "id" and "company" keys.
      companyReseller.iduint64?Identifier given as input for the command.
      companyReseller.parentuint64?Identifier of the parent to which this company belongs
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      mergeCompanyResellerResponse {
      	"companyReseller": {
      		"id": number,
      		"parent": number
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a companyReseller object, or it is invalid.
      3No valid changes would be performed.
      3The value for companyReseller.notifyEmail.incomingType was invalid. It can only be IMAP or POP3.
      3The value for companyReseller.notifyEmail.outgoingReplyTo was not valid email address.
      3One of the keys in the companyReseller.notifySms.phoneNumbers object is blank.
      3One of the values in the companyReseller.notifySms.phoneNumbers object is not valid.
      3During create: When adding a CompanyReseller, the companyReseller.id was not given.
      3During create: When adding a CompanyReseller, the companyReseller.serviceName was not given or was blank.
      3During create: When adding a CompanyReseller, the companyReseller.logo was not given.
      3During create: When adding a CompanyReseller, the companyReseller.icon was not given.
      3During create: When adding a CompanyReseller, the companyReseller.domain was not given.
      3During create: When adding a CompanyReseller, the companyReseller.website was not given or was invalid.
      3During create: When adding a CompanyReseller, the companyReseller.graphics was not given or was invalid.
      3During create: When adding a CompanyReseller, the companyReseller.gamut was not given or was invalid.
      3During create: When adding a CompanyReseller, the companyReseller.recoverBody was not given or was blank.
      3During update: When updating the CompanyReseller, the v was not an array, or contained too few numbers.
      3During update: When updating the CompanyReseller, the companyReseller.serviceName was given as blank or white-space.
      3During update: When updating the CompanyReseller, the companyReseller.logo was given as blank or white-space.
      3During update: When updating the CompanyReseller, the companyReseller.icon was given as blank or white-space.
      3During update: When updating the CompanyReseller, the companyReseller.domain was given as blank or white-space.
      5You do not have permission to add a CompanyReseller.
      5You do not have permission to update the CompanyReseller.
      6During update: When updating a CompanyReseller, an incorrect v value was given as input.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.
      106During update: The CompanyReseller was not found by its unique identifier.
      130The resulting CompanyReseller.recoverSubject and CompanyReseller.recoverBody do not contain the required %GUID%.
      130During update: When updating the CompanyReseller, the resulting NotificationServerEmail would be invalid.
      130During update: When updating the CompanyReseller, the resulting NotificationServerSms would be invalid.

      removeCompanyReseller

      Deletes an existing CompanyReseller.
      Request message description
      PropertyTypeRequiredDescription
      companyResellerParamIdalwaysAn object to contain the "id" key.
      companyReseller.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      removeCompanyReseller {
      	"companyReseller": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyResellerRespParentDeletedAn object which contains the company's unique identifier and deleted status.
      companyReseller.deletedbooleanFlag showing if the object is deleted.
      companyReseller.iduint64?Identifier given as input for the command.
      companyReseller.parentuint64Identifier of the parent to which the Company is a child.
      companyReseller.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      removeCompanyResellerResponse {
      	"companyReseller": {
      		"deleted": boolean,
      		"id": number,
      		"parent": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a companyReseller object, or it is invalid.
      3The companyReseller object does not contain an id, or it is invalid.
      5You do not have permission to view this Company.
      5You do not have permission to delete this CompanyReseller.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.
      106The CompanyReseller was not found by its unique identifier.

      restoreCompanyReseller

      Restores the specified CompanyReseller.
      Request message description
      PropertyTypeRequiredDescription
      companyResellerParamIdalwaysAn object to contain the "id" key.
      companyReseller.iduint64alwaysIdentifier given as input for the command.
      reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
      Request message structure
      restoreCompanyReseller {
      	"companyReseller": {
      		"id": number
      	},
      	"reqId": number
      }
      Response message description
      PropertyTypeDescription
      companyResellerRespParentDeletedAn object which contains the company's unique identifier and deleted status.
      companyReseller.deletedbooleanFlag showing if the object is deleted.
      companyReseller.iduint64?Identifier given as input for the command.
      companyReseller.parentuint64Identifier of the parent to which the Company is a child.
      companyReseller.vArray.<uint32>
      errorCodeErrorCodeThe unique, numeric error code when processing this request.
      errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
      messagestringAn English description of the error.
      reqIdint32?Identifier used by external system to correlate requests to responses.
      Response message structure
      restoreCompanyResellerResponse {
      	"companyReseller": {
      		"deleted": boolean,
      		"id": number,
      		"parent": number,
      		"v": [
      			number
      		]
      	},
      	"errorCode": number,
      	"errorDetails": {
      		"kind": string
      	},
      	"message": string,
      	"reqId": number
      }
      Possible exceptions
      Error CodeDescription
      2A communication error occurred.
      If you receive this error, please contact technical support.
      3The request does not contain a companyReseller object, or it is invalid.
      3The companyReseller object does not contain an id, or it is invalid.
      5You do not have permission to view this Company.
      5You do not have permission to restore this CompanyReseller.
      7You cannot execute this command because your session has expired.
      8You cannot execute this command because you are not logged in.
      16You cannot execute this command because your password has expired.
      28The Company was not found by its unique identifier.
      106The CompanyReseller was not found by its unique identifier.
      107The CompanyReseller was found, but is not marked as deleted.