/** */ export interface ErrorBase { /** */ name?: string; /** */ message: string; } /** */ export interface IdName { /** The unique ID of the object */ id: string; /** The name of the object (can be undefined if an error occurs) */ name?: string; /** Will be populated if an error occurs retrieving the name for the object. */ err?: ErrorBase; } /** */ export interface NumberDictionary { [key: string]: number; } /** Summary client information returned in lists. */ export interface ClientListItem { /** The client's unique UUID */ id: string; /** The client's display name */ name: string; /** The client website (if available) */ website: string; /** The vendor that owns this client. */ owner: IdName; /** The group to which this client belongs. */ group: string; /** The state of this client. */ state: 'inactive' | 'active' | 'suspended' | 'deleted'; /** A dictionary of child entity names and their counts, present if the `counts` parameter is supplied. */ counts?: NumberDictionary; /** The date this client was created. */ creationDate: string; /** The date that this client was last modified. */ modifiedDate: string; } /** A paginated list of client items. */ export interface ClientListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface EntityInfo { /** The ISO date this company was created */ creationDate: string; /** The ISO date that this company was last modified */ modifiedDate: string; } /** */ export interface IdNameType { /** The unique ID of the object */ id: string; /** The name of the object (can be undefined if an error occurs) */ name?: string; /** The type of the object (can be undefined if an error occurs) */ type?: string; /** Will be populated if an error occurs retrieving the name for the object. */ err?: ErrorBase; } /** */ export interface Features { [key: string]: any; } /** */ export interface FlagValues { [key: string]: any; } /** */ export interface FlagsBucket { [key: string]: FlagValues; } /** The meta structure contains information that has been resolved dynamically for this client. */ export interface ClientMeta { /** The map set that should be used by this client, it may have been passed down from the parent vendor. */ currentMapSetId: string; /** A set of user defined flags that have been merged with the client group tree that this client belongs to. */ mergedFlags: FlagsBucket; } /** */ export interface Shift { /** A UUID V4 id for the shift */ id: string; /** The name of the shift */ name: string; /** The start time of the shift (hh:mm). This time is inclusive. */ start: string; /** The end time of the shift (hh:mm). This time is exclusive */ end: string; } /** */ export interface ShiftPattern { /** A array of shifts making up a daily shift pattern. Shifts cannot overlap and the total time accross shifts must add up to 24 hours */ dailyShift: Array; } /** */ export interface EntitySoftLimit { /** */ max?: number; /** */ total?: number; /** */ active?: number; } /** */ export interface EntitySoftLimits { [key: string]: EntitySoftLimit; } /** */ export interface SoftLimits { /** */ entities?: EntitySoftLimits; } /** */ export interface CompanyDataRetentionSettings { /** [READ-ONLY] The entity from which the active data retention settings are being calculated */ source?: IdNameType; /** The amount of days, months or years to retain data for */ retainFor?: number; /** The unit of the retainFor value */ retainForUnit?: 'days' | 'months' | 'years'; /** [READ-ONLY] The current event horizon before which all data will be deleted */ horizonDate?: string; } /** Defines the expected complexity of user supplied passwords */ export interface PasswordComplexity { /** If enabled, forces the user to use both uppercase and lowercase characters in their password. */ mixedCase: boolean; /** If enabled, forces users to use both alpha and numerical characters in their password. */ alphaNumerical: boolean; /** If enabled, forces users to use at least once character that is not alphanumberical. */ specialCharacters: boolean; /** If enabled, passwords will be compared to a list of the most common passwords found in breaches, and rejected if it matches. */ noCommonPasswords: boolean; } /** */ export interface OTPMethodSettings { /** Setting that defines the number of days that the front-end will cache the OTP token so that users do not have do OTP auth on every sign in. */ tokenValidityDays: number; } /** Settings for One Time Password requirements */ export interface OTPSettings { /** The one time password methods that are allowed */ methods: { [key: string]: OTPMethodSettings; }; /** Define who is forced to enable OTP. If set to "optional", users can opt themselves into OTP but do not need to do so. */ mandatoryFor: 'optional' | 'everyone' | 'administrators'; /** The number of days grace that will be given to new users when their account is created before they are forced to enable OTP on their account. */ gracePeriodDays: number; } /** Settings that define the user password policy */ export interface UserPasswordPolicy { /** [READ-ONLY] The entity from which the active password polict settings are being calculated */ source?: IdNameType; /** The minimum length allowed for passwords */ passwordLength: number; /** Defines the password complexity rules */ passwordComplexity: PasswordComplexity; /** Determines when users are prompted to change their password. Set to zero to disable password expiration. */ passwordExpirationDays: number; /** Settings for One Time Password authentication. Set to null to disable OTP requirements */ otpSettings?: OTPSettings; } /** A collection of setting values for the theme */ export interface ThemeSettings { [key: string]: any; } /** */ export interface ThemeInfo { /** The unique ID of the theme */ id?: string; /** The name of the theme */ name?: string; /** [DEPRECATED] A set of theme specific overrides */ settings?: ThemeSettings; } /** */ export interface CompanyAddress { /** */ address?: string; /** */ city?: string; /** */ state?: string; /** */ country?: string; /** */ code?: string; } /** */ export interface CustomFieldKeyValue { /** */ key: string; /** */ value: string; } /** */ export interface CustomFieldDefinition { /** */ owner?: string; /** */ id: string; /** */ title: string; /** */ type: string; /** */ required: boolean; /** */ values: Array; } /** */ export interface CustomFields { [key: string]: Array; } /** */ export interface CompanySupportDetails { /** */ email?: string; /** */ phone?: string; } /** */ export interface CompanyMessages { /** A custom message that will be displayed on the login screen */ login?: string; /** A custom message that will be displayed if a user of this company attempts to log in, but the company is suspended. */ suspended?: string; } /** */ export interface OpenIdConnectIssuer { /** A friendly name for the OpenId Connect issuer. */ name?: string; /** The issuer endpoint, i.e. https://accounts.google.com */ issuer?: string; /** The unique client ID provided by the issuer */ clientId?: string; /** [OPTIONAL] The client secret provided by the issuer */ clientSecret?: string; } /** */ export interface OpenIdConnectIssuers { [key: string]: OpenIdConnectIssuer; } /** */ export interface IdNameState { /** The unique ID of the object */ id: string; /** The name of the object (can be undefined if an error occurs) */ name?: string; /** The name of the object (can be undefined if an error occurs) */ state?: 'active' | 'inactive' | 'suspended' | 'deleted'; /** Will be populated if an error occurs retrieving the name for the object. */ err?: ErrorBase; } /** */ export interface CompanySSLCertificate { /** The unique ID of the ssl certificate */ id: string; /** The domain for which the ssl certificate was provisioned */ domain: string; /** The date the entity was last modified */ modifiedDate: string; /** The state of this certificate */ state?: string; } /** */ export interface ClientMeasurementUnits { /** */ distanceUnit?: 'kilometres' | 'metres' | 'feet' | 'inches' | 'miles' | 'nauticalMiles' | 'yards'; /** */ altitudeUnit?: 'metres' | 'kilometres' | 'feet' | 'inches' | 'miles' | 'nauticalMiles' | 'yards'; /** */ speedUnit?: 'kilometresPerHour' | 'metresPerSecond' | 'milesPerHour' | 'knots'; /** */ areaUnit?: 'squareKilometres' | 'acres' | 'hectares' | 'squareFeet' | 'squaremetres' | 'squareInches' | 'squareMiles' | 'squareYards'; /** */ volumeUnit?: 'litres' | 'cubicmetres' | 'cubicFeet' | 'gallons' | 'ounces' | 'gallonsUs' | 'ouncesUs'; /** */ weightUnit?: 'kilograms' | 'ounces' | 'pounds' | 'tonnes'; /** */ timeUnit?: 'HHmmss' | 'Hmmss' | 'hmmssa'; /** */ dateUnit?: 'yyyymmdd1' | 'yyyymmdd2' | 'yyyymmdd3' | 'ddmmyyyy1' | 'ddmmyyyy2' | 'ddmmyyyy3' | 'dmyyyy1' | 'dmyyyy2' | 'dmyyyy3' | 'mmddyyyy1' | 'mdyyyy1'; /** */ temperatureUnit?: 'celsius' | 'fahrenheit'; } /** The ClientResponse contains details for a client entity. */ export interface ClientResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The display name of the company */ name?: string; /** A list of custom ID's for this company. Can be queried using the getClientByTag, getVendorByTag and getDistributorByTag methods. */ tags?: Array; /** The company website (if available) */ website?: string; /** The state of this company */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** Entity specific metadata. */ entity: EntityInfo; /** Soft limits that apply to this company. This includes overrides only, see `getLookups` for defaults. */ limits?: SoftLimits; /** A set of user defined flags */ flags?: FlagsBucket; /** Data retention settings. If this is null, settings from the parent or group will be used instead. */ retention?: CompanyDataRetentionSettings; /** Password policy to apply to users. If this is null, settings from the group will be used instead. */ passwordPolicy?: UserPasswordPolicy; /** The theme that this company uses */ theme?: ThemeInfo; /** Address information for this company */ address?: CompanyAddress; /** The default timezone for this company */ timeZoneId?: string; /** A set of custom fields for this company */ customFields?: CustomFields; /** A list of custom domains to use for this company */ domains?: Array; /** The default language to user for this client. */ language?: string; /** Support contact information that will be displayed to user of this company */ support?: CompanySupportDetails; /** Customized messages that are displayed to users of this company. */ messages?: CompanyMessages; /** A set of OpenId Connect issuers that are able to authenticate users on our behalf. */ oidc?: OpenIdConnectIssuers; /** The email provider to be used when sending emails */ emailProvider?: IdNameState; /** A list of ssl certificates provisioned for this company */ sslCertificates?: Array; /** The map set that has been defined for this client. It may be empty in which case the default will be used. */ mapSet?: IdName; /** [DEPRECATED] use the `flags` property instead. */ features?: Features; /** A user friendly pin that uniquely identifies this client. */ pin?: string; /** The group that this client belongs to */ group?: string; /** UUID's of the device types that this client is allowed to use. An empty list means all device types. */ availableDeviceTypes?: Array; /** Dynamically resolved meta information for the client */ meta?: ClientMeta; /** A shift pattern for the client */ shiftPattern?: ShiftPattern; /** Measurement unit configuration for this client. */ measurementUnits?: ClientMeasurementUnits; } /** The ClientUpdateRequest is used to update an existing entity. All fields are optional and can be individually supplied to the update method. */ export interface ClientUpdateRequest { /** The display name of the company */ name?: string; /** A list of custom ID's for this company. Can be queried using the getClientByTag, getVendorByTag and getDistributorByTag methods. */ tags?: Array; /** The company website (if available) */ website?: string; /** The state of this company */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** Entity specific metadata */ entity?: EntityInfo; /** Soft limits that apply to this company. This includes overrides only, see `getLookups` for defaults. */ limits?: SoftLimits; /** A set of user defined flags */ flags?: FlagsBucket; /** Data retention settings. If this is null, settings from the parent or group will be used instead. */ retention?: CompanyDataRetentionSettings; /** Password policy to apply to users. If this is null, settings from the group will be used instead. */ passwordPolicy?: UserPasswordPolicy; /** The theme that this company uses */ theme?: ThemeInfo; /** Address information for this company */ address?: CompanyAddress; /** The default timezone for this company */ timeZoneId?: string; /** A set of custom fields for this company */ customFields?: CustomFields; /** A list of custom domains to use for this company */ domains?: Array; /** The default language to user for this client. */ language?: string; /** Support contact information that will be displayed to user of this company */ support?: CompanySupportDetails; /** Customized messages that are displayed to users of this company. */ messages?: CompanyMessages; /** A set of OpenId Connect issuers that are able to authenticate users on our behalf. */ oidc?: OpenIdConnectIssuers; /** The email provider to be used when sending emails */ emailProvider?: IdNameState; /** A list of ssl certificates provisioned for this company */ sslCertificates?: Array; /** The map set that has been defined for this client. It may be empty in which case the default will be used. */ mapSet?: IdName; /** [DEPRECATED] use the `flags` property instead. */ features?: Features; /** A user friendly pin that uniquely identifies this client. */ pin?: string; /** The group that this client belongs to */ group?: string; /** UUID's of the device types that this client is allowed to use. An empty list means all device types. */ availableDeviceTypes?: Array; /** Dynamically resolved meta information for the client */ meta?: ClientMeta; /** A shift pattern for the client */ shiftPattern?: ShiftPattern; /** Measurement unit configuration for this client. */ measurementUnits?: ClientMeasurementUnits; } /** */ export interface ClientDetailsUpdateRequest { /** The theme that this company uses */ theme?: ThemeInfo; /** Address information for this company */ address?: CompanyAddress; /** The default timezone for this company */ timeZoneId?: string; /** A set of custom fields for this company */ customFields?: CustomFields; /** A list of custom domains to use for this company */ domains?: Array; /** The default language to user for this client. */ language?: string; /** Support contact information that will be displayed to user of this company */ support?: CompanySupportDetails; /** Customized messages that are displayed to users of this company. */ messages?: CompanyMessages; /** A set of OpenId Connect issuers that are able to authenticate users on our behalf. */ oidc?: OpenIdConnectIssuers; /** The email provider to be used when sending emails */ emailProvider?: IdNameState; /** A list of ssl certificates provisioned for this company */ sslCertificates?: Array; /** Measurement unit configuration for this client. */ measurementUnits?: ClientMeasurementUnits; } /** The ClientCreateRequest is used to create a new entity. */ export interface ClientCreateRequest { /** The display name of the company */ name?: string; /** A list of custom ID's for this company. Can be queried using the getClientByTag, getVendorByTag and getDistributorByTag methods. */ tags?: Array; /** The company website (if available) */ website?: string; /** The state of this company */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** Entity specific metadata */ entity?: EntityInfo; /** Soft limits that apply to this company. This includes overrides only, see `getLookups` for defaults. */ limits?: SoftLimits; /** A set of user defined flags */ flags?: FlagsBucket; /** Data retention settings. If this is null, settings from the parent or group will be used instead. */ retention?: CompanyDataRetentionSettings; /** Password policy to apply to users. If this is null, settings from the group will be used instead. */ passwordPolicy?: UserPasswordPolicy; /** The theme that this company uses */ theme?: ThemeInfo; /** Address information for this company */ address?: CompanyAddress; /** The default timezone for this company */ timeZoneId?: string; /** A set of custom fields for this company */ customFields?: CustomFields; /** A list of custom domains to use for this company */ domains?: Array; /** The default language to user for this client. */ language?: string; /** Support contact information that will be displayed to user of this company */ support?: CompanySupportDetails; /** Customized messages that are displayed to users of this company. */ messages?: CompanyMessages; /** A set of OpenId Connect issuers that are able to authenticate users on our behalf. */ oidc?: OpenIdConnectIssuers; /** The email provider to be used when sending emails */ emailProvider?: IdNameState; /** A list of ssl certificates provisioned for this company */ sslCertificates?: Array; /** The map set that has been defined for this client. It may be empty in which case the default will be used. */ mapSet?: IdName; /** [DEPRECATED] use the `flags` property instead. */ features?: Features; /** A user friendly pin that uniquely identifies this client. */ pin?: string; /** The group that this client belongs to */ group?: string; /** UUID's of the device types that this client is allowed to use. An empty list means all device types. */ availableDeviceTypes?: Array; /** Dynamically resolved meta information for the client */ meta?: ClientMeta; /** A shift pattern for the client */ shiftPattern?: ShiftPattern; /** Measurement unit configuration for this client. */ measurementUnits?: ClientMeasurementUnits; /** */ ownerId: string; } /** */ export interface CompanyResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The display name of the company */ name?: string; /** A list of custom ID's for this company. Can be queried using the getClientByTag, getVendorByTag and getDistributorByTag methods. */ tags?: Array; /** The company website (if available) */ website?: string; /** The state of this company */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** Entity specific metadata */ entity?: EntityInfo; /** Soft limits that apply to this company. This includes overrides only, see `getLookups` for defaults. */ limits?: SoftLimits; /** A set of user defined flags */ flags?: FlagsBucket; /** Data retention settings. If this is null, settings from the parent or group will be used instead. */ retention?: CompanyDataRetentionSettings; /** Password policy to apply to users. If this is null, settings from the group will be used instead. */ passwordPolicy?: UserPasswordPolicy; /** The theme that this company uses */ theme?: ThemeInfo; /** Address information for this company */ address?: CompanyAddress; /** The default timezone for this company */ timeZoneId?: string; /** A set of custom fields for this company */ customFields?: CustomFields; /** A list of custom domains to use for this company */ domains?: Array; /** The default language to user for this client. */ language?: string; /** Support contact information that will be displayed to user of this company */ support?: CompanySupportDetails; /** Customized messages that are displayed to users of this company. */ messages?: CompanyMessages; /** A set of OpenId Connect issuers that are able to authenticate users on our behalf. */ oidc?: OpenIdConnectIssuers; /** The email provider to be used when sending emails */ emailProvider?: IdNameState; /** A list of ssl certificates provisioned for this company */ sslCertificates?: Array; /** The type of company */ type: 'distributor' | 'vendor' | 'client'; } /** An unexpected error is thrown when the API experiences an unexpected internal exception. */ export interface UnexpectedError { /** */ status?: number; /** */ name?: string; /** */ message?: string; /** */ data?: any; /** */ stack?: string; } /** Returned when a request cannot be served due to the application’s rate limit having been exhausted for the resource. */ export interface TooManyRequestsError { /** */ status?: number; /** */ name?: string; /** */ message?: string; } /** The request has been refused. See the accompanying message for the specific reason. */ export interface ForbiddenError { /** */ status?: number; /** */ name?: string; /** */ message?: string; } /** The URI requested is invalid or the resource requested does not exists. */ export interface NotFoundError { /** */ status?: number; /** */ name?: string; /** */ message?: string; } /** */ export interface EmailTemplateConfig { /** The email template to use for this customization. If an empty GUID is passed the `defaultTemplateId` value will be used. */ template?: IdName; /** */ subject?: string; /** */ body?: string; } /** A dictionary to hold email template customizations */ export interface EmailTemplateConfigDictionary { [key: string]: EmailTemplateConfig; } /** */ export interface EmailConfig { /** The default email template to use for all of configured email types (can be overridden individually). If an empty GUID is passed the system default will be used. */ defaultTemplate?: IdName; /** A number of email template customizations */ templates?: EmailTemplateConfigDictionary; } /** */ export interface CompanyGroupResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The parent of this entity */ parent?: IdName; /** A set of user defined flags */ flags?: FlagsBucket; /** Email configuration */ email?: EmailConfig; /** Soft limits that apply to companies in this group. */ limits?: SoftLimits; /** Data retention settings. If this is null, settings from the parent company will be used instead. */ retention?: CompanyDataRetentionSettings; /** Password policy to apply to users of companies that belong to this group. */ passwordPolicy?: UserPasswordPolicy; /** entity specific metadata */ entity: EntityInfo; } /** A list of company group items */ export interface CompanyGroupListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface CompanyGroupUpdateRequest { /** A unique name for this entity */ name?: string; /** The parent of this entity */ parent?: IdName; /** A set of user defined flags */ flags?: FlagsBucket; /** Email configuration */ email?: EmailConfig; /** Soft limits that apply to companies in this group. */ limits?: SoftLimits; /** Data retention settings. If this is null, settings from the parent company will be used instead. */ retention?: CompanyDataRetentionSettings; /** Password policy to apply to users of companies that belong to this group. */ passwordPolicy?: UserPasswordPolicy; } /** */ export interface CompanyGroupCreateRequest { /** A unique name for this entity */ name: string; /** The parent of this entity */ parent?: IdName; /** A set of user defined flags */ flags?: FlagsBucket; /** Email configuration */ email?: EmailConfig; /** Soft limits that apply to companies in this group. */ limits?: SoftLimits; /** Data retention settings. If this is null, settings from the parent company will be used instead. */ retention?: CompanyDataRetentionSettings; /** Password policy to apply to users of companies that belong to this group. */ passwordPolicy?: UserPasswordPolicy; /** The client that owns this entity */ ownerId: string; } /** Summary distributor information returned in lists. */ export interface DistributorListItem { /** The distributor's unique ID */ id: string; /** The distributor's display name */ name: string; /** The distributor website (if available) */ website: string; /** The distributor that owns this distributor */ owner: IdName; /** The state of this distributor */ state: 'inactive' | 'active' | 'suspended' | 'deleted'; /** A dictionary of child entity names and their counts, present if the `counts` parameter is supplied. */ counts?: NumberDictionary; /** The date this distributor was created */ creationDate: string; /** The date that this distributor was last modified */ modifiedDate: string; } /** A list of distributor items */ export interface DistributorListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface DistributorResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The display name of the company */ name?: string; /** A list of custom ID's for this company. Can be queried using the getClientByTag, getVendorByTag and getDistributorByTag methods. */ tags?: Array; /** The company website (if available) */ website?: string; /** The state of this company */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** entity specific metadata */ entity: EntityInfo; /** Soft limits that apply to this company. This includes overrides only, see `getLookups` for defaults. */ limits?: SoftLimits; /** A set of user defined flags */ flags?: FlagsBucket; /** Data retention settings. If this is null, settings from the parent or group will be used instead. */ retention?: CompanyDataRetentionSettings; /** Password policy to apply to users. If this is null, settings from the group will be used instead. */ passwordPolicy?: UserPasswordPolicy; /** The theme that this company uses */ theme?: ThemeInfo; /** Address information for this company */ address?: CompanyAddress; /** The default timezone for this company */ timeZoneId?: string; /** A set of custom fields for this company */ customFields?: CustomFields; /** A list of custom domains to use for this company */ domains?: Array; /** The default language to user for this client. */ language?: string; /** Support contact information that will be displayed to user of this company */ support?: CompanySupportDetails; /** Customized messages that are displayed to users of this company. */ messages?: CompanyMessages; /** A set of OpenId Connect issuers that are able to authenticate users on our behalf. */ oidc?: OpenIdConnectIssuers; /** The email provider to be used when sending emails */ emailProvider?: IdNameState; /** A list of ssl certificates provisioned for this company */ sslCertificates?: Array; /** [DEPRECATED] Use the listCompanyGroups operation instead */ vendorGroups?: Array; /** A set of features that are enabled for this distributor. */ features?: Features; /** A list of maps sets that are available to this distributor */ availableMapSets?: Array; /** A list of email providers that are available to this distributor */ availableEmailProviders?: Array; } /** */ export interface DistributorUpdateRequest { /** The display name of the company */ name?: string; /** A list of custom ID's for this company. Can be queried using the getClientByTag, getVendorByTag and getDistributorByTag methods. */ tags?: Array; /** The company website (if available) */ website?: string; /** The state of this company */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** Entity specific metadata */ entity?: EntityInfo; /** Soft limits that apply to this company. This includes overrides only, see `getLookups` for defaults. */ limits?: SoftLimits; /** A set of user defined flags */ flags?: FlagsBucket; /** Data retention settings. If this is null, settings from the parent or group will be used instead. */ retention?: CompanyDataRetentionSettings; /** Password policy to apply to users. If this is null, settings from the group will be used instead. */ passwordPolicy?: UserPasswordPolicy; /** The theme that this company uses */ theme?: ThemeInfo; /** Address information for this company */ address?: CompanyAddress; /** The default timezone for this company */ timeZoneId?: string; /** A set of custom fields for this company */ customFields?: CustomFields; /** A list of custom domains to use for this company */ domains?: Array; /** The default language to user for this client. */ language?: string; /** Support contact information that will be displayed to user of this company */ support?: CompanySupportDetails; /** Customized messages that are displayed to users of this company. */ messages?: CompanyMessages; /** A set of OpenId Connect issuers that are able to authenticate users on our behalf. */ oidc?: OpenIdConnectIssuers; /** The email provider to be used when sending emails */ emailProvider?: IdNameState; /** A list of ssl certificates provisioned for this company */ sslCertificates?: Array; /** [DEPRECATED] Use the listCompanyGroups operation instead */ vendorGroups?: Array; /** A set of features that are enabled for this distributor. */ features?: Features; /** A list of maps sets that are available to this distributor */ availableMapSets?: Array; /** A list of email providers that are available to this distributor */ availableEmailProviders?: Array; } /** */ export interface DistributorDetailsUpdateRequest { /** The theme that this company uses */ theme?: ThemeInfo; /** Address information for this company */ address?: CompanyAddress; /** The default timezone for this company */ timeZoneId?: string; /** A set of custom fields for this company */ customFields?: CustomFields; /** A list of custom domains to use for this company */ domains?: Array; /** The default language to user for this client. */ language?: string; /** Support contact information that will be displayed to user of this company */ support?: CompanySupportDetails; /** Customized messages that are displayed to users of this company. */ messages?: CompanyMessages; /** A set of OpenId Connect issuers that are able to authenticate users on our behalf. */ oidc?: OpenIdConnectIssuers; /** The email provider to be used when sending emails */ emailProvider?: IdNameState; /** A list of ssl certificates provisioned for this company */ sslCertificates?: Array; } /** */ export interface DistributorCreateRequest { /** The display name of the company */ name?: string; /** A list of custom ID's for this company. Can be queried using the getClientByTag, getVendorByTag and getDistributorByTag methods. */ tags?: Array; /** The company website (if available) */ website?: string; /** The state of this company */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** Entity specific metadata */ entity?: EntityInfo; /** Soft limits that apply to this company. This includes overrides only, see `getLookups` for defaults. */ limits?: SoftLimits; /** A set of user defined flags */ flags?: FlagsBucket; /** Data retention settings. If this is null, settings from the parent or group will be used instead. */ retention?: CompanyDataRetentionSettings; /** Password policy to apply to users. If this is null, settings from the group will be used instead. */ passwordPolicy?: UserPasswordPolicy; /** The theme that this company uses */ theme?: ThemeInfo; /** Address information for this company */ address?: CompanyAddress; /** The default timezone for this company */ timeZoneId?: string; /** A set of custom fields for this company */ customFields?: CustomFields; /** A list of custom domains to use for this company */ domains?: Array; /** The default language to user for this client. */ language?: string; /** Support contact information that will be displayed to user of this company */ support?: CompanySupportDetails; /** Customized messages that are displayed to users of this company. */ messages?: CompanyMessages; /** A set of OpenId Connect issuers that are able to authenticate users on our behalf. */ oidc?: OpenIdConnectIssuers; /** The email provider to be used when sending emails */ emailProvider?: IdNameState; /** A list of ssl certificates provisioned for this company */ sslCertificates?: Array; /** [DEPRECATED] Use the listCompanyGroups operation instead */ vendorGroups?: Array; /** A set of features that are enabled for this distributor. */ features?: Features; /** A list of maps sets that are available to this distributor */ availableMapSets?: Array; /** A list of email providers that are available to this distributor */ availableEmailProviders?: Array; /** */ ownerId: string; } /** */ export interface UserListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** */ name?: string; /** The user's email address, used to log into the system */ emailAddress?: string; /** An optional mobile number used for SMS notifications */ mobile?: string; /** The time zone identifier for the user (uses the tz datbase for timezones, see https://en.wikipedia.org/wiki/Tz_database) */ timeZoneId?: string; /** The language code for this user */ language?: string; /** The state of the user object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** The default client to load for this user */ defaultClient?: IdName; /** The cost centre that this user belongs to */ costCentre?: IdName; /** The date the user was last modified */ modifiedDate: string; } /** A list of users */ export interface UserListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface PolicyStatement { /** An optional UUID for the policy statement */ id?: string; /** The type of policy */ effect: 'allow' | 'deny'; /** The actions the policy operates on */ actions: Array; /** The resources to which the policy applies */ resources: Array; } /** */ export interface Policy { /** The UUID of the policy */ id: string; /** A name describing the policy */ name: string; /** The statements used to create a policy */ statements: Array; } /** An API Key entry */ export interface ApiKey { /** Provide a descriptive name for your API key */ name?: string; /** specify an optional set of policies that will be merged with the user's policies when this key is used */ policies?: Array; } /** */ export interface ApiKeys { [key: string]: ApiKey; } /** */ export interface UserOtpMethod { /** The OTP method type */ type: string; /** The date this method was configured */ date: string; /** Whether this method has been verified. If false, this method may require further enrolment before it can be used. */ verfied: boolean; } /** */ export interface TimeRange { /** The start time range */ from?: string; /** */ to?: string; } /** */ export interface NotificationActions { /** */ low?: 'none' | 'email' | 'sms' | 'emailsms'; /** */ medium?: 'none' | 'email' | 'sms' | 'emailsms'; /** */ high?: 'none' | 'email' | 'sms' | 'emailsms'; } /** */ export interface NotificationSettings { /** The times in which it is acceptable to send the user an sms */ smsTime?: TimeRange; /** The actions to take for the different alert levels */ actions?: NotificationActions; } /** */ export interface OidcTags { [key: string]: string; } /** */ export interface EventActorFilter { /** */ actorType: 'asset' | 'user' | 'client'; /** */ actorTypeId: string; /** */ actorTypeName: string; /** */ actorSelectionType: 'any' | 'group' | 'accessGroup' | 'specific'; /** */ actorId: string; /** */ actorName?: string; /** */ text: string; } /** */ export interface UserClientPermissions { /** */ assets: Array; } /** */ export interface UserPermissions { /** */ clients?: { [key: string]: UserClientPermissions; }; } /** */ export interface UserResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** */ name?: string; /** The user's email address, used to log into the system */ emailAddress?: string; /** An optional mobile number used for SMS notifications */ mobile?: string; /** The time zone identifier for the user (uses the tz database for timezones, see https://en.wikipedia.org/wiki/Tz_database) */ timeZoneId?: string; /** The language code for this user */ language?: string; /** The state of the user object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** notification settings */ notifySettings?: NotificationSettings; /** The default client to load for this user */ defaultClient?: IdName; /** A list of user roles that apply to this user */ roles?: Array; /** The cost centre that this user belongs to */ costCentre?: IdName; /** When OpenId Connect is enabled for a client, you need to tie the user to the issuer's internal user ID. Specificy them in the oidcTags bucket */ oidcTags?: OidcTags; /** */ permissions?: UserPermissions; /** A set of user defined flags */ flags?: FlagsBucket; /** An optional set of API keys generated by the user */ apiKeys?: ApiKeys; /** Lists the types of one time password methods that have been configured for this user */ otp?: Array; /** */ entity: EntityInfo; } /** */ export interface UserPoliciesResponse { /** */ policies?: Array; } /** */ export interface UserUpdateRequest { /** */ name?: string; /** The user's email address, used to log into the system */ emailAddress?: string; /** An optional mobile number used for SMS notifications */ mobile?: string; /** The time zone identifier for the user (uses the tz database for timezones, see https://en.wikipedia.org/wiki/Tz_database) */ timeZoneId?: string; /** The language code for this user */ language?: string; /** The state of the user object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** notification settings */ notifySettings?: NotificationSettings; /** The default client to load for this user */ defaultClient?: IdName; /** A list of user roles that apply to this user */ roles?: Array; /** The cost centre that this user belongs to */ costCentre?: IdName; /** When OpenId Connect is enabled for a client, you need to tie the user to the issuer's internal user ID. Specificy them in the oidcTags bucket */ oidcTags?: OidcTags; /** */ permissions?: UserPermissions; /** A set of user defined flags */ flags?: FlagsBucket; /** The users password */ password?: string; } /** */ export interface UserCreateResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** */ name?: string; /** The user's email address, used to log into the system */ emailAddress?: string; /** An optional mobile number used for SMS notifications */ mobile?: string; /** The time zone identifier for the user (uses the tz database for timezones, see https://en.wikipedia.org/wiki/Tz_database) */ timeZoneId?: string; /** The language code for this user */ language?: string; /** The state of the user object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** notification settings */ notifySettings?: NotificationSettings; /** The default client to load for this user */ defaultClient?: IdName; /** A list of user roles that apply to this user */ roles?: Array; /** The cost centre that this user belongs to */ costCentre?: IdName; /** When OpenId Connect is enabled for a client, you need to tie the user to the issuer's internal user ID. Specificy them in the oidcTags bucket */ oidcTags?: OidcTags; /** */ permissions?: UserPermissions; /** A set of user defined flags */ flags?: FlagsBucket; /** An optional set of API keys generated by the user */ apiKeys?: ApiKeys; /** Lists the types of one time password methods that have been configured for this user */ otp?: Array; /** */ entity: EntityInfo; /** If you've populate the `inviteUrl` property when creating the user, and there was an error sending the invite email, it will be available in this field. */ inviteError?: UnexpectedError; } /** */ export interface UserCreateRequest { /** */ name?: string; /** The user's email address, used to log into the system */ emailAddress?: string; /** An optional mobile number used for SMS notifications */ mobile?: string; /** The time zone identifier for the user (uses the tz database for timezones, see https://en.wikipedia.org/wiki/Tz_database) */ timeZoneId?: string; /** The language code for this user */ language?: string; /** The state of the user object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** notification settings */ notifySettings?: NotificationSettings; /** The default client to load for this user */ defaultClient?: IdName; /** A list of user roles that apply to this user */ roles?: Array; /** The cost centre that this user belongs to */ costCentre?: IdName; /** When OpenId Connect is enabled for a client, you need to tie the user to the issuer's internal user ID. Specificy them in the oidcTags bucket */ oidcTags?: OidcTags; /** */ permissions?: UserPermissions; /** A set of user defined flags */ flags?: FlagsBucket; /** The company that owns this user */ ownerId: string; /** The users password */ password?: string; /** Populate only if you wish to send an invitation email on account creation. The full URL where the user will be redirected for completing their profile. Include a {token} template variable so the API can insert the reset token, and optionally a {domain} template variable into which the configured domain for this user will be inserted. i.e. https://{domain}/reset?token={token} */ inviteUrl?: string; } /** */ export interface UserResetResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** */ name?: string; /** The user's email address, used to log into the system */ emailAddress?: string; /** An optional mobile number used for SMS notifications */ mobile?: string; /** The time zone identifier for the user (uses the tz database for timezones, see https://en.wikipedia.org/wiki/Tz_database) */ timeZoneId?: string; /** The language code for this user */ language?: string; /** The state of the user object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** notification settings */ notifySettings?: NotificationSettings; /** The default client to load for this user */ defaultClient?: IdName; /** A list of user roles that apply to this user */ roles?: Array; /** The cost centre that this user belongs to */ costCentre?: IdName; /** When OpenId Connect is enabled for a client, you need to tie the user to the issuer's internal user ID. Specificy them in the oidcTags bucket */ oidcTags?: OidcTags; /** */ permissions?: UserPermissions; /** A set of user defined flags */ flags?: FlagsBucket; /** An optional set of API keys generated by the user */ apiKeys?: ApiKeys; /** Lists the types of one time password methods that have been configured for this user */ otp?: Array; /** */ entity: EntityInfo; /** If there were any errors initiating the reset email the `resetError` property will be populated. */ resetError?: UnexpectedError; } /** */ export interface UserResetRequest { /** The full URL where the user will be redirected for password reset. Include a {token} template variable so the API can insert the reset token, and optionally a {domain} template variable into which the configured domain for this user will be inserted. i.e. https://{domain}/#/login?token={token} */ resetUrl?: string; } /** */ export interface UserApiKeyCreateResponse { /** */ name: string; /** */ policies: Array; /** */ key: string; } /** */ export interface UserApiKeyCreateRequest { /** */ name: string; /** */ policies: Array; } /** */ export interface SuccessResponse { /** A generic success message */ message?: string; } /** */ export interface UserRoleListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The name of the user role */ name?: string; /** An optional description for the role */ description?: string; /** The date the user role was last modified */ modifiedDate?: string; } /** A list of user role items */ export interface UserRoleListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** The list of user role items in this response */ items: Array; } /** */ export interface LegacyRights { [key: string]: Array; } /** */ export interface UserRoleResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The name of the user role */ name?: string; /** An optional description for the role */ description?: string; /** The api rights of the policy. Legacy only */ legacyRights?: LegacyRights; /** This applies to v2 API only */ inlinePolicies?: Array; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface UserRoleUpdateRequest { /** The name of the user role */ name?: string; /** An optional description for the role */ description?: string; /** The api rights of the policy. Legacy only */ legacyRights?: LegacyRights; /** This applies to v2 API only */ inlinePolicies?: Array; } /** */ export interface UserRoleCreateRequest { /** The name of the user role */ name?: string; /** An optional description for the role */ description?: string; /** The api rights of the policy. Legacy only */ legacyRights?: LegacyRights; /** This applies to v2 API only */ inlinePolicies?: Array; /** */ ownerId: string; } /** Summary vendor information returned in lists. */ export interface VendorListItem { /** The vendor's unique ID */ id: string; /** The vendor's display name */ name: string; /** The vendor website (if available) */ website: string; /** The vendor that owns this vendor */ owner: IdName; /** The group to which this vendor belongs */ group: string; /** The state of this vendor */ state: 'inactive' | 'active' | 'suspended' | 'deleted'; /** A dictionary of child entity names and their counts, present if the `counts` parameter is supplied. */ counts?: NumberDictionary; /** The date this vendor was created */ creationDate: string; /** The date that this vendor was last modified */ modifiedDate: string; } /** A list of vendor items */ export interface VendorListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface EmailServerConfiguration { /** */ smtpEnabled?: boolean; /** */ smtpServer?: string; /** */ smtpPort?: number; /** */ fromAddress?: string; /** */ fromName?: string; /** */ username?: string; /** */ password?: string; /** */ enableSsl?: boolean; /** */ state?: 'active' | 'suspended'; } /** */ export interface VendorResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The display name of the company */ name?: string; /** A list of custom ID's for this company. Can be queried using the getClientByTag, getVendorByTag and getDistributorByTag methods. */ tags?: Array; /** The company website (if available) */ website?: string; /** The state of this company */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** entity specific metadata */ entity: EntityInfo; /** Soft limits that apply to this company. This includes overrides only, see `getLookups` for defaults. */ limits?: SoftLimits; /** A set of user defined flags */ flags?: FlagsBucket; /** Data retention settings. If this is null, settings from the parent or group will be used instead. */ retention?: CompanyDataRetentionSettings; /** Password policy to apply to users. If this is null, settings from the group will be used instead. */ passwordPolicy?: UserPasswordPolicy; /** The theme that this company uses */ theme?: ThemeInfo; /** Address information for this company */ address?: CompanyAddress; /** The default timezone for this company */ timeZoneId?: string; /** A set of custom fields for this company */ customFields?: CustomFields; /** A list of custom domains to use for this company */ domains?: Array; /** The default language to user for this client. */ language?: string; /** Support contact information that will be displayed to user of this company */ support?: CompanySupportDetails; /** Customized messages that are displayed to users of this company. */ messages?: CompanyMessages; /** A set of OpenId Connect issuers that are able to authenticate users on our behalf. */ oidc?: OpenIdConnectIssuers; /** The email provider to be used when sending emails */ emailProvider?: IdNameState; /** A list of ssl certificates provisioned for this company */ sslCertificates?: Array; /** A set of features that are enabled for this distributor. */ features?: Features; /** The group to which this vendor belongs */ group?: string; /** A list of map sets that are made available to the client's of this vendor. */ availableMapSets?: Array; /** The default map set that has been defined for this vendor. It may be empty in which case the distributor default will be used. */ defaultMapSet?: IdName; /** UUID's of the device types that this vendor is allowed to use. An empty list means all device types. */ availableDeviceTypes?: Array; /** A list of email providers that are made available to the client's of this vendor. */ availableEmailProviders?: Array; /** The configuration of a custom email server for this vendor */ emailServer?: EmailServerConfiguration; /** [DEPRECATED] Use the listCompanyGroups operation instead */ clientGroups?: Array; } /** */ export interface VendorUpdateRequest { /** The display name of the company */ name?: string; /** A list of custom ID's for this company. Can be queried using the getClientByTag, getVendorByTag and getDistributorByTag methods. */ tags?: Array; /** The company website (if available) */ website?: string; /** The state of this company */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** Entity specific metadata */ entity?: EntityInfo; /** Soft limits that apply to this company. This includes overrides only, see `getLookups` for defaults. */ limits?: SoftLimits; /** A set of user defined flags */ flags?: FlagsBucket; /** Data retention settings. If this is null, settings from the parent or group will be used instead. */ retention?: CompanyDataRetentionSettings; /** Password policy to apply to users. If this is null, settings from the group will be used instead. */ passwordPolicy?: UserPasswordPolicy; /** The theme that this company uses */ theme?: ThemeInfo; /** Address information for this company */ address?: CompanyAddress; /** The default timezone for this company */ timeZoneId?: string; /** A set of custom fields for this company */ customFields?: CustomFields; /** A list of custom domains to use for this company */ domains?: Array; /** The default language to user for this client. */ language?: string; /** Support contact information that will be displayed to user of this company */ support?: CompanySupportDetails; /** Customized messages that are displayed to users of this company. */ messages?: CompanyMessages; /** A set of OpenId Connect issuers that are able to authenticate users on our behalf. */ oidc?: OpenIdConnectIssuers; /** The email provider to be used when sending emails */ emailProvider?: IdNameState; /** A list of ssl certificates provisioned for this company */ sslCertificates?: Array; /** A set of features that are enabled for this distributor. */ features?: Features; /** The group to which this vendor belongs */ group?: string; /** A list of map sets that are made available to the client's of this vendor. */ availableMapSets?: Array; /** The default map set that has been defined for this vendor. It may be empty in which case the distributor default will be used. */ defaultMapSet?: IdName; /** UUID's of the device types that this vendor is allowed to use. An empty list means all device types. */ availableDeviceTypes?: Array; /** A list of email providers that are made available to the client's of this vendor. */ availableEmailProviders?: Array; /** The configuration of a custom email server for this vendor */ emailServer?: EmailServerConfiguration; /** [DEPRECATED] Use the listCompanyGroups operation instead */ clientGroups?: Array; } /** */ export interface VendorDetailsUpdateRequest { /** The theme that this company uses */ theme?: ThemeInfo; /** Address information for this company */ address?: CompanyAddress; /** The default timezone for this company */ timeZoneId?: string; /** A set of custom fields for this company */ customFields?: CustomFields; /** A list of custom domains to use for this company */ domains?: Array; /** The default language to user for this client. */ language?: string; /** Support contact information that will be displayed to user of this company */ support?: CompanySupportDetails; /** Customized messages that are displayed to users of this company. */ messages?: CompanyMessages; /** A set of OpenId Connect issuers that are able to authenticate users on our behalf. */ oidc?: OpenIdConnectIssuers; /** The email provider to be used when sending emails */ emailProvider?: IdNameState; /** A list of ssl certificates provisioned for this company */ sslCertificates?: Array; /** The configuration of a custom email server for this vendor */ emailServer?: EmailServerConfiguration; /** [DEPRECATED] Use the listCompanyGroups operation instead */ clientGroups?: Array; } /** */ export interface VendorCreateRequest { /** The display name of the company */ name?: string; /** A list of custom ID's for this company. Can be queried using the getClientByTag, getVendorByTag and getDistributorByTag methods. */ tags?: Array; /** The company website (if available) */ website?: string; /** The state of this company */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** Entity specific metadata */ entity?: EntityInfo; /** Soft limits that apply to this company. This includes overrides only, see `getLookups` for defaults. */ limits?: SoftLimits; /** A set of user defined flags */ flags?: FlagsBucket; /** Data retention settings. If this is null, settings from the parent or group will be used instead. */ retention?: CompanyDataRetentionSettings; /** Password policy to apply to users. If this is null, settings from the group will be used instead. */ passwordPolicy?: UserPasswordPolicy; /** The theme that this company uses */ theme?: ThemeInfo; /** Address information for this company */ address?: CompanyAddress; /** The default timezone for this company */ timeZoneId?: string; /** A set of custom fields for this company */ customFields?: CustomFields; /** A list of custom domains to use for this company */ domains?: Array; /** The default language to user for this client. */ language?: string; /** Support contact information that will be displayed to user of this company */ support?: CompanySupportDetails; /** Customized messages that are displayed to users of this company. */ messages?: CompanyMessages; /** A set of OpenId Connect issuers that are able to authenticate users on our behalf. */ oidc?: OpenIdConnectIssuers; /** The email provider to be used when sending emails */ emailProvider?: IdNameState; /** A list of ssl certificates provisioned for this company */ sslCertificates?: Array; /** A set of features that are enabled for this distributor. */ features?: Features; /** The group to which this vendor belongs */ group?: string; /** A list of map sets that are made available to the client's of this vendor. */ availableMapSets?: Array; /** The default map set that has been defined for this vendor. It may be empty in which case the distributor default will be used. */ defaultMapSet?: IdName; /** UUID's of the device types that this vendor is allowed to use. An empty list means all device types. */ availableDeviceTypes?: Array; /** A list of email providers that are made available to the client's of this vendor. */ availableEmailProviders?: Array; /** The configuration of a custom email server for this vendor */ emailServer?: EmailServerConfiguration; /** [DEPRECATED] Use the listCompanyGroups operation instead */ clientGroups?: Array; /** */ ownerId: string; } /** */ export interface UserOTPMethod { /** The type of OTP */ type: string; /** The date on which this OTP method was configured */ date?: string; /** Whether this OTP method has been verified or not. If false, enrolment may be required before using this method. */ verified: boolean; } /** */ export interface AuthOtpStatus { /** The type of OTP that is required for this user. */ methods: Array; /** Date by which the user is required to use OTP authentication. */ requiredFrom: string; /** If true, the cached OTP token for the user has been accepted, and OTP can be skipped. */ authenticated: boolean; /** The number of days for which any OTP tokens returned by the API will be valid for */ tokenValidityDays: number; } /** */ export interface AuthUserResponse { /** The unique user identifier */ id: string; /** The user's username (usually his email address) */ username: string; /** The user's full name */ name: string; /** The entity that owns this user */ owner: IdNameType; /** The client that has been configured as the default for this user */ defaultClient: IdName; /** The cost centre to which this user belongs */ costCentre: IdName; /** The user's timezone, either as a region/city value (i.e. America/New_York) or a specific timezone (i.e. GMT+2) */ timeZoneId: string; /** The user's chosen language */ language: string; /** Information about one time password requirements */ otp: AuthOtpStatus; /** The ISO date on which the users current password expires */ passwordExpiresOn: string; } /** */ export interface UserSessionResponse { /** The JWT token is represented as a JSON Web Token (JWT). The token contains claims about the identity of the authenticated user. Additional information is also included in this token such as the default client id and user's full name and surname. The id token expires one hour after the user authenticates. You should not process the access token in your client or web API after it has expired. */ idToken: string; /** The JWT token is represented as a JSON Web Token (JWT). The token contains claims about the identity of the authenticated user. The access token expires one hour after the user authenticates. You should not process the access token in your client or web API after it has expired. */ accessToken: string; /** The JWT token is represented as a JSON Web Token (JWT). The token can be used to refresh a user's access and id tokens. The access token expires one hour after the user authenticates and the refresh token is valid for 30 days. You should not process the access token in your client or web API after it has expired. */ refreshToken: string; /** An array of users that match the authentication information */ users: Array; } /** The authentication credentials are missing, or if supplied are not valid or not sufficient to access the resource. */ export interface UnauthorizedError { /** */ status?: number; /** */ name?: string; /** */ message?: string; } /** */ export interface AuthRequest { /** Optionally pass the domain for which this login is restricted to. Required for OpenId Connect `id_token` based authentication. */ domain?: string; /** The username to authenticate against, usually an email address. Required for password validation. */ username?: string; /** The password for the specified username. Required if you passed a username. */ password?: string; /** Optional - if multiple matching users are expected, you can pre-select the user you want by passing in the user id */ userId?: string; /** Optional token based authentication. This could be a password reset token or an OpenId Connect `id_token`. Username and password are ignored if a token is passed. */ token?: string; } /** */ export interface SignOutRequest { /** Pass a session ID if you want to sign out a particular session, leave empty to sign out from the current session */ session?: string; } /** */ export interface SelectedUserTokenResponse { /** The JWT token is represented as a JSON Web Token (JWT). The token contains claims about the identity of the authenticated user. Additional information is also included in this token such as the default client id and user's full name and surname. The id token expires one hour after the user authenticates. You should not process the access token in your client or web API after it has expired. */ idToken: string; /** The JWT token is represented as a JSON Web Token (JWT). The token contains claims about the identity of the authenticated user. The access token expires one hour after the user authenticates. You should not process the access token in your client or web API after it has expired. */ accessToken: string; /** The JWT token is represented as a JSON Web Token (JWT). The token can be used to refresh a user's access and id tokens. The access token expires one hour after the user authenticates and the refresh token is valid for 30 days. You should not process the access token in your client or web API after it has expired. */ refreshToken: string; /** The user that was selected */ user?: AuthUserResponse; } /** */ export interface TokenResponse { /** The JWT token is represented as a JSON Web Token (JWT). The token contains claims about the identity of the authenticated user. Additional information is also included in this token such as the default client id and user's full name and surname. The id token expires one hour after the user authenticates. You should not process the access token in your client or web API after it has expired. */ idToken: string; /** The JWT token is represented as a JSON Web Token (JWT). The token contains claims about the identity of the authenticated user. The access token expires one hour after the user authenticates. You should not process the access token in your client or web API after it has expired. */ accessToken: string; /** The JWT token is represented as a JSON Web Token (JWT). The token can be used to refresh a user's access and id tokens. The access token expires one hour after the user authenticates and the refresh token is valid for 30 days. You should not process the access token in your client or web API after it has expired. */ refreshToken: string; } /** */ export interface AuthRefreshTokenRequest { /** A valid user refresh token */ refreshToken: string; } /** */ export interface AuthResetPasswordRequest { /** The full URL where the user will be redirected for password reset. Include a {token} template variable so the API can insert the reset token. i.e. https://example.com/reset?token={token} */ resetUrl: string; /** The username to reset, usually an email address. */ username: string; } /** */ export interface AuthSetPasswordRequest { /** The reset token that was sent to the user. */ token: string; /** The user's new password */ newPassword: string; } /** */ export interface UpdateUserPasswordRequest { /** The user's current password. */ oldPassword: string; /** The user's new password */ newPassword: string; } /** Information about a logged in user session */ export interface UserSession { /** The unique ID of this session */ id: string; /** The user UUID */ userId: string; /** The ISO date when the session was started */ start: string; /** The expiry date of the session (can be extended with token refreshes) */ expiry: string; /** The IP address of the user that initiated or last refreshed the session */ ip: string; /** The hostname of the front-end from which the session was created */ hostname: string; /** The browser user agent string of the user */ agent: string; /** A flag indicating if the session has been invalidated */ invalidated?: boolean; /** True if this session is the same session from which this request was made */ current: boolean; } /** Information about a users profile */ export interface UserProfileResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** */ name?: string; /** The user's email address, used to log into the system */ emailAddress?: string; /** An optional mobile number used for SMS notifications */ mobile?: string; /** The time zone identifier for the user (uses the tz database for timezones, see https://en.wikipedia.org/wiki/Tz_database) */ timeZoneId?: string; /** The language code for this user */ language?: string; /** The state of the user object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** notification settings */ notifySettings?: NotificationSettings; /** The default client to load for this user */ defaultClient?: IdName; /** A list of user roles that apply to this user */ roles?: Array; /** The cost centre that this user belongs to */ costCentre?: IdName; /** When OpenId Connect is enabled for a client, you need to tie the user to the issuer's internal user ID. Specificy them in the oidcTags bucket */ oidcTags?: OidcTags; /** */ permissions?: UserPermissions; /** A set of user defined flags */ flags?: FlagsBucket; /** An optional set of API keys generated by the user */ apiKeys?: ApiKeys; /** Lists the types of one time password methods that have been configured for this user */ otp?: Array; /** */ entity: EntityInfo; /** A list of user session information */ sessions: Array; } /** */ export interface AuthOTPGenerateResponse { /** The shared secret used to configure authenticator applications */ secret: string; /** A url that can be used to generate a QR code to configure an authenticator application */ totpAuthUrl: string; } /** */ export interface AuthOTPSendResponse { /** The method by which the OTP was sent */ method: string; /** The destination to which the OTP was sent */ destination: string; } /** */ export interface AuthOTPValidateResponse { /** The JWT token is represented as a JSON Web Token (JWT). The token contains claims about the identity of the authenticated user. Additional information is also included in this token such as the default client id and user's full name and surname. The id token expires one hour after the user authenticates. You should not process the access token in your client or web API after it has expired. */ idToken: string; /** The JWT token is represented as a JSON Web Token (JWT). The token contains claims about the identity of the authenticated user. The access token expires one hour after the user authenticates. You should not process the access token in your client or web API after it has expired. */ accessToken: string; /** The JWT token is represented as a JSON Web Token (JWT). The token can be used to refresh a user's access and id tokens. The access token expires one hour after the user authenticates and the refresh token is valid for 30 days. You should not process the access token in your client or web API after it has expired. */ refreshToken: string; /** Returns a token that can be used to skip OTP on the next sign in */ otpToken: string; /** Will be true if the OTP code passed in was successfully verified */ verified: boolean; } /** */ export interface AuthOTPValidateRequest { /** A OTP code generated by the users authenticator application */ code: string; } /** */ export interface Dictionary { [key: string]: any; } /** */ export interface NotificationResponse { /** The unique ID for the notification event */ id: string; /** The owner company of the notification event */ owner: IdNameType; /** The user that triggered the notification event */ user: IdName; /** The UTC date when the notification event was recorded in the system */ date: string; /** A sequence number that can be used to traverse the notification feed */ sequence: number; /** The type of event in the given class */ eventType: string; /** The text description of the event */ text: string; /** Event specific information */ data: Dictionary; } /** A list of audit event items */ export interface NotificationFeedResponse { /** */ items: Array; } /** */ export interface TelemetryTrip { /** */ start: string; /** */ startAddress: string; /** */ startLon: number; /** */ startLat: number; /** */ distance: number; /** */ lastLon: number; /** */ lastLat: number; } /** */ export interface PrivacyScheduleItem { /** The unique ID of this item */ id: string; /** The days of the week that this profile is active for (0 - 6, 0 = Sunday) */ days: Array; /** The time from which this privacy starts (HH:mm:ss) */ from: string; /** The time at which this privacy ends (HH:mm:ss) */ to: string; /** The time zone ID of the time values */ timeZoneId: string; } /** */ export interface PrivacyStateItem { /** The unique ID of this item */ id: string; /** The asset state profile id */ stateProfileId: string; /** The state profile value to trigger on */ stateValue: string; } /** */ export interface AssetPrivacyResponse { /** The date and time (YYYY/MM/DD HH:mm:ss) when the privacy mode should end. */ end: string; /** The number of subsequent trips that should be marked as private. Set to 0 to mark all trips as private until the end date or this privacy mode is removed. */ trips: number; /** The user that initiated the privacy mode */ user: IdName; /** The date and time (YYYY/MM/DD HH:mm:ss) when the privacy mode was initiated. */ start: string; } /** */ export interface TelemetryStatePrivacy { /** The source of the current privacy mode (scheduled, assetstate or user) */ source: string; /** The scheduled trigger (if source is scheduled) */ scheduleTrigger?: PrivacyScheduleItem; /** The asset state trigger responsible (if source is assetstate) */ assetStateTrigger?: PrivacyStateItem; /** Information about the user initiated privacy mode (if source is user) */ userTrigger?: AssetPrivacyResponse; } /** */ export interface TelemetryState { /** */ state: string; /** */ color: string; } /** */ export interface TelemetryStateDictionary { [key: string]: TelemetryState; } /** */ export interface SpeedLimits { /** likely road speed */ rd: number; /** maximum road speed in the vicinity */ mx: number; /** speed unit (0 = kph, 1 = mph) */ un: number; /** road speed modifier limit (if available) */ md?: number; } /** */ export interface ReverseGeocode { /** Road name */ rd?: string; /** Route Name */ rt?: string; /** Suburb name */ sb?: string; /** Town name */ tw?: string; /** Province or state namee */ pr?: string; /** Post code */ pc?: string; /** City name */ ct?: string; /** Dual Carriage (0 = single, 1 = dual) */ dc?: number; } /** */ export interface TelemetryLocation { /** The WGS84 longitude in decimal degrees */ lon: number; /** The WGS84 latitude in decimal degrees */ lat: number; /** The speed in km/h */ speed: number; /** The altitude above sea level in meters */ altitude: number; /** The heading in degrees */ heading: number; /** The accuracy of the location (usually the number of satellites visible, but varies by device) */ accuracy: number; /** The reverse geocoded address of this location. May also be the name of a zone that is currently been entered. */ address?: string; /** The age of the gps position. Not sent by all devices. */ age?: number; /** Detailed reverse geoding information */ gc?: ReverseGeocode; } /** */ export interface TelemetryIOValue { /** */ type: string; /** */ input: string; /** */ name?: string; /** */ value?: any; /** */ text?: any; /** */ unit?: string; /** */ err?: string; } /** */ export interface TelemetryIOValues { [key: string]: TelemetryIOValue; } /** */ export interface TelemetryStateResponse { /** The device that generated this telemetry message */ origin?: IdName; /** The ISO8601 UTC date that the message was generated by the device */ date: string; /** The ISO8601 UTC date that the message was received by the system */ received: string; /** True if the device is in an active state */ active?: boolean; /** A list of assets linked to this telemetry message */ linked: Array; /** A list of zones which are relevant to this location */ zones?: Array; /** A list of routes which are relevant to this location */ routes?: Array; /** The relevant asset state for this message */ state?: TelemetryStateDictionary; /** If road speed is enabled, the speed limit information retrieved from reverse geocoding */ spd?: SpeedLimits; /** The current location where this message was generated */ location?: TelemetryLocation; /** A list of telemetry states and values for this message */ telemetry?: Dictionary; /** A list of counter values for this message */ counters?: NumberDictionary; /** Parsed IO values for this message */ io?: TelemetryIOValues; /** A dictionary of meta information generated in the system during processing */ meta?: Dictionary; /** The asset that this information belongs to */ object?: IdNameType; /** Details about the last in progress trip */ trip?: TelemetryTrip; /** The last time that the asset moved. */ lastMovement?: string; /** The time when the last trip ended. */ lastTripEnd?: string; /** Information about any privacy state that currently applies to this asset */ privacy?: TelemetryStatePrivacy; } /** A list of telemetry items */ export interface TelemetryFeedResponse { /** sequence for the feed */ sequence: number; /** number of items in the feed */ count: number; /** */ items: Array; } /** */ export interface TripLocation { /** The WGS84 longitude in decimal degrees */ lon: number; /** The WGS84 latitude in decimal degrees */ lat: number; /** The reverse geocoded address of this location. May also be the name of a zone that is currently been entered. */ address: string; /** The telemetry counter values at this point */ counters: Dictionary; /** The calculated odometer, in km */ odometer?: number; /** The calculated hours */ hours?: number; } /** */ export interface TripStats { /** The number of seconds spend driving (active and speed > 0) */ driveTime: number; /** The number of seconds spend idling (active and speed < 0) */ idleTime: number; /** The distance driven in km */ distance: number; } /** */ export interface TripRatingPenalty { /** The unique id for this penalty */ id: string; /** Name of the penalty */ name: string; /** Number of instances that this penalty occurred */ instances: number; /** Score for this penalty */ score: number; /** */ max: number; /** The monetary cost incurred each time this incident occurs */ cost: number; } /** */ export interface TripRating { /** */ profile: string; /** */ score: number; /** */ penalties: Array; } /** */ export interface LabelValuePayload { /** A lowercase alphanumeric label value */ label: string; /** A friendly descriptive name for label */ name: string; /** An optional color for this label */ color?: string; } /** */ export interface TripResponse { /** Unique id for this trip */ id: string; /** The asset that generated this trip */ asset: IdName; /** The type of this asset */ assetType: IdName; /** The type of this trip */ tripType: 'inactive' | 'active' | 'mixed'; /** The ISO8601 UTC date that the trip was started */ dateStart: string; /** The ISO8601 UTC date that the trip was ended */ dateEnd: string; /** The location where the trip started */ start?: TripLocation; /** The location where the trip ended */ end?: TripLocation; /** Statistics about the trip */ stats?: TripStats; /** Trip rating information */ rating?: TripRating; /** The number of telemetry records that comprised this trip */ records?: number; /** Any other assets that were linked to this trip */ linkedAssets: Array; /** Max values for the trip */ maxes?: NumberDictionary; /** An optional list of labels assigned to this trip */ labels?: Array; /** Indication of whether this trip is private or not */ private?: boolean; } /** A list of trip items */ export interface TripFeedResponse { /** sequence for the feed */ sequence: number; /** number of items in the feed */ count: number; /** */ items: Array; } /** */ export interface EventMedia { /** */ input: string; /** */ date: string; /** */ user?: IdName; /** */ mediaType: 'video' | 'photo'; /** */ filename: string; /** */ error?: string; } /** */ export interface EventRating { /** The trip rating profile Id */ profileId: string; /** The name of the penalty */ name: string; /** The penalty value (can be zero if max penalty has been reached. */ penalty: number; /** The cost of the penalty */ cost: number; } /** */ export interface EventHandled { /** The UTC date that the event was handled */ date: string; /** The user that handled the event */ user: IdName; } /** */ export interface EventComment { /** The UTC date that the comment was created */ date: string; /** The user that created the comment */ user: IdName; /** The comment text */ comment: string; /** Values populated from custom field controls */ values?: Dictionary; } /** */ export interface EventResponse { /** The unique ID for the event */ id: string; /** The owner company of the event */ owner: IdNameType; /** The originator of the event */ origin?: IdNameType; /** Assets and devices that are linked to this event */ linked: Array; /** Any alerts this event may have triggered */ alerts: Array; /** Any labels applied to this event */ labels: Array; /** Users that were notified of this event */ notify: Array; /** Media that's linked to this event */ media: Array; /** Any rating profiles affected by this event */ rating: Array; /** The UTC date of the event as recorded by the device that triggered it */ eventDate: string; /** The UTC date when the evetn was created in the system */ creationDate: string; /** The UTC date when this event was last modified */ modifiedDate: string; /** The class of the event */ eventClass: string; /** The type of event in the given class */ eventType: string; /** Populated if the event/alert has been handled by a user */ handledBy?: EventHandled; /** List of comments that users have left on this event */ comments: Array; /** An event class specific bag of details relating to this event */ details: Dictionary; } /** A list of trip items */ export interface EventFeedResponse { /** sequence for the feed */ sequence: number; /** number of items in the feed */ count: number; /** */ items: Array; } /** */ export interface AuditEventKeyValue { /** */ key: string; /** */ value: string; } /** */ export interface AuditEventChange { /** */ action: 'added' | 'modified' | 'removed'; /** */ field: string; /** */ name: string; /** */ oldValue?: AuditEventKeyValue; /** */ newValue?: AuditEventKeyValue; } /** */ export interface AuditEventResponse { /** The unique ID for the event */ id: string; /** The owner company of the event */ owner: IdNameType; /** The user that triggered the event */ entity: IdNameType; /** The user that triggered the event */ user: IdName; /** The UTC date when the event was recorded in the system */ date: string; /** The class of the event */ eventClass: string; /** The type of event in the given class */ eventType: 'created' | 'modified' | 'deleted'; /** A list of changes that were applied */ changes: Array; } /** A list of audit event items */ export interface AuditEventFeedResponse { /** sequence for the feed */ sequence: number; /** number of items in the feed */ count: number; /** */ items: Array; } /** */ export interface EventCommentRequest { /** The comment text */ comment?: string; /** */ values?: Dictionary; } /** */ export interface TelemetryResponse { /** The device that generated this telemetry message */ origin?: IdName; /** The ISO8601 UTC date that the message was generated by the device */ date: string; /** The ISO8601 UTC date that the message was received by the system */ received: string; /** True if the device is in an active state */ active?: boolean; /** A list of assets linked to this telemetry message */ linked: Array; /** A list of zones which are relevant to this location */ zones?: Array; /** A list of routes which are relevant to this location */ routes?: Array; /** The relevant asset state for this message */ state?: TelemetryStateDictionary; /** If road speed is enabled, the speed limit information retrieved from reverse geocoding */ spd?: SpeedLimits; /** The current location where this message was generated */ location?: TelemetryLocation; /** A list of telemetry states and values for this message */ telemetry?: Dictionary; /** A list of counter values for this message */ counters?: NumberDictionary; /** Parsed IO values for this message */ io?: TelemetryIOValues; } /** A list of telemetry items */ export interface TelemetryListResponse { /** total number of records in the result set */ count: number; /** the max number of items returned in the result set */ limit: number; /** ISO start date of the request */ start: string; /** ISO end date of the request */ end: string; /** Telemetry items */ items: Array; } /** The request was invalid or cannot be otherwise served. An accompanying error message will explain further. */ export interface BadRequestError { /** */ status?: number; /** */ name?: string; /** */ message?: string; /** */ data?: any; } /** A list of event items */ export interface EventListResponse { /** total number of records in the result set */ count: number; /** the max number of items returned in the result set */ limit: number; /** ISO start date of the request */ start: string; /** ISO end date of the request */ end: string; /** Event items */ items: Array; } /** A list of trip items */ export interface TripListResponse { /** total number of records in the result set */ count: number; /** the max number of items returned in the result set */ limit: number; /** ISO start date of the request */ start: string; /** ISO end date of the request */ end: string; /** Trip items */ items: Array; } /** */ export interface TripLabelRequest { /** */ labels: Array; } /** */ export interface LogMessage { /** */ level: string; /** */ timestamp: string; /** */ message: string; } /** */ export interface LogResponse { /** */ items: Array; } /** */ export interface EventActionFilter { /** */ eventClass: string; /** */ eventType?: string; /** */ targetType?: string; /** */ text: string; } /** */ export interface EventTargetFilter { /** */ targetType?: string; /** */ targetTypeId?: string; /** */ targetTypeName?: string; /** */ targetSelectionType: 'any' | 'group' | 'specific'; /** */ targetId?: string; /** */ targetName?: string; /** */ text?: string; } /** */ export interface EventFilterConditionDictionary { [key: string]: any; } /** */ export interface EventFilterCondition { /** */ type: string; /** */ values: EventFilterConditionDictionary; /** */ text: EventFilterConditionDictionary; } /** */ export interface EventFilter { /** */ actor?: EventActorFilter; /** */ action?: EventActionFilter; /** */ target?: EventTargetFilter; /** */ conditions?: Array; } /** */ export interface AlertListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this alert */ name: string; /** The current state of this alert */ state: 'active' | 'deleted'; /** The cost centre that this alert applies to */ costCentre: IdName; /** The priority of this alert */ priority: 'low' | 'medium' | 'high'; /** The filter that this alert matches on */ filter?: EventFilter; /** The date the entity was last modified */ modifiedDate: string; } /** A list of alert items */ export interface AlertListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface AlertNotify { /** */ type: 'user' | 'role'; /** */ id: string; /** */ name: string; } /** */ export interface AlertAction { /** */ type: 'request_video' | 'request_photo' | 'label_current_trip'; /** */ id: string; /** */ options: any; } /** */ export interface AlertResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this alert */ name?: string; /** The current state of this alert */ state?: 'active' | 'deleted'; /** The cost centre that this alert applies to */ costCentre?: IdName; /** The priority of this alert */ priority?: 'low' | 'medium' | 'high'; /** The filter that this alert matches on */ filter?: EventFilter; /** A list of users and roles that will be notified if this alert triggers. */ notify?: Array; /** A list of actions to be performed once this alert triggers. */ actions?: Array; /** entity specific metadata */ entity?: EntityInfo; } /** */ export interface AlertUpdateRequest { /** A unique name for this alert */ name?: string; /** The current state of this alert */ state?: 'active' | 'deleted'; /** The cost centre that this alert applies to */ costCentre?: IdName; /** The priority of this alert */ priority?: 'low' | 'medium' | 'high'; /** The filter that this alert matches on */ filter?: EventFilter; /** A list of users and roles that will be notified if this alert triggers. */ notify?: Array; /** A list of actions to be performed once this alert triggers. */ actions?: Array; } /** */ export interface AlertCreateRequest { /** A unique name for this alert */ name?: string; /** The current state of this alert */ state?: 'active' | 'deleted'; /** The cost centre that this alert applies to */ costCentre?: IdName; /** The priority of this alert */ priority?: 'low' | 'medium' | 'high'; /** The filter that this alert matches on */ filter?: EventFilter; /** A list of users and roles that will be notified if this alert triggers. */ notify?: Array; /** A list of actions to be performed once this alert triggers. */ actions?: Array; /** The client that owns this Alert */ ownerId: string; } /** Contacts can be assigned to assets and will be displayed along side any asset related information. */ export interface Contact { /** A unique id for this contact */ id: string; /** The type of contact */ type: 'emergency' | 'administrative' | 'technical' | 'operational' | 'management' | 'owner'; /** The name of the contact person or company */ name: string; /** The contact person's email address */ emailAddress?: string; /** The mobile phone number of the contact */ phoneMobile?: string; /** An optional office number for the contact */ phoneOffice?: string; /** Any notes regarding this contact */ notes?: string; } /** */ export interface AssetCategoryResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The index number of this asset category (0 - 4) */ index?: number; /** A unique name for this entity */ name?: string; /** The parent of this entity */ parent?: IdName; /** A list of contacts applicable to this asset category */ contacts?: Array; /** entity specific metadata */ entity: EntityInfo; } /** A list of asset category items */ export interface AssetCategoryListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface AssetCategoryUpdateRequest { /** The index number of this asset category (0 - 4) */ index?: number; /** A unique name for this entity */ name?: string; /** The parent of this entity */ parent?: IdName; /** A list of contacts applicable to this asset category */ contacts?: Array; } /** */ export interface AssetCategoryCreateRequest { /** The index number of this asset category (0 - 4) */ index?: number; /** A unique name for this entity */ name: string; /** The parent of this entity */ parent?: IdName; /** A list of contacts applicable to this asset category */ contacts?: Array; /** The client that owns this entity */ ownerId: string; } /** */ export interface AssetGroupResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The parent of this entity */ parent?: IdName; /** A list of contacts applicable to this asset group */ contacts?: Array; /** entity specific metadata */ entity: EntityInfo; } /** A list of asset group items */ export interface AssetGroupListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface AssetGroupUpdateRequest { /** A unique name for this entity */ name?: string; /** The parent of this entity */ parent?: IdName; /** A list of contacts applicable to this asset group */ contacts?: Array; } /** */ export interface AssetGroupCreateRequest { /** A unique name for this entity */ name: string; /** The parent of this entity */ parent?: IdName; /** A list of contacts applicable to this asset group */ contacts?: Array; /** The client that owns this entity */ ownerId: string; } /** */ export interface AssetRatingPenalty { /** The unique ID of this penalty item */ id: string; /** A descriptive name for this penalty item */ name: string; /** A penalty to apply when this penalty is matched */ penalty: number; /** The maximum penalty that can be applied for this penalty */ max: number; /** The monetary cost incurred each time this incident occurs */ cost: number; /** The filter that this penalty matches on */ filter: EventFilter; } /** */ export interface AssetRatingProfileListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The penalty items for this profile */ items?: Array; /** The date the entity was last modified */ modifiedDate: string; } /** A list of asset rating profile items */ export interface AssetRatingProfileListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface AssetRatingProfileResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The penalty items for this profile */ items?: Array; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface AssetRatingProfileUpdateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The penalty items for this profile */ items?: Array; } /** */ export interface AssetRatingProfileCreateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The penalty items for this profile */ items?: Array; /** The client that owns this Asset Rating Profile */ ownerId: string; } /** */ export interface AssetDevice { /** The unique ID of the object */ id: string; /** The name of the object (can be undefined if an error occurs) */ name?: string; /** Will be populated if an error occurs retrieving the name for the object. */ err?: ErrorBase; /** The device type */ deviceType: IdName; } /** */ export interface CustomFieldValues { [key: string]: any; } /** A user can geo lock an asset to a specific location, and be notified should the asset move from that location. */ export interface AssetGeoLock { /** The user that initiated the geo-lock */ user: IdName; /** The latitude of the location (in milliarcseconds format) */ lat: number; /** The longitude of the location (in milliarcseconds format) */ lon: number; /** The radius of the geo-lock in kilometers */ radiusKm: number; /** The date and time (YYYY/MM/DD HH:mm:ss) when the geolock was initiated. */ start: string; /** The date and time (YYYY/MM/DD HH:mm:ss) when the geolock was ended. */ end: string; } /** */ export interface AssetLinkage { /** */ client: IdName; /** */ asset?: IdName; /** */ start: string; /** */ end: string; } /** */ export interface AssetListItem { /** The unique ID for this asset */ id: string; /** A client unique name for this asset. This can be any value that is relevant for the client. */ name: string; /** The client that owns this asset */ owner: IdName; /** One or more clients to which this asset has been shared. */ sharedWith: Array; /** The type of asset */ assetType: IdName; /** One of more asset groups that this asset belongs to */ groups: Array; /** Up to 5 different categories that this asset belongs to */ categories: Array; /** The cost centre to which this asset belongs */ costCentre: IdName; /** One or more devices that provide telemetry data for this asset. */ devices: Array; /** */ assetTag: string; /** */ tags: Array; /** A number of custom field values for this asset. */ fields: CustomFieldValues; /** The color of the icon for this asset */ color: 'blue' | 'lightblue' | 'green' | 'olive' | 'orange' | 'pink' | 'purple' | 'red' | 'teal' | 'yellow' | 'white' | 'gray'; /** The current state of the asset object */ state: 'inactive' | 'active' | 'suspended' | 'deleted'; /** Details about an active geo-lock on this asset (if any) */ geoLock?: AssetGeoLock; /** The number of cameras connected to this asset */ cameras: number; /** A list of clients into which this asset has been linked/cloned */ linkedTo: Array; /** The source client that this asset has been linked/cloned from */ linkedFrom: Array; } /** A list of asset items */ export interface AssetListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** The list of asset items in this response */ items: Array; } /** */ export interface AssetAnalogParameter { /** */ id: string; /** */ name: string; /** */ ioType: string; /** */ minRange: number; /** */ maxRange: number; /** */ rangeDebounce: number; /** */ decValue: number; /** */ incValue: number; } /** */ export interface AssetTemperatureParameter { /** */ id: string; /** */ name: string; /** */ ioType: string; /** */ minRange: number; /** */ maxRange: number; /** */ rangeDebounce: number; } /** */ export interface AssetCurfewParameter { /** */ id: string; /** */ from: string; /** */ to: string; /** */ days: Array; /** */ timeZoneId: string; } /** */ export interface AssetParameters { /** */ overspeed?: number; /** */ overspeedTolerance?: number; /** */ excessiveIdle?: number; /** */ borders?: Array; /** */ analogs?: Array; /** */ temperatures?: Array; /** */ curfews?: Array; /** */ maxTripTime?: number; /** */ maxTripDistance?: number; /** */ maxInactiveTime?: number; } /** Fixed assets can have their location statically assigned */ export interface AssetLocation { /** An address for this location */ address: string; /** The latitude of the location (in milliarcseconds format) */ lat: number; /** The longitude of the location (in milliarcseconds format) */ lon: number; } /** */ export interface AssetZoneTarget { /** */ zoneType?: 'location' | 'keepin' | 'nogo' | 'route'; /** */ targetSelectionType?: 'any' | 'group' | 'specific'; /** */ targetId?: string; /** */ targetName?: string; } /** */ export interface AssetResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A client unique name for this asset. This can be any value that is relevant for the client. */ name?: string; /** The type of asset */ assetType?: IdName; /** The color of the icon for this asset */ color?: 'blue' | 'lightblue' | 'green' | 'olive' | 'orange' | 'pink' | 'purple' | 'red' | 'teal' | 'yellow' | 'white' | 'gray'; /** */ tags?: Array; /** The cost centre to which this asset belongs */ costCentre?: IdName; /** The trip rating profile to use for this assets trip rating */ ratingProfile?: IdName; /** One or more asset state profiles to use for this asset */ assetStateProfiles?: Array; /** The overspeed profile to use for this asset */ overspeedProfile?: IdName; /** The geo lock profile to use for this asset */ geoLockProfile?: IdName; /** The road profile to use for this asset */ roadProfile?: IdName; /** The privacy profile to use for this asset */ privacyProfile?: IdName; /** One of more asset groups that this asset belongs to */ groups?: Array; /** Up to 5 different categories that this asset belongs to */ categories?: Array; /** One or more clients to which this asset has been shared. */ sharedWith?: Array; /** */ assetTag?: IdName; /** The current state of the asset object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** A number of custom field values for this asset. */ fields?: CustomFieldValues; /** */ parameters?: AssetParameters; /** Details about an active geo-lock on this asset (if any) */ geoLock?: AssetGeoLock; /** One or more contacts that are relevant to this asset */ contacts?: Array; /** For static assets this field can be set with the known location of the asset */ location?: AssetLocation; /** A list of zones and routes that are relevant to this asset */ zones?: Array; /** A list of labels that will be applied to trips from this asset by default. */ defaultTripLabels?: Array; /** One or more devices that provide telemetry data for this asset. Can only be modified using the `updateDevice` operation. */ devices?: Array; /** Information about asset linkage, can only be modified with the `linkAssets` operation. */ linkedFrom?: AssetLinkage; /** A list of assets this asset it linked to, can only be modified with the `linkAssets` operation. */ linkedTo?: Array; /** If this is set (and the conditions are valid), the asset will run in privacy mode. */ privacy?: AssetPrivacyResponse; /** entity specific metadata */ entity: EntityInfo; } /** Describes a counter value (odometer, engine hours, etc.) at a specific date. */ export interface AssetCounterValue { /** The value of the counter at a specific point in time (must me km for odometer, and hours for hour couters). */ value: number; /** The date and time at which this counter was recorded. */ date: string; } /** A collection of counter values */ export interface AssetCounterValues { /** The odometer of the asset, expressed as kilometers. */ odometer?: AssetCounterValue; /** The engine hours of the asset, expressed as hours. */ hours?: AssetCounterValue; } /** */ export interface AssetUpdateRequest { /** A client unique name for this asset. This can be any value that is relevant for the client. */ name?: string; /** The type of asset */ assetType?: IdName; /** The color of the icon for this asset */ color?: 'blue' | 'lightblue' | 'green' | 'olive' | 'orange' | 'pink' | 'purple' | 'red' | 'teal' | 'yellow' | 'white' | 'gray'; /** */ tags?: Array; /** The cost centre to which this asset belongs */ costCentre?: IdName; /** The trip rating profile to use for this assets trip rating */ ratingProfile?: IdName; /** One or more asset state profiles to use for this asset */ assetStateProfiles?: Array; /** The overspeed profile to use for this asset */ overspeedProfile?: IdName; /** The geo lock profile to use for this asset */ geoLockProfile?: IdName; /** The road profile to use for this asset */ roadProfile?: IdName; /** The privacy profile to use for this asset */ privacyProfile?: IdName; /** One of more asset groups that this asset belongs to */ groups?: Array; /** Up to 5 different categories that this asset belongs to */ categories?: Array; /** One or more clients to which this asset has been shared. */ sharedWith?: Array; /** */ assetTag?: IdName; /** The current state of the asset object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** A number of custom field values for this asset. */ fields?: CustomFieldValues; /** */ parameters?: AssetParameters; /** Details about an active geo-lock on this asset (if any) */ geoLock?: AssetGeoLock; /** One or more contacts that are relevant to this asset */ contacts?: Array; /** For static assets this field can be set with the known location of the asset */ location?: AssetLocation; /** A list of zones and routes that are relevant to this asset */ zones?: Array; /** A list of labels that will be applied to trips from this asset by default. */ defaultTripLabels?: Array; /** Populate this field to supply new odometer and/or engine hours values for the asset. */ counterValues?: AssetCounterValues; } /** */ export interface AssetCreateRequest { /** A client unique name for this asset. This can be any value that is relevant for the client. */ name: string; /** The type of asset */ assetType: IdName; /** The color of the icon for this asset */ color?: 'blue' | 'lightblue' | 'green' | 'olive' | 'orange' | 'pink' | 'purple' | 'red' | 'teal' | 'yellow' | 'white' | 'gray'; /** */ tags?: Array; /** The cost centre to which this asset belongs */ costCentre: IdName; /** The trip rating profile to use for this assets trip rating */ ratingProfile?: IdName; /** One or more asset state profiles to use for this asset */ assetStateProfiles?: Array; /** The overspeed profile to use for this asset */ overspeedProfile?: IdName; /** The geo lock profile to use for this asset */ geoLockProfile?: IdName; /** The road profile to use for this asset */ roadProfile?: IdName; /** The privacy profile to use for this asset */ privacyProfile?: IdName; /** One of more asset groups that this asset belongs to */ groups: Array; /** Up to 5 different categories that this asset belongs to */ categories?: Array; /** One or more clients to which this asset has been shared. */ sharedWith?: Array; /** */ assetTag?: IdName; /** The current state of the asset object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** A number of custom field values for this asset. */ fields?: CustomFieldValues; /** */ parameters?: AssetParameters; /** Details about an active geo-lock on this asset (if any) */ geoLock?: AssetGeoLock; /** One or more contacts that are relevant to this asset */ contacts?: Array; /** For static assets this field can be set with the known location of the asset */ location?: AssetLocation; /** A list of zones and routes that are relevant to this asset */ zones?: Array; /** A list of labels that will be applied to trips from this asset by default. */ defaultTripLabels?: Array; /** */ ownerId: string; /** Populate this field to supply new odometer and/or engine hours values for the asset. */ counterValues?: AssetCounterValues; } /** */ export interface DestinationAddress { /** The WGS84 longitude in decimal degrees */ lon: number; /** The WGS84 latitude in decimal degrees */ lat: number; /** The reverse geocoded address of this location. */ address?: string; } /** */ export interface AssetSharedLocationResponse { /** The unique ID for this asset */ id: string; /** A client unique name for this asset. This can be any value that is relevant for the client. */ name: string; /** The ID of the client that owns this asset */ ownerId: string; /** The ISO8601 UTC date that the message was generated by the device */ date: string; /** The ISO8601 UTC date that the message was received by the system */ received: string; /** True if the device is in an active state */ active: boolean; /** The WGS84 longitude in decimal degrees */ lon: number; /** The WGS84 latitude in decimal degrees */ lat: number; /** The speed in km/h */ speed: number; /** The altitude above sea level in meters */ altitude: number; /** The heading in degrees */ heading: number; /** The accuracy of the location (usually the number of satellites visible, but varies by device) */ accuracy: number; /** The reverse geocoded address of this location. May also be the name of a zone that is currently been entered. */ address?: string; /** An optional destination address */ destination?: DestinationAddress; } /** */ export interface AssetSharedLocationTokenResponse { /** A name for the asset to be returned instead of the asset's default name. */ name?: string; /** an ISO date/time at which to stop sharing the asset's location */ expiry: string; /** An optional destination address */ destination?: DestinationAddress; /** The client that owns the asset */ owner: IdName; /** The asset to be shared */ asset: IdName; /** The user that created this share */ user: IdName; /** The date on which the token was created */ date: IdName; /** A unique token that can be used to retreive the shared asset's location */ token: string; } /** A list of asset sharing token items */ export interface AssetSharedLocationTokenListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** The list of asset items in this response */ items: Array; } /** */ export interface AssetSharedLocationTokenRequest { /** A name for the asset to be returned instead of the asset's default name. */ name?: string; /** an ISO date/time at which to stop sharing the asset's location */ expiry: string; /** An optional destination address */ destination?: DestinationAddress; } /** */ export interface DeviceDigitalConfig { /** The text input that is matched from the device telemetry, i.e. 'digital_01' */ input: string; /** Invert the state of the input value */ invert: boolean; } /** */ export interface DeviceDigitalConfigDictionary { [key: string]: DeviceDigitalConfig; } /** */ export interface DeviceOutputConfig { /** The text input that is matched from the device telemetry, i.e. 'digital_01' */ input: string; /** Invert the state of the input value */ invert: boolean; /** Send a pulse signal to the device output */ pulsed: boolean; } /** */ export interface DeviceOutputConfigDictionary { [key: string]: DeviceOutputConfig; } /** */ export interface DeviceAnalogConfig { /** The text input that is matched from the device telemetry, i.e. 'digital_01' */ input: string; /** The minumum voltage range of the analog input */ minVolts: number; /** The maximum voltage range of the analog input */ maxVolts: number; /** The minumum real world value (litres etc.) that 'minVolts' maps to. */ minValue: number; /** The maximum real world value (litres etc.) that 'maxVolts' maps to. */ maxValue: number; } /** */ export interface DeviceAnalogConfigDictionary { [key: string]: DeviceAnalogConfig; } /** */ export interface DeviceTemperatureConfig { /** The text input that is matched from the device telemetry, i.e. 'digital_01' */ input: string; } /** */ export interface DeviceTemperatureConfigDictionary { [key: string]: DeviceTemperatureConfig; } /** */ export interface DeviceCANConfig { /** The text input that is matched from the device telemetry, i.e. 'digital_01' */ input: string; /** The minumum value that is expected */ minValue: number; /** The maximum value that is expected */ maxValue: number; /** Multiply the received value by this number to get a real world number */ multiplier: number; } /** */ export interface DeviceCANConfigDictionary { [key: string]: DeviceCANConfig; } /** */ export interface DeviceCounterConfig { /** The text input that is matched from the device telemetry, i.e. 'digital_01' */ input: string; /** Multiply the received value by this number to get a real world number */ multiplier: number; } /** */ export interface DeviceCounterConfigDictionary { [key: string]: DeviceCounterConfig; } /** */ export interface DeviceCameraConfig { /** The text input that is matched from the device telemetry, i.e. 'digital_01' */ input: string; /** Should the user be able to live stream from this camera? */ enableLiveStream?: boolean; } /** */ export interface DeviceCameraConfigDictionary { [key: string]: DeviceCameraConfig; } /** */ export interface DeviceValueConfig { /** The text input that is matched from the device telemetry, i.e. 'digital_01' */ input: string; } /** */ export interface DeviceValueConfigDictionary { [key: string]: DeviceValueConfig; } /** */ export interface DeviceIOParameters { /** Digital input configuration */ digital_input?: DeviceDigitalConfigDictionary; /** Digital output configuration */ digital_output?: DeviceOutputConfigDictionary; /** Analog input configuration */ analog_input?: DeviceAnalogConfigDictionary; /** Temperature input configuration */ temperature_input?: DeviceTemperatureConfigDictionary; /** CAN bus configuration */ can_input?: DeviceCANConfigDictionary; /** Counter input configuration */ counter_input?: DeviceCounterConfigDictionary; /** Camera configuration */ camera_input?: DeviceCameraConfigDictionary; /** Value configuration */ value_input?: DeviceValueConfigDictionary; } /** The DeviceBitmapConfiguration is used to pick out specific bits from a telemetry value and create a new telemetry input with the extracted value. target_input = (source_input >> bitshift) & bitmask For example, to get the 3rd bit (indexed as 2) as a digital input (0 or 1), you'd specify: target_input = (source_input >> 2) & 0x01 */ export interface DeviceBitmapConfiguration { /** The source input from which to retreive the source value */ source_input: string; /** The number of bits to be shifted right in the source value */ bitshift: number; /** The bitmask to be applied to after shifting */ bitmask: number; /** The new input that will store the resulting value */ target_input: string; /** The IO type of the new value */ target_type: 'digital_input' | 'digital_output' | 'can_input' | 'value_input'; } /** */ export interface DeviceParameters { /** The input that is used to determine when the device becomes active (ignition on for vehicles). Determines when trips are started and ended. */ active_input?: string; /** The input that is used to start counting engine hours. This is usually the same as 'active_input'. */ hours_input?: string; /** The input that is used to determine when the device is idling. Defaults to "speed" where idling is calulated based on device speed. */ idling_input?: string; /** Set to true to invert the input value that is being used for the idling input */ idling_input_invert?: boolean; /** Mappings between IoTypes and the device's telemetry inputs and outputs */ io?: DeviceIOParameters; /** If this array is populated, only the IOs listed in this array will be persisted in the system, and everything else will be discarded */ io_whitelist?: Array; /** A list of inputs derived using a bitmap operation */ bitmaps?: Array; } /** Device accessories add extra optional functionality to a device. */ export interface DeviceAccessory { /** The name of the device accessory */ name: string; /** Device accessory specific settings */ settings: Dictionary; } /** Device accessories add extra optional functionality to a device. */ export interface DeviceAccessories { [key: string]: DeviceAccessory; } /** */ export interface DeviceConfigurationResponse { /** The device type that this profile applies to */ deviceType?: IdName; /** A number of device specific parameters */ parameters?: DeviceParameters; /** Values for the DeviceType's setting definition form */ settings?: Dictionary; /** Accessory settings for this device */ accessories?: DeviceAccessories; /** A number of features that have been enabled on this device */ features?: Dictionary; } /** Sets up the conditions for manual user initiated privacy mode. */ export interface AssetPrivacyPayload { /** The date and time (YYYY/MM/DD HH:mm:ss) when the privacy mode should end. */ end: string; /** The number of subsequent trips that should be marked as private. Set to 0 to mark all trips as private until the end date or this privacy mode is removed. */ trips: number; } /** */ export interface AssetPrivacyRequest { /** Set the conditions to put the asset into privacy mode. Set the conditions to "null" to clear privacy mode. */ conditions?: AssetPrivacyPayload; } /** */ export interface AssetLinkResponse { /** The source asset for the link */ source: AssetResponse; /** The destination asset for the link */ destination: AssetResponse; } /** */ export interface AssetLinkRequest { /** The destination UUID of an existing asset. This asset must not be already linked, nor have any devices linked to it. */ assetId?: string; /** Details of a new asset to create and link. Cannot be used with 'destinationAddressId'. */ asset?: AssetCreateRequest; /** The ISO date/time when the linkage should start */ start: string; /** The ISO date/time when the linkage should end */ end: string; } /** */ export interface AssetMoveRequest { /** The UUID of the client into which this asset should be moved. */ destinationClientId: string; /** Whether the linked device should be moved as well */ includeDevice: boolean; /** Whether the linked SimCard should be moved as well */ includeSimCard: boolean; } /** */ export interface AssetStateItem { /** The unique ID of this state item */ id: string; /** A descriptive name for this state item */ name: string; /** A short name for the state */ state: string; /** A color for the state, defined as a CSS color code (i.e. #3359e6) */ color: string; /** An optional radius (in meters) that describes the width of the path that the asset creates. Useful for coverage applications. */ radius?: number; /** The filter that this state matches on */ filter: EventFilter; } /** */ export interface AssetStateProfileListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name: string; /** The current state of this entity */ state: 'active' | 'deleted'; /** The state items for this profile */ items: Array; /** The date the entity was last modified */ modifiedDate: string; } /** A list of asset state profile items */ export interface AssetStateProfileListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface AssetStateProfileResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The state items for this profile */ items?: Array; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface AssetStateProfileUpdateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The state items for this profile */ items?: Array; } /** */ export interface AssetStateProfileCreateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The state items for this profile */ items?: Array; /** The client that owns this Asset State Profile */ ownerId: string; } /** */ export interface AssetTagListItem { /** The unique UUID for this Asset Tag */ id: string; /** The client that owns this Asset Tag */ owner: IdName; /** The serial number of the Asset Tag that is used to uniquely identify it. */ name: string; /** The serial number of the Asset Tag that is used to uniquely identify it. */ serialNumber: string; /** The type of asset tag */ assetTagType: IdName; /** The asset tag operation mode. Options are 'movable' for movable assets, 'fixed' for fixed assets and 'stock' for temporary stock control uses. */ mode: 'movable' | 'fixed' | 'stock'; /** The current state of the object */ state: 'active' | 'deleted'; /** The asset to which this tag is currently assigned */ asset: IdName; /** A number of custom field values for this assettag. */ fields: CustomFieldValues; } /** A list of Asset Tag items */ export interface AssetTagListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** The list of Asset Tag items in this response */ items: Array; } /** */ export interface AssetTagResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A friendly name to identify this tag */ name?: string; /** The serial number of the Asset Tag that is used to uniquely identify it. */ serialNumber?: string; /** The type of asset tag */ assetTagType?: IdName; /** The asset tag operation mode. Options are 'movable' for movable assets, 'fixed' for fixed assets and 'stock' for temporary stock control uses. */ mode?: 'movable' | 'fixed' | 'stock'; /** The current state of the object */ state?: 'active' | 'deleted'; /** The asset to which this tag is currently assigned */ asset?: IdName; /** A number of custom field values for this assettag. */ fields?: CustomFieldValues; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface AssetTagUpdateRequest { /** A friendly name to identify this tag */ name?: string; /** The serial number of the Asset Tag that is used to uniquely identify it. */ serialNumber?: string; /** The type of asset tag */ assetTagType?: IdName; /** The asset tag operation mode. Options are 'movable' for movable assets, 'fixed' for fixed assets and 'stock' for temporary stock control uses. */ mode?: 'movable' | 'fixed' | 'stock'; /** The current state of the object */ state?: 'active' | 'deleted'; /** The asset to which this tag is currently assigned */ asset?: IdName; /** A number of custom field values for this assettag. */ fields?: CustomFieldValues; } /** */ export interface AssetTagCreateRequest { /** A friendly name to identify this tag */ name?: string; /** The serial number of the Asset Tag that is used to uniquely identify it. */ serialNumber: string; /** The type of asset tag */ assetTagType: IdName; /** The asset tag operation mode. Options are 'movable' for movable assets, 'fixed' for fixed assets and 'stock' for temporary stock control uses. */ mode: 'movable' | 'fixed' | 'stock'; /** The current state of the object */ state?: 'active' | 'deleted'; /** The asset to which this tag is currently assigned */ asset?: IdName; /** A number of custom field values for this assettag. */ fields?: CustomFieldValues; /** */ ownerId: string; } /** */ export interface AssetTagTypeResponse { /** The unique ID of this asset tag type */ id: string; /** The client that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name: string; /** The parent of this entity */ parent: IdName; /** A unique tag for this entity */ tag: string; } /** A list of asset tag type items */ export interface AssetTagTypeListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface AssetTypeResponse { /** The unique ID of this asset type */ id: string; /** The client that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name: string; /** The parent of this entity */ parent: IdName; /** A unique tag for this entity */ tag: string; } /** A list of asset type items */ export interface AssetTypeListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface CostCentreResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The parent of this entity */ parent?: IdName; /** A list of contacts applicable to this cost centre */ contacts?: Array; /** entity specific metadata */ entity: EntityInfo; } /** A list of cost centre items */ export interface CostCentreListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface CostCentreUpdateRequest { /** A unique name for this entity */ name?: string; /** The parent of this entity */ parent?: IdName; /** A list of contacts applicable to this cost centre */ contacts?: Array; } /** */ export interface CostCentreCreateRequest { /** A unique name for this entity */ name: string; /** The parent of this entity */ parent?: IdName; /** A list of contacts applicable to this cost centre */ contacts?: Array; /** The client that owns this entity */ ownerId: string; } /** */ export interface DashboardListItem { /** The unique UUID for this Dashboard */ id: string; /** The client that owns this Dashboard */ owner: IdNameType; /** The template dashboard from which this dashboard was constructed. This dashboard will track all of the widgets on the parent dashboard. */ parent?: IdName; /** The source dashboard if this dashboard was cloned from another. */ source?: IdName; /** The cost centre the dashboard belongs to */ costCentre?: IdName; /** The company level the dashboard is intended for */ level?: 'system' | 'distributor' | 'vendor' | 'client'; /** The user to whom this dashboard belongs */ user: IdName; /** The name of the dashboard. */ name: string; /** A number of custom field values for this dashboard. */ options?: Dictionary; /** Whethere or not other users can see the dashboard */ public: boolean; /** A short description of the dashboard. */ description: string; /** The date the entity was last modified */ modifiedDate: string; } /** A list of Dashboard items */ export interface DashboardListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** The list of Dashboard items in this response */ items: Array; } /** */ export interface AnalyticsLevels { /** */ name: string; /** */ headings: Array; } /** */ export interface AnalyticsDimension { /** */ dim: 'time' | 'asset' | 'costCentre' | 'zoneCostCentre' | 'assetGroup' | 'zoneGroup' | 'device' | 'ioType' | 'alert' | 'event' | 'assetState' | 'assetCategory0' | 'assetCategory1' | 'assetCategory2' | 'assetCategory3' | 'assetCategory4' | 'overspeed' | 'shift' | 'company' | 'geography' | 'deviceType'; /** */ level: number; /** */ filter: Array; /** */ levels: AnalyticsLevels; } /** */ export interface MeasureDescription { /** The key of the measure */ key: string; /** The name of the measure */ value: string; /** The formatting type of the measure. Durations are hh:mm:ss. Numbers can be postive or negative values to 2 decimal places, integers can be postive or negative; and percent is an integer between 0 and 100 */ format?: 'duration' | 'number' | 'integer' | 'percent'; /** Whether or not the measure is generic. This is useful to indicate that the measure is specific to a client and should not be used in dashboard templates */ generic?: boolean; /** The date YYYY/MM/DD HH:mm:ss (UTC) from which the measure is valid */ validFrom?: string; /** The date YYYY/MM/DD HH:mm:ss (UTC) to which the measure is valid */ validTo?: string; } /** */ export interface SelectedMeasureValues { /** The key of the measure */ key: string; /** The name of the measure */ value: string; /** Whether or not the measure is generic. This is useful to indicate that the measure is specific to a client and should not be used in dashboard templates */ generic?: boolean; /** The date YYYY/MM/DD HH:mm:ss (UTC) from which the measure is valid */ validFrom?: string; /** The date YYYY/MM/DD HH:mm:ss (UTC) to which the measure is valid */ validTo?: string; } /** */ export interface AnalyticsTable { /** */ measures: Array; /** */ layout: string; } /** */ export interface AnalyticsSortOptions { /** */ type: 'alphabetic' | 'numeric'; /** */ direction: 'asc' | 'desc'; /** */ limit?: number; /** */ measureKey?: string; } /** */ export interface ChartAxisMaxMin { /** */ max?: string; /** */ min?: string; } /** */ export interface ChartYAxis { /** */ left?: ChartAxisMaxMin; /** */ right?: ChartAxisMaxMin; } /** */ export interface ChartXAxisLabels { /** */ layout: 'horizontal' | 'auto'; } /** */ export interface ChartXAxis { /** */ labels: ChartXAxisLabels; } /** */ export interface ChartLabel { /** */ visible: boolean; /** */ placement: string; /** */ position: string; /** */ overlay: boolean; } /** */ export interface TargetLine { /** */ id: string; /** */ name: string; /** */ value: number; /** */ color?: string; /** */ borderWidth?: number; /** */ borderDash?: Array; /** */ showLabel?: boolean; /** */ type?: 'dashed' | 'solid'; } /** */ export interface ChartSeriesItem { /** */ visible: boolean; /** */ average?: boolean; /** */ type: string; /** */ orientation?: 'horizontal' | 'vertical'; /** */ fill?: boolean; /** */ color?: string; /** */ yAxis?: 'left' | 'right'; /** */ targetLines?: Array; } /** */ export interface ChartSeries { [key: string]: ChartSeriesItem; } /** */ export interface ChartOptions { /** */ yAxis?: ChartYAxis; /** */ xAxis?: ChartXAxis; /** */ stacked: boolean; /** */ label: ChartLabel; /** */ series: ChartSeries; /** */ dataLabels?: boolean; } /** */ export interface PieChartSeriesItem { /** */ color?: Array; } /** */ export interface PieChartSeries { [key: string]: PieChartSeriesItem; } /** */ export interface PieChartOptions { /** */ label: ChartLabel; /** */ series: PieChartSeries; /** */ dataLabels?: boolean; /** */ data: 'average' | 'total'; /** */ fill: boolean; } /** */ export interface StatChartOptions { /** */ data: 'average' | 'total' | 'first' | 'last'; /** */ key?: string; /** */ color?: string; /** */ trend?: 'none' | 'percentage' | 'actual'; /** */ sparkline?: boolean; } /** */ export interface CalculatedMeasureFormat { /** */ key: string; /** */ value: string; } /** */ export interface CalculatedMeasure { /** */ id: string; /** */ name: string; /** */ expression: string; /** */ average: boolean; /** */ total: boolean; /** */ format: 'distance' | 'speed' | 'volume' | 'number' | 'integer' | 'duration' | 'consumption' | 'distanceRate'; } /** */ export interface CalculatedMeasureSettings { /** */ formatOptions: Array; /** */ measures: Array; } /** */ export interface AnalyticsOutputRangeFilter { /** */ level: string; /** */ start: string; /** */ end: string; } /** */ export interface AnalyticsOutputFilter { /** */ mode: 'include' | 'exclude' | 'range'; /** */ items?: Array; /** */ range?: AnalyticsOutputRangeFilter; } /** */ export interface AnalyticsOutputFilters { /** */ group: AnalyticsOutputFilter; /** */ row: AnalyticsOutputFilter; } /** */ export interface AnalyticsUpdateFrequencyOffset { /** */ frequency: number; /** */ offset: number; } /** */ export interface AnalyticsUpdateSettings { /** */ daily?: { /** */ time: string; }; /** */ hourly?: AnalyticsUpdateFrequencyOffset; /** */ shifts?: AnalyticsUpdateFrequencyOffset; } /** */ export interface AnalyticsOutputSettings { /** */ name: string; /** */ description: string; /** */ dateRange: string; /** */ row: AnalyticsDimension; /** */ group: AnalyticsDimension; /** */ flipped: boolean; /** */ measures: Array; /** */ table: AnalyticsTable; /** */ sort: AnalyticsSortOptions; /** */ graph?: ChartOptions; /** */ pie?: PieChartOptions; /** */ stat?: StatChartOptions; /** */ calculatedMeasures?: CalculatedMeasureSettings; /** */ filters?: AnalyticsOutputFilters; /** */ timeOptions?: Array<'days' | 'hours'>; /** */ shiftsEnabled?: boolean; /** */ doNotTemplate?: boolean; /** */ updates?: AnalyticsUpdateSettings; } /** */ export interface WidgetOptions { /** */ analytics?: AnalyticsOutputSettings; /** */ v2?: Dictionary; } /** */ export interface DashboardWidgetPlacement { /** The placement of the widget on the X access */ col: number; /** The placement of the widget on the Y access */ row: number; /** The number of columns that the widget spans on the X access */ colSpan: number; /** The number of rows that the widget spans on the Y access */ rowSpan: number; } /** */ export interface AnalyticsDataSourceOptions { /** Definition ID of the analytics report which the widget is compatible with */ definitionId: string; /** The parameter definition string used to generate widget settings */ parameterDefinition?: string; /** Additional parameters used on the instantiated widget */ parameters?: Dictionary; /** filters for the widget's report */ filters?: Dictionary; /** The time rollup level of the report */ rollup?: 'hour' | 'day'; } /** */ export interface DashboardWidgetDataSourceOptions { /** */ analytics?: AnalyticsDataSourceOptions; } /** */ export interface ShiftOptionType { } /** */ export interface DailyShift { /** Boolean indicating whether or not this is the first shift of the day */ firstShift?: boolean; /** The name of the shift */ name: string; /** The start time of the shift (hh:mm). The shift includes this time */ start: string; /** The end time of the shift (hh:mm). The shift exludes this time */ end: string; } /** */ export interface DailyShiftConfig { [key: string]: DailyShift; } /** */ export interface ShiftConfig { /** The type of shift */ type: ShiftOptionType; /** Details for a daily shift */ dailyShift: DailyShiftConfig; } /** */ export interface CategoryMap { [key: string]: string; } /** */ export interface WidgetExtraData { /** */ shifts?: ShiftConfig; /** */ categoryMap?: CategoryMap; } /** */ export interface DashboardWidgetDataSource { /** */ id?: string; /** */ type: 'analytics-report' | 'analytics-mock'; /** */ options: DashboardWidgetDataSourceOptions; /** */ data?: WidgetExtraData; } /** */ export interface DashboardWidget { /** Inherited widgets are tied to a parent dashboard and cannot have their `widgetType` or `options` modified, as they are tracked with the parent dashboard widget. */ inherited?: boolean; /** If a widget was cloned from another widget, the ID of the source widget will be stored here. */ sourceId?: string; /** The name of the widget. */ name?: string; /** A short description of the widget. */ description?: string; /** The type of widget */ widgetType?: 'chart' | 'grid' | 'text' | 'stat' | 'pie'; /** A number of custom field values for this widget. */ options?: WidgetOptions; /** Should the widget be displayed on the dashboard or not. */ hidden?: boolean; /** Information about the placement of the widget */ placement?: DashboardWidgetPlacement; /** Data source information */ dataSource?: DashboardWidgetDataSource; } /** */ export interface DashboardWidgetDictionary { [key: string]: DashboardWidget; } /** */ export interface DashboardResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The user to whom this dashboard belongs */ user?: IdName; /** The name of the dashboard. */ name?: string; /** A short description of the dashboard. */ description?: string; /** Whether or not other users can see the dashboard */ public?: boolean; /** A number of custom field values for this dashboard. */ options?: Dictionary; /** A dictionary of the widgets in this dashboard */ widgets?: DashboardWidgetDictionary; /** The template dashboard from which this dashboard was constructed. This dashboard will track all of the widgets on the parent dashboard. */ parent?: IdName; /** The source dashboard if this dashboard was cloned from another. */ source?: IdName; /** The company level of the dashboard target audience */ level?: 'system' | 'distributor' | 'vendor' | 'client'; /** The cost centre the dashboard belongs to */ costCentre?: IdName; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface DashboardUpdateRequest { /** The user to whom this dashboard belongs */ user?: IdName; /** The name of the dashboard. */ name?: string; /** A short description of the dashboard. */ description?: string; /** Whether or not other users can see the dashboard */ public?: boolean; /** A number of custom field values for this dashboard. */ options?: Dictionary; /** A dictionary of the widgets in this dashboard */ widgets?: DashboardWidgetDictionary; /** The template dashboard from which this dashboard was constructed. This dashboard will track all of the widgets on the parent dashboard. */ parent?: IdName; /** The source dashboard if this dashboard was cloned from another. */ source?: IdName; /** The company level of the dashboard target audience */ level?: 'system' | 'distributor' | 'vendor' | 'client'; } /** */ export interface DashboardCreateRequest { /** The user to whom this dashboard belongs */ user?: IdName; /** The name of the dashboard. */ name?: string; /** A short description of the dashboard. */ description: string; /** Whether or not other users can see the dashboard */ public?: boolean; /** A number of custom field values for this dashboard. */ options?: Dictionary; /** A dictionary of the widgets in this dashboard */ widgets?: DashboardWidgetDictionary; /** The template dashboard from which this dashboard was constructed. This dashboard will track all of the widgets on the parent dashboard. */ parent?: IdName; /** The source dashboard if this dashboard was cloned from another. */ source?: IdName; /** The company level of the dashboard target audience */ level: 'system' | 'distributor' | 'vendor' | 'client'; /** */ ownerId: string; /** The cost centre the dashboard belongs to */ costCentre?: IdName; } /** */ export interface RebuildDashboardWidgetResponse { /** */ status: 'ok' | 'failed'; } /** */ export interface DashboardTemplateListItem { /** The unique UUID for this Dashboard */ id: string; /** The client that owns this Dashboard */ owner: IdNameType; /** The state of the entity */ state: 'active' | 'deleted'; /** The user to whom this dashboard belongs */ user: IdName; /** The name of the dashboard. */ name: string; /** A short description of the dashboard. */ description: string; /** A number of custom field values for this dashboard. */ options?: Dictionary; /** Determines if the dashboard can be added by downstream users */ public?: boolean; /** The date the entity was last modified */ modifiedDate: string; } /** A list of Dashboard items */ export interface DashboardTemplateListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** The list of Dashboard items in this response */ items: Array; } /** */ export interface DashboardTemplateResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The user to whom this dashboard belongs */ user?: IdName; /** The name of the dashboard. */ name?: string; /** A short description of the dashboard. */ description?: string; /** Determines if the template can be added by downstream users */ public?: boolean; /** A number of custom field values for this dashboard. */ options?: Dictionary; /** A dictionary of the widgets in this dashboard */ widgets?: DashboardWidgetDictionary; /** The state of dashboard template */ state?: 'active' | 'deleted'; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface DashboardTemplateUpdateRequest { /** The user to whom this dashboard belongs */ user?: IdName; /** The name of the dashboard. */ name?: string; /** A short description of the dashboard. */ description?: string; /** Determines if the template can be added by downstream users */ public?: boolean; /** A number of custom field values for this dashboard. */ options?: Dictionary; /** A dictionary of the widgets in this dashboard */ widgets?: DashboardWidgetDictionary; /** The state of dashboard template */ state?: 'active' | 'deleted'; } /** */ export interface DashboardTemplateCreateRequest { /** The id of the dashboard to turn into a template */ dashboardId: string; /** The ownerId of the template */ ownerId: string; /** The id of the user who created the template */ user: IdName; /** The name of the dashboard template. */ name: string; /** A short description of the dashboard. */ description: string; /** Determines if the dashboard can be added by downstream users */ public: boolean; } /** */ export interface DeviceListItem { /** The unique UUID for this device */ id: string; /** The serial or IMEI of the device that is used to uniquely identify it. The value used will depend on the device type. */ name: string; /** The client that owns this device */ owner: IdName; /** The type of device */ deviceType?: IdName; /** The device provider, if the device requires one to function. */ provider?: IdName; /** The asset to which this device has been assigned. */ asset?: IdName; /** The sim card which has been assigned to this device. */ simcard?: IdName; /** The config profile which has been assigned to this device. */ configProfile?: IdName; /** A number of custom field values for this device. */ fields: CustomFieldValues; /** The current state of the device object */ state: 'inactive' | 'active' | 'suspended' | 'deleted'; } /** A list of device items */ export interface DeviceListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** The list of deviceitems in this response */ items: Array; } /** */ export interface DeviceResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The device type that this profile applies to */ deviceType?: IdName; /** A number of device specific parameters */ parameters?: DeviceParameters; /** Values for the DeviceType's setting definition form */ settings?: Dictionary; /** Accessory settings for this device */ accessories?: DeviceAccessories; /** The serial or IMEI of the device that is used to uniquely identify it. The value used will depend on the device type. */ name?: string; /** The current state of the device object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** The device provider, if the device requires one to function. */ provider?: IdName; /** The asset to which this device has been assigned. */ asset?: IdName; /** The sim card which has been assigned to this device. */ simcard?: IdName; /** An optional configuration profile */ configProfile?: IdName; /** A number of custom field values for this device. */ fields?: CustomFieldValues; /** A number of features that have been enabled on this device (only available if configProfile is null) */ features?: Dictionary; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface DeviceUpdateRequest { /** The device type that this profile applies to */ deviceType?: IdName; /** A number of device specific parameters */ parameters?: DeviceParameters; /** Values for the DeviceType's setting definition form */ settings?: Dictionary; /** Accessory settings for this device */ accessories?: DeviceAccessories; /** The serial or IMEI of the device that is used to uniquely identify it. The value used will depend on the device type. */ name?: string; /** The current state of the device object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** The device provider, if the device requires one to function. */ provider?: IdName; /** The asset to which this device has been assigned. */ asset?: IdName; /** The sim card which has been assigned to this device. */ simcard?: IdName; /** An optional configuration profile */ configProfile?: IdName; /** A number of custom field values for this device. */ fields?: CustomFieldValues; } /** */ export interface DeviceCreateRequest { /** The type of device */ deviceType: IdName; /** A number of device specific parameters */ parameters?: DeviceParameters; /** Values for the DeviceType's setting definition form */ settings?: Dictionary; /** Accessory settings for this device */ accessories?: DeviceAccessories; /** The serial or IMEI of the device that is used to uniquely identify it. The value used will depend on the device type. */ name?: string; /** The current state of the device object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** The device provider, if the device requires one to function. */ provider?: IdName; /** The asset to which this device has been assigned. */ asset?: IdName; /** The sim card which has been assigned to this device. */ simcard?: IdName; /** An optional configuration profile */ configProfile?: IdName; /** A number of custom field values for this device. */ fields?: CustomFieldValues; /** */ ownerId: string; } /** */ export interface DeviceConfigProfileListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The device type that this profile applies to */ deviceType?: IdName; /** The date the entity was last modified */ modifiedDate: string; } /** A list of device config profile items */ export interface DeviceConfigProfileListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface DeviceConfigProfileResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The device type that this profile applies to */ deviceType?: IdName; /** A number of device specific parameters */ parameters?: DeviceParameters; /** Values for the DeviceType's setting definition form */ settings?: Dictionary; /** Accessory settings for this device */ accessories?: DeviceAccessories; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** entity specific metadata */ entity: EntityInfo; /** A number of features that have been enabled on this device */ features?: Dictionary; } /** */ export interface DeviceConfigProfileUpdateRequest { /** The device type that this profile applies to */ deviceType?: IdName; /** A number of device specific parameters */ parameters?: DeviceParameters; /** Values for the DeviceType's setting definition form */ settings?: Dictionary; /** Accessory settings for this device */ accessories?: DeviceAccessories; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; } /** */ export interface DeviceConfigProfileCreateRequest { /** The device type that this profile applies to */ deviceType?: IdName; /** A number of device specific parameters */ parameters?: DeviceParameters; /** Values for the DeviceType's setting definition form */ settings?: Dictionary; /** Accessory settings for this device */ accessories?: DeviceAccessories; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The client that owns this DeviceConfig Profile */ ownerId: string; } /** */ export interface DeviceTypeListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** A short name for this device type (usually just a model number) */ shortName?: string; /** The parent of this entity */ parent?: IdName; /** A unique tag for this entity */ tag?: string; /** The current state of the device type object */ state?: 'active' | 'deleted'; /** An optional link to a device provider that supplies the data for this device type. If this is set, the user will be required to select the device provider on device configuration. */ deviceProviderType?: IdName; /** The date the entity was last modified */ modifiedDate: string; } /** A list of device type items */ export interface DeviceTypeListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface DeviceTypeIOProperties { /** If true, the IO won't be persisted unless it is explicitly included in the device's IO whitelist */ optional?: boolean; } /** */ export interface DeviceTypeIOPropertiesDictionary { [key: string]: DeviceTypeIOProperties; } /** */ export interface DeviceTypeIOCapabilities { /** */ digital_input?: DeviceTypeIOPropertiesDictionary; /** */ digital_output?: DeviceTypeIOPropertiesDictionary; /** */ analog_input?: DeviceTypeIOPropertiesDictionary; /** */ temperature_input?: DeviceTypeIOPropertiesDictionary; /** */ can_input?: DeviceTypeIOPropertiesDictionary; /** */ counter_input?: DeviceTypeIOPropertiesDictionary; /** */ camera_input?: DeviceTypeIOPropertiesDictionary; /** */ value_input?: DeviceTypeIOPropertiesDictionary; /** */ cached_fields?: Array; } /** */ export interface DeviceTypeFeature { /** */ settings?: Dictionary; /** */ webhook?: Dictionary; } /** */ export interface DeviceTypeFeatures { [key: string]: DeviceTypeFeature; } /** */ export interface DeviceTypeAccessory { /** A descriptive name for the accessory */ name?: string; /** A form definition for custom settings in this device type accessory */ settingsDefinition?: string; /** Defines the types of IOs that are available on this accessory */ ioCapabilities?: DeviceTypeIOCapabilities; /** A list of features for this accessory */ features?: DeviceTypeFeatures; } /** */ export interface DeviceTypeAccessories { [key: string]: DeviceTypeAccessory; } /** */ export interface DeviceTypeResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** A short name for this device type (usually just a model number) */ shortName?: string; /** The parent of this entity */ parent?: IdName; /** A unique tag for this entity */ tag?: string; /** The current state of the device type object */ state?: 'active' | 'deleted'; /** An optional link to a device provider that supplies the data for this device type. If this is set, the user will be required to select the device provider on device configuration. */ deviceProviderType?: IdName; /** Defines the types of IOs that are available on this device type */ ioCapabilities?: DeviceTypeIOCapabilities; /** A form definition for custom settings in this device type */ settingsDefinition?: string; /** A list of available accessories for this device type */ accessories?: DeviceTypeAccessories; /** A map of features for this device type */ features?: DeviceTypeFeatures; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface DeviceTypeUpdateRequest { /** A unique name for this entity */ name?: string; /** A short name for this device type (usually just a model number) */ shortName?: string; /** The parent of this entity */ parent?: IdName; /** A unique tag for this entity */ tag?: string; /** The current state of the device type object */ state?: 'active' | 'deleted'; /** An optional link to a device provider that supplies the data for this device type. If this is set, the user will be required to select the device provider on device configuration. */ deviceProviderType?: IdName; /** Defines the types of IOs that are available on this device type */ ioCapabilities?: DeviceTypeIOCapabilities; /** A form definition for custom settings in this device type */ settingsDefinition?: string; /** A list of available accessories for this device type */ accessories?: DeviceTypeAccessories; /** A map of features for this device type */ features?: DeviceTypeFeatures; } /** */ export interface DeviceTypeCreateRequest { /** A unique name for this entity */ name?: string; /** A short name for this device type (usually just a model number) */ shortName?: string; /** The parent of this entity */ parent?: IdName; /** A unique tag for this entity */ tag?: string; /** The current state of the device type object */ state?: 'active' | 'deleted'; /** An optional link to a device provider that supplies the data for this device type. If this is set, the user will be required to select the device provider on device configuration. */ deviceProviderType?: IdName; /** Defines the types of IOs that are available on this device type */ ioCapabilities?: DeviceTypeIOCapabilities; /** A form definition for custom settings in this device type */ settingsDefinition?: string; /** A list of available accessories for this device type */ accessories?: DeviceTypeAccessories; /** A map of features for this device type */ features?: DeviceTypeFeatures; /** */ ownerId: string; } /** */ export interface DeviceProviderListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The name of the device provider. */ name?: string; /** The current state of the device provider object */ state?: 'active' | 'suspended' | 'deleted'; /** The type of device provider */ deviceProviderType?: IdName; /** The date the entity was last modified */ modifiedDate: string; } /** A list of device provider items */ export interface DeviceProviderListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** The list of device provider items in this response */ items: Array; } /** */ export interface DeviceProviderResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The name of the device provider. */ name?: string; /** The current state of the device provider object */ state?: 'active' | 'suspended' | 'deleted'; /** The type of device provider */ deviceProviderType?: IdName; /** A number of device provider specific parameters */ parameters?: Dictionary; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface DeviceProviderUpdateRequest { /** The name of the device provider. */ name?: string; /** The current state of the device provider object */ state?: 'active' | 'suspended' | 'deleted'; /** The type of device provider */ deviceProviderType?: IdName; /** A number of device provider specific parameters */ parameters?: Dictionary; } /** */ export interface DeviceProviderCreateRequest { /** The name of the device provider. */ name?: string; /** The current state of the device provider object */ state?: 'active' | 'suspended' | 'deleted'; /** The type of device provider */ deviceProviderType?: IdName; /** */ ownerId: string; /** A number of device provider specific parameters */ parameters?: Dictionary; } /** */ export interface DeviceProviderTypeListItem { /** The unique ID of this device provider type */ id: string; /** The company that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name: string; /** A unique tag for this entity */ tag: string; /** The company types that this provider type can be instantiated in. Valid values are 'client', 'vendor' and 'distributor' */ companyTypes: Array; /** The current state of the object */ state?: 'active' | 'suspended' | 'deleted'; } /** A list of device provider type items */ export interface DeviceProviderTypeListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface DeviceProviderTypeResponse { /** The unique ID of this device provider type */ id: string; /** The company that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name: string; /** A unique tag for this entity */ tag: string; /** The company types that this provider type can be instantiated in. Valid values are 'client', 'vendor' and 'distributor' */ companyTypes: Array; /** The current state of the object */ state?: 'active' | 'suspended' | 'deleted'; /** A JSON string that describes the parameter input fields for this device provider type */ parameters: string; } /** */ export interface EmailProviderListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The name of the email provider */ name?: string; /** The type of the email provider */ type?: IdName; /** The state of the email provider */ state?: 'active' | 'suspended' | 'deleted'; /** The date the entity was last modified */ modifiedDate: string; } /** A list of email provider items */ export interface EmailProviderListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface EmailProviderResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The name of the email provider */ name?: string; /** The type of the email provider */ type?: IdName; /** The state of the email provider */ state?: 'active' | 'suspended' | 'deleted'; /** A dictionary of entity specific parameters */ parameters?: Dictionary; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface EmailProviderUpdateRequest { /** The name of the email provider */ name?: string; /** The type of the email provider */ type?: IdName; /** The state of the email provider */ state?: 'active' | 'suspended' | 'deleted'; /** A dictionary of entity specific parameters */ parameters?: Dictionary; } /** */ export interface EmailProviderCreateRequest { /** The name of the email provider */ name?: string; /** The type of the email provider */ type?: IdName; /** The state of the email provider */ state?: 'active' | 'suspended' | 'deleted'; /** A dictionary of entity specific parameters */ parameters?: Dictionary; /** The client that owns this email provider */ ownerId: string; } /** */ export interface ExportTaskListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The client to export data from. In the case of a Firehose export task, this will be the Vendor and not a client. */ client?: IdName; /** The name of the export task */ name?: string; /** The state of the export task */ state?: 'suspended' | 'active' | 'deleted'; /** The delivery method of the export tasks */ deliveryMethod?: 'http' | 'stream' | 'firehose'; /** The filters used to get the assets to be included in the export task */ assets?: Array; /** The document types to include in the export task */ documentTypes?: Array; /** The document layout version */ documentVersion?: 'v1' | 'v2'; /** A set of delivery method specific options */ settings?: Dictionary; /** Export task username */ username?: string; /** The date the entity was last modified */ modifiedDate: string; } /** A list of I/O type items */ export interface ExportTaskListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface ExportTaskResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The client to export data from. In the case of a Firehose export task, this will be the Vendor and not a client. */ client?: IdName; /** The name of the export task */ name?: string; /** The state of the export task */ state?: 'suspended' | 'active' | 'deleted'; /** The delivery method of the export tasks */ deliveryMethod?: 'http' | 'stream' | 'firehose'; /** The filters used to get the assets to be included in the export task */ assets?: Array; /** The document types to include in the export task */ documentTypes?: Array; /** The document layout version */ documentVersion?: 'v1' | 'v2'; /** A set of delivery method specific options */ settings?: Dictionary; /** The connection endpoint for the export task */ endpoint?: string; /** Export task username */ username?: string; /** Export task password */ password?: string; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface ExportTaskUpdateRequest { /** The client to export data from. In the case of a Firehose export task, this will be the Vendor and not a client. */ client?: IdName; /** The name of the export task */ name?: string; /** The state of the export task */ state?: 'suspended' | 'active' | 'deleted'; /** The delivery method of the export tasks */ deliveryMethod?: 'http' | 'stream' | 'firehose'; /** The filters used to get the assets to be included in the export task */ assets?: Array; /** The document types to include in the export task */ documentTypes?: Array; /** The document layout version */ documentVersion?: 'v1' | 'v2'; /** A set of delivery method specific options */ settings?: Dictionary; } /** */ export interface ExportTaskCreateRequest { /** The client to export data from. In the case of a Firehose export task, this will be the Vendor and not a client. */ client?: IdName; /** The name of the export task */ name?: string; /** The state of the export task */ state?: 'suspended' | 'active' | 'deleted'; /** The delivery method of the export tasks */ deliveryMethod?: 'http' | 'stream' | 'firehose'; /** The filters used to get the assets to be included in the export task */ assets?: Array; /** The document types to include in the export task */ documentTypes?: Array; /** The document layout version */ documentVersion?: 'v1' | 'v2'; /** A set of delivery method specific options */ settings?: Dictionary; /** The client or vendor that owns this entity */ ownerId: string; } /** */ export interface FuelCardListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The serial number of the fuel card that is used to uniquely identify it. */ name?: string; /** The brand of fuel card */ brandName?: string; /** The name embossed on the fuel card */ embossedName?: string; /** The expiry date of the fuel card in the format YYYY/MM/DD */ expiryDate?: string; /** A short description of the fuel card. */ description?: string; /** The current state of the object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** A number of custom field values for this fuelcard. */ fields?: CustomFieldValues; /** The asset to which this fuel card has been assigned. */ asset?: IdName; /** The date the entity was last modified */ modifiedDate: string; } /** A list of fuel card items */ export interface FuelCardListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** The list of fuel card items in this response */ items: Array; } /** */ export interface FuelCardResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The serial number of the fuel card that is used to uniquely identify it. */ name?: string; /** The brand of fuel card */ brandName?: string; /** The name embossed on the fuel card */ embossedName?: string; /** The expiry date of the fuel card in the format YYYY/MM/DD */ expiryDate?: string; /** A short description of the fuel card. */ description?: string; /** The current state of the object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** A number of custom field values for this fuelcard. */ fields?: CustomFieldValues; /** The asset to which this fuel card has been assigned. */ asset?: IdName; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface FuelCardUpdateRequest { /** The serial number of the fuel card that is used to uniquely identify it. */ name?: string; /** The brand of fuel card */ brandName?: string; /** The name embossed on the fuel card */ embossedName?: string; /** The expiry date of the fuel card in the format YYYY/MM/DD */ expiryDate?: string; /** A short description of the fuel card. */ description?: string; /** The current state of the object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** A number of custom field values for this fuelcard. */ fields?: CustomFieldValues; /** The asset to which this fuel card has been assigned. */ asset?: IdName; } /** */ export interface FuelCardCreateRequest { /** The serial number of the fuel card that is used to uniquely identify it. */ name?: string; /** The brand of fuel card */ brandName?: string; /** The name embossed on the fuel card */ embossedName?: string; /** The expiry date of the fuel card in the format YYYY/MM/DD */ expiryDate?: string; /** A short description of the fuel card. */ description?: string; /** The current state of the object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** A number of custom field values for this fuelcard. */ fields?: CustomFieldValues; /** The asset to which this fuel card has been assigned. */ asset?: IdName; /** */ ownerId: string; } /** */ export interface GeoLockTimeItem { /** The unique ID of this geo lock time item */ id: string; /** The days of the week that this profile is active for (0 - 6, 0 = Sunday) */ days: Array; /** The time from which this geolock starts (HH:mm:ss) */ from: string; /** The time at which this geolock ends (HH:mm:ss) */ to: string; /** The time zone ID of the time values */ timeZoneId: string; } /** */ export interface GeoLockProfileListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The radius of the geo lock (in kilometers) */ radiusKm?: number; /** The geo lock times for this profile */ times?: Array; /** The date the entity was last modified */ modifiedDate: string; } /** A list of geo lock profile items */ export interface GeoLockProfileListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface GeoLockProfileResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The radius of the geo lock (in kilometers) */ radiusKm?: number; /** The geo lock times for this profile */ times?: Array; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface GeoLockProfileUpdateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The radius of the geo lock (in kilometers) */ radiusKm?: number; /** The geo lock times for this profile */ times?: Array; } /** */ export interface GeoLockProfileCreateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The radius of the geo lock (in kilometers) */ radiusKm?: number; /** The geo lock times for this profile */ times?: Array; /** The client that owns this geo lock profile */ ownerId: string; } /** */ export interface IoTypeTextConfig { /** Text that can be substituted for the value when the io type is active */ active?: string; /** Text that can be substituted for the value when the io type is inactive */ inactive?: string; } /** */ export interface IoTypeRateConfig { /** The type of rate conversion to do */ type?: 'none' | 'val_per_km' | 'km_per_val' | 'val_per_mile' | 'mile_per_val' | 'val_per_hour' | 'hour_per_val'; /** A multiplier for the value */ multiplier?: number; /** The unit once the rate conversion is done */ unit?: string; } /** */ export interface IoTypeListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The type of the IO type */ type?: 'digital_input' | 'digital_output' | 'analog_input' | 'temperature_input' | 'can_input' | 'counter_input' | 'camera_input' | 'value_input'; /** Optional units that this I/O type is measured in */ unit?: string; /** The type of smoothing to apply to this input */ smoothingType?: 'none' | 'moving_average_5' | 'moving_average_10' | 'moving_average_20' | 'moving_average_50' | 'moving_average_100' | 'moving_average_200'; /** Digital types can have their value substituted with the following text */ text?: IoTypeTextConfig; /** An optional rate conversion to do on this value */ rate?: IoTypeRateConfig; /** A dictionary of lookup values. Only relevant for "value_input" types. */ lookups?: Array; /** The date the entity was last modified */ modifiedDate: string; } /** A list of I/O type items */ export interface IoTypeListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface IoTypeResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The type of the IO type */ type?: 'digital_input' | 'digital_output' | 'analog_input' | 'temperature_input' | 'can_input' | 'counter_input' | 'camera_input' | 'value_input'; /** Optional units that this I/O type is measured in */ unit?: string; /** The type of smoothing to apply to this input */ smoothingType?: 'none' | 'moving_average_5' | 'moving_average_10' | 'moving_average_20' | 'moving_average_50' | 'moving_average_100' | 'moving_average_200'; /** Digital types can have their value substituted with the following text */ text?: IoTypeTextConfig; /** An optional rate conversion to do on this value */ rate?: IoTypeRateConfig; /** A dictionary of lookup values. Only relevant for "value_input" types. */ lookups?: Array; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface IoTypeUpdateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The type of the IO type */ type?: 'digital_input' | 'digital_output' | 'analog_input' | 'temperature_input' | 'can_input' | 'counter_input' | 'camera_input' | 'value_input'; /** Optional units that this I/O type is measured in */ unit?: string; /** The type of smoothing to apply to this input */ smoothingType?: 'none' | 'moving_average_5' | 'moving_average_10' | 'moving_average_20' | 'moving_average_50' | 'moving_average_100' | 'moving_average_200'; /** Digital types can have their value substituted with the following text */ text?: IoTypeTextConfig; /** An optional rate conversion to do on this value */ rate?: IoTypeRateConfig; /** A dictionary of lookup values. Only relevant for "value_input" types. */ lookups?: Array; } /** */ export interface IoTypeCreateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The type of the IO type */ type?: 'digital_input' | 'digital_output' | 'analog_input' | 'temperature_input' | 'can_input' | 'counter_input' | 'camera_input' | 'value_input'; /** Optional units that this I/O type is measured in */ unit?: string; /** The type of smoothing to apply to this input */ smoothingType?: 'none' | 'moving_average_5' | 'moving_average_10' | 'moving_average_20' | 'moving_average_50' | 'moving_average_100' | 'moving_average_200'; /** Digital types can have their value substituted with the following text */ text?: IoTypeTextConfig; /** An optional rate conversion to do on this value */ rate?: IoTypeRateConfig; /** A dictionary of lookup values. Only relevant for "value_input" types. */ lookups?: Array; /** The client or vendor that owns this entity */ ownerId: string; } /** */ export interface LabelListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A lowercase alphanumeric label value */ label?: string; /** A friendly descriptive name for label */ name?: string; /** An optional color for this label */ color?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** A list of sub labels that are mutually exclusive */ values?: Array; /** The entities to which this label applies */ entities?: Array; /** The date the entity was last modified */ modifiedDate: string; } /** A list of I/O type items */ export interface LabelListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface LabelResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A lowercase alphanumeric label value */ label?: string; /** A friendly descriptive name for label */ name?: string; /** An optional color for this label */ color?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** A list of sub labels that are mutually exclusive */ values?: Array; /** The entities to which this label applies */ entities?: Array; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface LabelUpdateRequest { /** A lowercase alphanumeric label value */ label?: string; /** A friendly descriptive name for label */ name?: string; /** An optional color for this label */ color?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** A list of sub labels that are mutually exclusive */ values?: Array; /** The entities to which this label applies */ entities?: Array; } /** */ export interface LabelCreateRequest { /** A lowercase alphanumeric label value */ label?: string; /** A friendly descriptive name for label */ name?: string; /** An optional color for this label */ color?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** A list of sub labels that are mutually exclusive */ values?: Array; /** The entities to which this label applies */ entities?: Array; /** The client or vendor that owns this entity */ ownerId: string; } /** */ export interface MapSetLayer { /** The name of the map layer */ name: string; /** The projection of the map */ projection: string; /** The minimum zoom level supported by this map layer */ minZoom: number; /** The maximum zoom level supported by this map layer */ maxZoom: number; /** The map server type */ serverType: 'google' | 'wms' | 'osm' | 'wmts' | 'dds' | 'tms' | 'mbs'; /** The order of the layer amongst it's peers */ order: number; /** The image type of the map tiles */ imageType: 'png' | 'jpg' | 'jpeg' | 'gif' | 'mvt'; /** The name of the layer to present to the map server */ layerName: string; /** A list of map server urls */ servers: Array; /** An optional list of layers to overlay on this layer */ overlays: Array; /** The source attribution text to overlay on this map layer */ attribution?: string; } /** */ export interface MapSetListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this map set */ name?: string; /** One or more layers available in this map set */ layers?: Array; /** The state of this map set */ state?: 'active' | 'deleted'; /** One or more overlays for this map set */ overlays?: Array; /** The url to use for static maps when this map set is selected */ staticMapURL?: string; /** The date the entity was last modified */ modifiedDate: string; } /** A list of map set items */ export interface MapSetListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface MapSetResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this map set */ name?: string; /** One or more layers available in this map set */ layers?: Array; /** The state of this map set */ state?: 'active' | 'deleted'; /** One or more overlays for this map set */ overlays?: Array; /** The url to use for static maps when this map set is selected */ staticMapURL?: string; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface MapsetUpdateRequest { /** A unique name for this map set */ name?: string; /** One or more layers available in this map set */ layers?: Array; /** The state of this map set */ state?: 'active' | 'deleted'; /** One or more overlays for this map set */ overlays?: Array; /** The url to use for static maps when this map set is selected */ staticMapURL?: string; } /** */ export interface MapsetCreateRequest { /** A unique name for this map set */ name?: string; /** One or more layers available in this map set */ layers?: Array; /** The state of this map set */ state?: 'active' | 'deleted'; /** One or more overlays for this map set */ overlays?: Array; /** The url to use for static maps when this map set is selected */ staticMapURL?: string; /** The client that owns this map set */ ownerId: string; } /** */ export interface OverspeedBandItem { /** The unique ID of this overspeed band */ id: string; /** A descriptive name for this overspeed band */ name: string; /** The minimum inclusive value to match this band on */ min: number; /** The offset in km/h to add to the minimum inclusive value to match this band on */ offset: number; } /** */ export interface OverspeedProfileListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The overspeed band items for this profile */ items?: Array; /** The date the entity was last modified */ modifiedDate: string; } /** A list of overspeed profile items */ export interface OverspeedProfileListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface OverspeedProfileResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The overspeed band items for this profile */ items?: Array; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface OverspeedProfileUpdateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The overspeed band items for this profile */ items?: Array; } /** */ export interface OverspeedProfileCreateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The overspeed band items for this profile */ items?: Array; /** The client that owns this Overspeed Profile */ ownerId: string; } /** */ export interface PrivacyProfileListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The scheduled trigger times for this profile */ scheduleTriggers?: Array; /** The state profiles to trigger on */ stateTriggers?: Array; /** Set to true to allow manual privacy mode triggers via the API */ enableManualTrigger?: boolean; /** The date the entity was last modified */ modifiedDate: string; } /** A list of privacy profile items */ export interface PrivacyProfileListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface PrivacyProfileResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The scheduled trigger times for this profile */ scheduleTriggers?: Array; /** The state profiles to trigger on */ stateTriggers?: Array; /** Set to true to allow manual privacy mode triggers via the API */ enableManualTrigger?: boolean; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface PrivacyProfileUpdateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The scheduled trigger times for this profile */ scheduleTriggers?: Array; /** The state profiles to trigger on */ stateTriggers?: Array; /** Set to true to allow manual privacy mode triggers via the API */ enableManualTrigger?: boolean; } /** */ export interface PrivacyProfileCreateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The scheduled trigger times for this profile */ scheduleTriggers?: Array; /** The state profiles to trigger on */ stateTriggers?: Array; /** Set to true to allow manual privacy mode triggers via the API */ enableManualTrigger?: boolean; /** The company that owns this privacy profile */ ownerId: string; } /** Describes limits for this report */ export interface ReportDefinitionStyleLimits { /** The maximum number of days that can be selected for this report */ days: number; } /** Additional layout options for a chart */ export interface ReportDefinitionChartLayoutOptions { /** Chart orientation, either 'vertical' (default) or 'horizontal' */ orientation?: string; /** Whether to stack data series. Applies to chart types that support stacking, such as 'bar' */ stacked?: boolean; } /** A data column plotted as a series on a chart */ export interface ReportDefinitionChartColumn { /** The id of the data field to plot */ id: string; /** The colour used to render this series */ color: string; /** The value axis to plot this series against, either 'left' (primary) or 'right' (secondary). Defaults to 'left' */ axis?: string; /** The id of the column this series belongs to. Set this when the series should be associated with a column whose id differs from the data field */ columnId?: string; } /** Chart rendering options for a report grouping */ export interface ReportDefinitionChartOptions { /** Whether to show the data table alongside the chart. Defaults to true */ showTable?: boolean; /** The base chart type to render, typically one of 'area', 'line' or 'bar'. Legacy values 'horizontalBar' are still accepted for backward compatibility */ chartType: string; /** Additional layout options such as orientation and stacked rendering */ chartOptions?: ReportDefinitionChartLayoutOptions; /** The field used as the row/category axis */ rowField: string; /** The fields to plot as chart columns, each with their own colour */ columnFields: Array; /** Preferred rendered chart height in CSS pixels (min 200px) */ height?: number; } /** Map rendering options */ export interface ReportDefinitionMapOptions { /** Whether to show the data table alongside the map. Defaults to true */ showTable?: boolean; /** The map type to render, i.e. heatmap */ mapType: string; /** Additional map options */ mapOptions?: Dictionary; /** Preferred rendered map height in CSS pixels (min 200px) */ height?: number; } /** Describes the fields that are used for a particular grouping option */ export interface ReportDefinitionGroupingOptions { /** The id of this grouping option */ id: string; /** The display name of this grouping option */ name: string; /** The dataset fields that will be combined for this group */ fields: Array; /** Formatting expression for the group header */ format: string; /** Expressions that are used for grouping */ expressions: Array; /** The footer formatting expression if any */ footer: string; /** Any chart configuration */ chart?: ReportDefinitionChartOptions; /** The map to render for each group */ map?: ReportDefinitionMapOptions; } /** Describes column options */ export interface ReportDefinitionColumnOptions { /** The id of the column */ id: string; /** The title of the column */ title: string; /** The width of the column */ width: number; /** Indicates whether this column is suggested as a default */ def: boolean; /** Indicates whether this column is required */ required: boolean; /** The text alignment, either 'Left', 'Center' or 'Right' */ align: 'Left' | 'Center' | 'Right'; /** The calculated measures expression to use */ expression?: string; /** The data field this column reads from — two columns may reference the same field with different formatting */ field?: string; /** Prevents text wrapping within the column cell */ nowrap?: boolean; /** Supercedes the "nowrap" property. Can be either empty (defaults to wrap), "wrap", "nowrap", "hidden" or "ellipses" */ wrap?: string; /** The value formatting expression if any */ format: string; /** The value formatting expression for the column header */ headerFormat?: string; /** The value formatting expression when this column is rendered in a chart */ chartFormat?: string; /** The footer formatting expression if any */ footer: string; /** The footer value formatting expression if any */ footerFormat?: string; } /** Describes the report columns and other layout options */ export interface ReportDefinitionLayoutOptions { /** Describes the fields that are used for a particular grouping option */ grouping: Array; /** Describes column options */ columns: Array; /** */ autoColumns: Array; /** Fields to sort on in format :, i.e. ['date:asc', 'name:desc'] */ sort?: Array; } /** Describes a particular style of a report */ export interface ReportDefinitionStyleOptions { /** The ID of this report style */ id: string; /** The name of this report style */ name: string; /** Indicates whether this report can be scheduled */ schedulable: boolean; /** Describes limits for this report */ limits: ReportDefinitionStyleLimits; /** A JSON string that describes the parameter input fields for this report */ parameters: string; /** Describes the report columns and other layout options */ layout: ReportDefinitionLayoutOptions; } /** A ReportDefinition describes a runnable report, it's parameters and layout options */ export interface ReportDefinitionResponse { /** The unique ID of this report definition */ id: string; /** The entity that owns this report definition */ owner: IdNameType; /** A unique name for this report */ name: string; /** A description of the report */ description: string; /** A list of tags that describe this report */ tags: Array; /** The reporting subsystem that generates this report */ source: 'dataset' | 'analytics'; /** Indicates whether this report can be scheduled */ schedulable: boolean; /** One or more report styles that can be selected for this report */ styles: Array; } /** A list of map set items */ export interface ReportDefinitionListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface ReportTemplateConfig { /** The output format for this report */ outputFormat: 'pdf' | 'xlsx' | 'xml' | 'csv' | 'raw' | 'json' | 'raw_compact' | 'source'; /** The ID of the report defininition that was used to create this report */ definitionId: string; /** The style of the report that was selected */ styleId: string; /** The parameters that were passed to the report */ parameters: any; /** The report fields that should be visible and modifyable by the end user */ editableFields: Array; } /** */ export interface ReportTemplateResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this report template */ name?: string; /** A description of the report */ description?: string; /** A list of tags that describe this report template */ tags?: Array; /** The preset configuration for this template */ config?: ReportTemplateConfig; } /** A list of report template items */ export interface ReportTemplateListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface ReportTemplateCreateRequest { /** A unique name for this report template */ name?: string; /** A description of the report */ description?: string; /** A list of tags that describe this report template */ tags?: Array; /** The preset configuration for this template */ config?: ReportTemplateConfig; /** */ ownerId: string; } /** */ export interface ReportTemplateUpdateRequest { /** A unique name for this report template */ name?: string; /** A description of the report */ description?: string; /** A list of tags that describe this report template */ tags?: Array; /** The preset configuration for this template */ config?: ReportTemplateConfig; } /** */ export interface ReminderTriggerValue { /** For odometer and hours values, specify the starting value from which to base subsequent increments */ start?: string; /** For odometer and hours, the increment from start to trigger at. */ value?: string; } /** */ export interface ReminderResetDaily { /** */ recurrence: number; } /** */ export interface ReminderResetWeekly { /** */ days: Array; } /** */ export interface ReminderResetMonthly { /** */ months: Array; /** */ day: number; } /** */ export interface ReminderReset { /** The type of reset for the reminder. Affects which of the reset fields need to be completed. */ type?: 'none' | 'daily' | 'weekly' | 'monthly'; /** */ counter?: number; /** Daily reset parameters */ daily?: ReminderResetDaily; /** Weekly reset parameters */ weekly?: ReminderResetWeekly; /** Monthly reset parameters */ monthly?: ReminderResetMonthly; } /** */ export interface ReminderListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this reminder */ name?: string; /** The target entity to which this reminder applies. Usually an asset. */ target?: IdNameType; /** Specify the trigger type of the reminder, which can be either time, odometer or engine hours. */ type?: 'odo' | 'hours' | 'time'; /** The reminder mode. If set to once, the reminder will be disabled as soon as it has triggered at least once. */ mode?: 'once' | 'repeating'; /** The timezone to use for time based triggers. */ timeZoneId?: string; /** The value to trigger at. This could be a date/time or and odometer or engine hours value. */ trigger?: ReminderTriggerValue; /** */ reset?: ReminderReset; /** Whether the reminder is still enabled (will be false for reminders with mode set to `once` that have already triggered. */ enabled?: boolean; /** The date the entity was last modified */ modifiedDate: string; } /** A list of reminder items */ export interface ReminderListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface ReminderResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this reminder */ name?: string; /** The target entity to which this reminder applies. Usually an asset. */ target?: IdNameType; /** Specify the trigger type of the reminder, which can be either time, odometer or engine hours. */ type?: 'odo' | 'hours' | 'time'; /** The reminder mode. If set to once, the reminder will be disabled as soon as it has triggered at least once. */ mode?: 'once' | 'repeating'; /** The timezone to use for time based triggers. */ timeZoneId?: string; /** The value to trigger at. This could be a date/time or and odometer or engine hours value. */ trigger?: ReminderTriggerValue; /** */ reset?: ReminderReset; /** Whether the reminder is still enabled (will be false for reminders with mode set to `once` that have already triggered. */ enabled?: boolean; /** The date/time when the reminder last triggered. */ lastTriggered?: string; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface ReminderUpdateRequest { /** A unique name for this reminder */ name?: string; /** The target entity to which this reminder applies. Usually an asset. */ target?: IdNameType; /** Specify the trigger type of the reminder, which can be either time, odometer or engine hours. */ type?: 'odo' | 'hours' | 'time'; /** The reminder mode. If set to once, the reminder will be disabled as soon as it has triggered at least once. */ mode?: 'once' | 'repeating'; /** The timezone to use for time based triggers. */ timeZoneId?: string; /** The value to trigger at. This could be a date/time or and odometer or engine hours value. */ trigger?: ReminderTriggerValue; /** */ reset?: ReminderReset; /** Whether the reminder is still enabled (will be false for reminders with mode set to `once` that have already triggered. */ enabled?: boolean; } /** */ export interface ReminderCreateRequest { /** A unique name for this reminder */ name?: string; /** The target entity to which this reminder applies. Usually an asset. */ target?: IdNameType; /** Specify the trigger type of the reminder, which can be either time, odometer or engine hours. */ type?: 'odo' | 'hours' | 'time'; /** The reminder mode. If set to once, the reminder will be disabled as soon as it has triggered at least once. */ mode?: 'once' | 'repeating'; /** The timezone to use for time based triggers. */ timeZoneId?: string; /** The value to trigger at. This could be a date/time or and odometer or engine hours value. */ trigger?: ReminderTriggerValue; /** */ reset?: ReminderReset; /** Whether the reminder is still enabled (will be false for reminders with mode set to `once` that have already triggered. */ enabled?: boolean; /** The client that owns this reminder */ ownerId: string; } /** */ export interface RoadSpeedModifierEntry { /** The unique ID of this road speed modifier */ id: string; /** A descriptive name for this road speed modifier */ name: string; /** The filter that this road speed modifier matches on */ filter: EventFilter; /** The new road speed that will be applied if the filter matches. */ speed: number; /** The speed unit, either km/h or miles per hour */ unit: 'kmh' | 'mph'; } /** */ export interface RoadProfileListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The road speed modifiers for this profile */ speedModifiers?: Array; /** The date the entity was last modified */ modifiedDate: string; } /** A list of road profile items */ export interface RoadProfileListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface RoadProfileResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The road speed modifiers for this profile */ speedModifiers?: Array; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface RoadProfileUpdateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The road speed modifiers for this profile */ speedModifiers?: Array; } /** */ export interface RoadProfileCreateRequest { /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The road speed modifiers for this profile */ speedModifiers?: Array; /** The client that owns this Road Profile */ ownerId: string; } /** */ export interface Schedule { /** The type of schedule */ scheduleType?: 'once' | 'hourly' | 'daily' | 'weekly' | 'monthly'; /** The time of schedule initation. Also sets the time at which reports run. */ startTime?: string; /** For daily and hourly scheduled, every {{every}} x hours/days */ every?: number; /** For weekly schedules, the days of the week in which to run (0-6 where 0 = sunday). For monthly schedule, a single value with the day of the month to run on. */ days?: Array; /** For monthly schedules, the month number (1-12) in which to run. */ months?: Array; } /** */ export interface ScheduledReportListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The user who's security credentials to use when running this schedule. */ user?: IdName; /** A unique name for this entity */ name?: string; /** The current state of this entity. */ state?: 'active' | 'deleted'; /** The type of scheduled report. */ scheduleType?: 'report' | 'analytics'; /** The time schedule on which to run. */ schedule?: Schedule; /** The number of reports attached to this schedule. */ reports?: number; /** The number of recipients that will receive an email with the completed reports. */ recipients?: number; /** The date the entity was last modified */ modifiedDate: string; } /** A list of scheduled report items */ export interface ScheduledReportListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** The configuration settings for the queued report */ export interface ReportConfig { /** The language that this report is being generated in */ language?: string; /** The ID of the report defininition that was used to create this report */ definitionId?: string; /** The style of the report that was selected */ styleId?: string; /** The parameters that were passed to the report */ parameters?: any; } /** */ export interface ScheduledReportReport { /** The report title as set by the user */ title?: string; /** The output format for this report */ outputFormat?: 'pdf' | 'xlsx' | 'xml' | 'csv' | 'raw' | 'json' | 'raw_compact' | 'source'; /** The report configuration */ config?: ReportConfig; } /** */ export interface ScheduledReportReports { [key: string]: ScheduledReportReport; } /** */ export interface ScheduledReportResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The user who's security credentials to use when running this schedule. */ user?: IdName; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The type of scheduled report. */ scheduleType?: 'report' | 'analytics'; /** The time schedule on which to run */ schedule?: Schedule; /** The reports that should be run when the schedule fires. */ reports?: ScheduledReportReports; /** The recipients that will receive an email with the completed reports */ recipients?: Array; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface ScheduledReportUpdateRequest { /** The user who's security credentials to use when running this schedule. */ user?: IdName; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The type of scheduled report. */ scheduleType?: 'report' | 'analytics'; /** The time schedule on which to run */ schedule?: Schedule; /** The reports that should be run when the schedule fires. */ reports?: ScheduledReportReports; /** The recipients that will receive an email with the completed reports */ recipients?: Array; } /** */ export interface ScheduledReportCreateRequest { /** The user who's security credentials to use when running this schedule. */ user?: IdName; /** A unique name for this entity */ name?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The type of scheduled report. */ scheduleType?: 'report' | 'analytics'; /** The time schedule on which to run */ schedule?: Schedule; /** The reports that should be run when the schedule fires. */ reports?: ScheduledReportReports; /** The recipients that will receive an email with the completed reports */ recipients?: Array; /** The client or vendor that owns this entity */ ownerId: string; } /** */ export interface SimCardListItem { /** The unique UUID for this SIM card */ id: string; /** The client that owns this SIM card */ owner: IdName; /** The serial number of the SIM card that is used to uniquely identify it. */ name: string; /** The name of the telecommunications network. */ networkName: string; /** The direct mobile number for this SIM card. Must be in international format starting with +. */ number: string; /** A short description of the sim card. */ description: string; /** The current state of the object */ state: 'inactive' | 'active' | 'suspended' | 'deleted'; /** The device to which this SIM card has been assigned. */ device: IdName; /** A number of custom field values for this simcard. */ fields: CustomFieldValues; } /** A list of SIM card items */ export interface SimCardListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** The list of SIM card items in this response */ items: Array; } /** */ export interface SimCardResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The serial number of the SIM card that is used to uniquely identify it. */ name?: string; /** The name of the telecommunications network. */ networkName?: string; /** The direct mobile number for this SIM card. Must be in international format starting with +. */ number?: string; /** A short description of the sim card. */ description?: string; /** The current state of the object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** A number of custom field values for this simcard. */ fields?: CustomFieldValues; /** The device to which this SIM card has been assigned. Can only be modified using the `updateDevice` operation. */ device?: IdName; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface SimCardUpdateRequest { /** The serial number of the SIM card that is used to uniquely identify it. */ name?: string; /** The name of the telecommunications network. */ networkName?: string; /** The direct mobile number for this SIM card. Must be in international format starting with +. */ number?: string; /** A short description of the sim card. */ description?: string; /** The current state of the object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** A number of custom field values for this simcard. */ fields?: CustomFieldValues; } /** */ export interface SimCardCreateRequest { /** The serial number of the SIM card that is used to uniquely identify it. */ name?: string; /** The name of the telecommunications network. */ networkName: string; /** The direct mobile number for this SIM card. Must be in international format starting with +. */ number: string; /** A short description of the sim card. */ description: string; /** The current state of the object */ state?: 'inactive' | 'active' | 'suspended' | 'deleted'; /** A number of custom field values for this simcard. */ fields?: CustomFieldValues; /** */ ownerId: string; } /** */ export interface SmsGatewayProviderListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The name of the sms gateway provider */ name?: string; /** The type of the sms gateway provider */ type?: IdName; /** Whether or not the sms gateway is oneway or twoway */ direction?: 'oneway' | 'twoway'; /** The state this entity */ state?: 'active' | 'suspended' | 'deleted'; /** The date the entity was last modified */ modifiedDate: string; } /** A list of sms gateway provider items */ export interface SmsGatewayProviderListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface SmsGatewayProviderResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The name of the sms gateway provider */ name?: string; /** The type of the sms gateway provider */ type?: IdName; /** Whether or not the sms gateway is oneway or twoway */ direction?: 'oneway' | 'twoway'; /** The state this entity */ state?: 'active' | 'suspended' | 'deleted'; /** A dictionary of entity specific parameters */ parameters?: Dictionary; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface SmsGatewayProviderUpdateRequest { /** The name of the sms gateway provider */ name?: string; /** The type of the sms gateway provider */ type?: IdName; /** Whether or not the sms gateway is oneway or twoway */ direction?: 'oneway' | 'twoway'; /** The state this entity */ state?: 'active' | 'suspended' | 'deleted'; /** A dictionary of entity specific parameters */ parameters?: Dictionary; } /** */ export interface SmsGatewayProviderCreateRequest { /** The name of the sms gateway provider */ name?: string; /** The type of the sms gateway provider */ type?: IdName; /** Whether or not the sms gateway is oneway or twoway */ direction?: 'oneway' | 'twoway'; /** The state this entity */ state?: 'active' | 'suspended' | 'deleted'; /** A dictionary of entity specific parameters */ parameters?: Dictionary; /** The client that owns this sms gateway provider */ ownerId: string; } /** */ export interface SmsGatewayProviderTypeListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The name of the sms gateway provider type */ name: string; /** The tag to apply to the sms gateway provider type */ tag: string; /** The parameters used by the sms gateway type */ parameterDefinition?: string; /** Whether or not the sms gateway type is oneway or twoway */ direction?: 'oneway' | 'twoway'; /** The state this entity */ state?: 'active' | 'deleted'; /** The date the entity was last modified */ modifiedDate: string; } /** A list of sms gateway provider type items */ export interface SmsGatewayProviderTypeListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface SmsGatewayProviderTypeResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The name of the sms gateway provider type */ name: string; /** The tag to apply to the sms gateway provider type */ tag: string; /** The parameters used by the sms gateway type */ parameterDefinition?: string; /** Whether or not the sms gateway type is oneway or twoway */ direction?: 'oneway' | 'twoway'; /** The state this entity */ state?: 'active' | 'deleted'; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface EmailProviderTypeListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The name of the email provider type */ name: string; /** The tag to apply to the email provider type */ tag: string; /** The parameters used by the email provider type */ parameterDefinition?: string; /** The state of the email provider type */ state?: 'active' | 'deleted'; /** The date the entity was last modified */ modifiedDate: string; } /** A list of email provider type items */ export interface EmailProviderTypeListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface EmailProviderTypeResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The name of the email provider type */ name: string; /** The tag to apply to the email provider type */ tag: string; /** The parameters used by the email provider type */ parameterDefinition?: string; /** The state of the email provider type */ state?: 'active' | 'deleted'; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface ThemeListItem { /** The unique ID of the theme */ id: string; /** The entity that owns this theme */ owner: IdNameType; /** The ID of the base theme CSS */ theme: string; /** The name of the theme */ name: string; /** An optional description of the theme */ description: string; } /** A list of vendor items */ export interface ThemeListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** A collection of CSS variables for the theme */ export interface ThemeVariables { [key: string]: string; } /** */ export interface ThemeCustomHTMLTag { /** A descriptive name for the custom tag */ name: string; /** The HTML tag type, i.e. 'script' or 'div' */ tag: string; /** A list of attributes for the tag */ attributes: string; /** The contents of the HTML Tag */ contents: string; /** The location where the tag should be inserted */ location: 'head' | 'body'; } /** */ export interface ThemeResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The ID of the base theme CSS */ theme?: string; /** The name of the theme */ name?: string; /** An optional description of the theme */ description?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The list of css custom properties */ variables?: ThemeVariables; /** The list of adjustable settings */ settings?: ThemeSettings; /** The custom overwrites that will be injected after the theme css */ customStyles?: string; /** A list of custom HTML tags that are to be injected into the page for this theme */ customTags?: Array; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface ThemeUpdateRequest { /** The ID of the base theme CSS */ theme?: string; /** The name of the theme */ name?: string; /** An optional description of the theme */ description?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The list of css custom properties */ variables?: ThemeVariables; /** The list of adjustable settings */ settings?: ThemeSettings; /** The custom overwrites that will be injected after the theme css */ customStyles?: string; /** A list of custom HTML tags that are to be injected into the page for this theme */ customTags?: Array; } /** */ export interface ThemeCreateRequest { /** The ID of the base theme CSS */ theme?: string; /** The name of the theme */ name?: string; /** An optional description of the theme */ description?: string; /** The current state of this entity */ state?: 'active' | 'deleted'; /** The list of css custom properties */ variables?: ThemeVariables; /** The list of adjustable settings */ settings?: ThemeSettings; /** The custom overwrites that will be injected after the theme css */ customStyles?: string; /** A list of custom HTML tags that are to be injected into the page for this theme */ customTags?: Array; /** The client or vendor that owns this entity */ ownerId: string; } /** */ export interface AuthEndpoint { /** The ID for the endpoint. */ id: string; /** Type type of endpoint */ type: 'local' | 'oidc'; /** A friendly name for the endpoint. */ name: string; /** The endpoint url, i.e. https://accounts.google.com */ endpoint: string; /** The endpoint client id */ clientId: string; } /** */ export interface AuthInfo { /** The types of authentication that are available */ availableAuth: Array<'local' | 'oidc'>; /** 3rd party endpoints which can handle authentication */ endpoints: Array; } /** */ export interface DomainInfo { /** The domain name */ domain: string; /** The company that owns the domain name. Will be `undefined` if no domain was matched. */ owner?: IdNameType; /** Authentication information for this domain */ auth: AuthInfo; /** An optional messge to display to the user at logon time */ message?: string; } /** */ export interface DomainThemeResponse { /** The domain details */ domain: DomainInfo; /** The theme for this domain */ theme: ThemeResponse; } /** */ export interface ZoneGroupListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The parent of this entity */ parent?: IdName; /** entity specific metadata */ modifiedDate: string; } /** A list of zone group items */ export interface ZoneGroupListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface ZoneGroupResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this entity */ name?: string; /** The parent of this entity */ parent?: IdName; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface ZoneGroupUpdateRequest { /** A unique name for this entity */ name?: string; /** The parent of this entity */ parent?: IdName; } /** */ export interface ZoneGroupCreateRequest { /** A unique name for this entity */ name: string; /** The parent of this entity */ parent?: IdName; /** The client that owns this entity */ ownerId: string; } /** */ export interface ZoneCenter { /** */ x: number; /** */ y: number; } /** */ export interface ZoneBounds { /** */ top: number; /** */ left: number; /** */ bottom: number; /** */ right: number; } /** */ export interface ZonePoint { /** */ x: number; /** */ y: number; } /** */ export interface ZoneListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this zone */ name?: string; /** The zone group to which this zone belongs */ group?: IdName; /** The cost centre to which this zone belongs */ costCentre?: IdName; /** The state of this zone */ state?: 'inactive' | 'active' | 'deleted'; /** The type of zone */ zoneType?: 'location' | 'keepin' | 'nogo' | 'route'; /** A speed limit (in km/h) to apply to this zone. Any asset that enters this zone will have the road speed limit overriden by the zone speed limit. */ speed?: number; /** For zone proximity alerts, specifiy a distance in km from the center of the zone. */ radius?: number; /** The points for the zone polygon/polyline. Only populated on `get*` routes. */ points?: Array; /** The tag entity */ tag?: string; /** The center of the zone (this is automatically calculated from the zone polygon. */ center?: ZoneCenter; /** The rectangular bounds that contains the zone polygon. */ bounds?: ZoneBounds; /** entity specific metadata */ modifiedDate: string; } /** A list of zone items */ export interface ZoneListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface ZoneResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** A unique name for this zone */ name?: string; /** The zone group to which this zone belongs */ group?: IdName; /** The cost centre to which this zone belongs */ costCentre?: IdName; /** The state of this zone */ state?: 'inactive' | 'active' | 'deleted'; /** The type of zone */ zoneType?: 'location' | 'keepin' | 'nogo' | 'route'; /** A speed limit (in km/h) to apply to this zone. Any asset that enters this zone will have the road speed limit overriden by the zone speed limit. */ speed?: number; /** For zone proximity alerts, specifiy a distance in km from the center of the zone. */ radius?: number; /** The points for the zone polygon/polyline. Only populated on `get*` routes. */ points?: Array; /** The tag entity */ tag?: string; /** The center of the zone (this is automatically calculated from the zone polygon. */ center?: ZoneCenter; /** The rectangular bounds that contains the zone polygon. */ bounds?: ZoneBounds; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface ZoneUpdateRequest { /** A unique name for this zone */ name?: string; /** The zone group to which this zone belongs */ group?: IdName; /** The cost centre to which this zone belongs */ costCentre?: IdName; /** The state of this zone */ state?: 'inactive' | 'active' | 'deleted'; /** The type of zone */ zoneType?: 'location' | 'keepin' | 'nogo' | 'route'; /** A speed limit (in km/h) to apply to this zone. Any asset that enters this zone will have the road speed limit overriden by the zone speed limit. */ speed?: number; /** For zone proximity alerts, specifiy a distance in km from the center of the zone. */ radius?: number; /** The points for the zone polygon/polyline. Only populated on `get*` routes. */ points?: Array; /** The tag entity */ tag?: string; } /** */ export interface ZoneCreateRequest { /** A unique name for this entity */ name: string; /** The zone group to which this zone belongs */ group?: IdName; /** The cost centre to which this zone belongs */ costCentre?: IdName; /** The state of this zone */ state?: 'inactive' | 'active' | 'deleted'; /** The type of zone */ zoneType?: 'location' | 'keepin' | 'nogo' | 'route'; /** A speed limit (in km/h) to apply to this zone. Any asset that enters this zone will have the road speed limit overriden by the zone speed limit. */ speed?: number; /** For zone proximity alerts, specifiy a distance in km from the center of the zone. */ radius?: number; /** The points for the zone polygon/polyline. Only populated on `get*` routes. */ points?: Array; /** The tag entity */ tag?: string; /** The client that owns this entity */ ownerId: string; } /** Information about a media item */ export interface MediaInfoResponse { /** The internal ID of the media item */ id: string; /** The company that owns this media item */ owner: IdName; /** The asset that generated this media item */ asset: IdName; /** The entity that requested this media item */ requester: IdNameType; /** The MIME type of this media */ mimeType: string; /** The filename of the media item */ filename: string; /** The camera input from which this media was recorded */ input: string; /** The ISO date at which this media was started */ date: string; /** The duration of the media item */ duration: number; /** The status of the media item */ status: 'queued' | 'pending' | 'uploading' | 'available' | 'downloading' | 'processing' | 'ready' | 'failed' | 'unavailable' | 'canceled' | 'deleted' | 'saved'; /** The kind of media */ type: 'video' | 'image'; /** The UUID of an event that is linked to this media item */ eventId: string; /** The class of the event that is linked to this media item */ eventClass: string; /** The type of the event that is linked to this media item */ eventType: string; /** The latitude where this event was triggered */ lat: number; /** The longitude where this event was triggered */ lon: number; /** The geocoded address of where this event was triggered */ address: string; /** a list of custom field values attached to this event */ fields: any; /** Any labels applied to this media item */ labels: Array; /** The name of the device provider that handled this media item */ provider: string; /** The progress of media retrieval (not all devices support this property) */ progress: number; /** Information about when this media item was created and last updated */ entity: EntityInfo; /** Device specific information about this media item */ data?: any; } /** A list of media items */ export interface MediaInfoListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** A list of media items */ items: Array; } /** */ export interface VideoLiveStreamResponse { /** A unique ID for this live stream */ id: string; /** The status of the request */ status: string; /** The endpoints for the live stream if successful */ endpoints: Array; } /** */ export interface VideoLiveStreamRequest { /** The duration in seconds of the video to retrieve */ duration: number; /** The camera input for which to start a live stream */ input: string; /** Set to true to record the live stream so that it is available later */ record: boolean; } /** Setting for creating a new video event */ export interface MediaVideoEventCreateRequest { /** The duration in seconds of the video to retrieve */ duration: number; /** The number of seconds from the given date to begin recording (can be negative) */ offset: number; /** The camera inputs from which to retrieve videos */ inputs: Array; /** the UUID of the asset for which to create this event */ assetId: string; /** The date on which to create this event. This should correspond to an actual telemetry point for the asset. */ date: string; } /** Setting for retreiving a video on an existing event */ export interface MediaVideoEventUpdateRequest { /** The duration in seconds of the video to retrieve */ duration: number; /** The number of seconds from the given date to begin recording (can be negative) */ offset: number; /** The camera inputs from which to retrieve videos */ inputs: Array; } /** */ export interface TestNotificationsRequest { /** The id of the company from which to send the test notification */ ownerId?: string; /** A list of notification channels to test */ notificationChannels?: Array<'email' | 'sms'>; /** The url of the client application */ siteUrl: string; } /** */ export interface AnalyticsBaseReportDashboard { /** */ owner: IdNameType; /** */ id: string; /** */ name: string; } /** */ export interface AnalyticsBaseReportResponse { /** */ id: string; /** */ name: string; /** */ title: string; /** */ owner: IdNameType; /** */ user: IdName; /** */ origin: IdNameType; /** */ client: IdName; /** */ taskId: number; /** */ date: string; /** */ completionDate: string; /** */ status: 'queued' | 'running' | 'completed' | 'aborted' | 'failed' | 'retry'; /** */ progress: number; /** */ completedTasks: number; /** */ totalTasks: number; /** */ firstPassComplete: boolean; /** */ priority: number; /** */ mode: 'single' | 'repeat'; /** */ maxRunning: number; /** */ runEndDate: string; /** */ lastCompletedDate: string; /** */ dashboards?: Array; } /** */ export interface AnalyticsBaseReportsListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface TableOptions { } /** */ export interface ReportOutputOptions { /** */ charts?: Array; /** */ table?: TableOptions; } /** */ export interface CompletedReportResponse { /** The unique ID of this report definition */ id: string; /** The entity that owns this report */ owner: IdNameType; /** The user that queued this report definition */ user: IdName; /** The client for which the report was run */ client: IdName; /** The base report name */ name: string; /** The report title as set by the user */ title: string; /** The reporting subsystem that generates this report */ source: 'dataset' | 'analytics'; /** The status of this report */ status: 'queued' | 'running' | 'completed' | 'aborted' | 'failed' | 'retry'; /** The ISO date/time that this report was queued */ queueDate: string; /** The ISO date/time that this report's state last changed */ updateDate: string; /** The output format for this report */ outputFormat: 'pdf' | 'xlsx' | 'xml' | 'csv' | 'raw' | 'json' | 'raw_compact' | 'source'; /** The progress percentage of this report */ progress: number; /** report queue order, will change sometimes while queued */ order: number; /** The report priority: 0 = urgent, 1 = high, 2 = normal, 3 = low, 4+ = none (sorted as an integer) */ priority: number; /** The report configuration */ config: ReportConfig; /** What triggered the report */ triggeredBy: 'user' | 'schedule' | 'dashboard'; /** The UUID of a base report in analytics (if any) this report is linked to */ baseReportId?: string; /** Arbitrary key/value metadata associated with this report */ metadata?: Dictionary; /** */ outputOptions?: ReportOutputOptions; } /** A list of map set items */ export interface CompletedReportListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface ReportLayoutColumn { /** */ id: string; /** */ title: string; /** */ width: number; /** */ align?: 'Left' | 'Right' | 'Center'; /** */ field?: string; /** */ format?: string; /** */ footer?: string; /** */ footerFormat?: string; /** */ headerFormat?: string; /** */ chartFormat?: string; /** */ nowrap?: boolean; /** */ wrap?: string; /** */ def?: boolean; /** */ req?: boolean; } /** Overrides applied to a single grouping on the report definition */ export interface ReportLayoutGrouping { /** The id of the grouping to override (must match a grouping on the report definition) */ id: string; /** Override for the grouping display name */ name?: string; /** Override for the grouping header format expression */ format?: string; /** Override for the grouping expressions */ expressions?: Array; /** Override for the grouping footer expression */ footer?: string; /** The chart to render for each group */ chart?: ReportDefinitionChartOptions; /** The map to render for this grouping */ map?: ReportDefinitionMapOptions; } /** */ export interface ReportLayoutUpdate { /** The table layout mode, typically 'auto' or 'exact' */ tableLayout?: string; /** */ style?: string; /** */ pageBreak?: string; /** */ grouping?: string; /** */ columns?: Array; /** */ orientation?: 'portrait' | 'landscape'; /** Per-grouping overrides applied on top of the report definition's groupings. */ groupings?: Array; /** Fields to sort on in format :, i.e. ['date:asc', 'name:desc'] */ sort?: Array; } /** */ export interface CompletedReportUpdateRequest { /** */ title?: string; /** */ layout?: ReportLayoutUpdate; /** */ outputOptions?: ReportOutputOptions; /** Arbitrary key/value metadata (merge semantics handled by the report service) */ metadata?: Dictionary; } /** */ export interface AnalyticsOutputRequest { /** */ rowLevel: number; /** */ groupLevel: number; /** */ time: string; /** */ flipped: boolean; /** */ measures: Array; /** */ sort: AnalyticsSortOptions; /** */ row?: 'time' | 'asset' | 'costCentre' | 'zoneCostCentre' | 'assetGroup' | 'zoneGroup' | 'device' | 'ioType' | 'alert' | 'event' | 'assetState' | 'assetCategory0' | 'assetCategory1' | 'assetCategory2' | 'assetCategory3' | 'assetCategory4' | 'overspeed' | 'shift' | 'company' | 'geography' | 'deviceType'; /** */ group?: 'time' | 'asset' | 'costCentre' | 'zoneCostCentre' | 'assetGroup' | 'zoneGroup' | 'device' | 'ioType' | 'alert' | 'event' | 'assetState' | 'assetCategory0' | 'assetCategory1' | 'assetCategory2' | 'assetCategory3' | 'assetCategory4' | 'overspeed' | 'shift' | 'company' | 'geography' | 'deviceType'; /** */ filters?: AnalyticsOutputFilters; } /** */ export interface CompletedReportDataRequest { /** */ outputOptions?: AnalyticsOutputRequest; } /** */ export interface AnalyticsSettingsRequest { /** */ row: 'time' | 'asset' | 'costCentre' | 'zoneCostCentre' | 'assetGroup' | 'zoneGroup' | 'device' | 'ioType' | 'alert' | 'event' | 'assetState' | 'assetCategory0' | 'assetCategory1' | 'assetCategory2' | 'assetCategory3' | 'assetCategory4' | 'overspeed' | 'shift' | 'company' | 'geography' | 'deviceType'; /** */ group: 'time' | 'asset' | 'costCentre' | 'zoneCostCentre' | 'assetGroup' | 'zoneGroup' | 'device' | 'ioType' | 'alert' | 'event' | 'assetState' | 'assetCategory0' | 'assetCategory1' | 'assetCategory2' | 'assetCategory3' | 'assetCategory4' | 'overspeed' | 'shift' | 'company' | 'geography' | 'deviceType'; } /** */ export interface CompletedReportRequest { /** */ outputOptions?: AnalyticsSettingsRequest; } /** */ export interface QueuedReportResponse { /** The unique ID of this report definition */ id: string; /** The entity that owns this report */ owner: IdNameType; /** The user that queued this report definition */ user: IdName; /** The client for which the report was run */ client: IdName; /** The base report name */ name: string; /** The report title as set by the user */ title: string; /** The reporting subsystem that generates this report */ source: 'dataset' | 'analytics'; /** The status of this report */ status: 'queued' | 'running' | 'completed' | 'aborted' | 'failed' | 'retry'; /** The ISO date/time that this report was queued */ queueDate: string; /** The ISO date/time that this report's state last changed */ updateDate: string; /** The output format for this report */ outputFormat: 'pdf' | 'xlsx' | 'xml' | 'csv' | 'raw' | 'json' | 'raw_compact' | 'source'; /** The progress percentage of this report */ progress: number; /** report queue order, will change sometimes while queued */ order: number; /** The report priority: 0 = urgent, 1 = high, 2 = normal, 3 = low, 4+ = none (sorted as an integer) */ priority: number; /** The report configuration */ config: ReportConfig; /** What triggered the report */ triggeredBy: 'user' | 'schedule' | 'dashboard'; /** The UUID of a base report in analytics (if any) this report is linked to */ baseReportId?: string; /** Arbitrary key/value metadata associated with this report */ metadata?: Dictionary; } /** A list of map set items */ export interface QueuedReportListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface QueueReportRequest { /** */ clientId: string; /** */ source: 'dataset' | 'analytics'; /** */ serverId?: string; /** */ name: string; /** */ title: string; /** */ outputFormat: 'pdf' | 'xlsx' | 'xml' | 'csv' | 'raw' | 'json' | 'raw_compact' | 'source'; /** */ config: ReportConfig; /** Arbitrary key/value metadata to store with the report (not supported when source is 'analytics') */ metadata?: Dictionary; } /** */ export interface DimensionFilter { [key: string]: DimensionFilterItem; } /** */ export interface DimensionFilterItem { /** */ name: string; /** */ children: DimensionFilter; } /** */ export interface CellSetFilters { /** */ row: DimensionFilter; /** */ group: DimensionFilter; } /** */ export interface CellSetAverage { /** */ value: Array; /** */ raw: Array; } /** */ export interface ColumnFormatting { /** */ align: string; /** */ width: number; } /** */ export interface CellProperties { /** */ raw?: any; /** */ format?: ColumnFormatting; /** */ doNotShowOnChart?: boolean; /** */ type: 'average' | 'max' | 'min' | 'total' | 'data'; /** */ seriesKey?: string; /** */ uniquename?: string; /** */ dimension?: string; /** */ level?: string; } /** */ export interface CellValue { /** */ value: any; /** */ type: 'DATA_CELL' | 'ROW_HEADER' | 'ROW_HEADER_HEADER' | 'COLUMN_HEADER' | 'COLUMN_HEADER_HEADER'; /** */ properties: CellProperties; } /** */ export interface CellSet { /** */ rowLevels: number; /** */ filters: CellSetFilters; /** */ average?: CellSetAverage; /** */ cellset: Array>; /** */ status: 'error' | 'running' | 'generating' | 'completed'; } /** */ export interface CellSetResponse { /** */ cellset: CellSet; } /** */ export interface StatsEntityOutputOptions { /** */ groupLevel: 'all' | 'type' | 'name' | 'company' | 'user' | 'distributor' | 'vendor' | 'client'; /** */ rowLevel: 'all' | 'year' | 'month' | 'day' | 'hour'; /** */ time: string; /** */ flip: boolean; } /** An entity search result item */ export interface EntitySearchResult { /** The UUID of the entity */ id: string; /** The name value of the entity */ name: string; /** The type of the entitity */ type: string; /** The company that owns the entity */ owner: IdNameType; /** The state of the entity */ state: string; /** Any custom field values assigned to the entity */ fields: string; /** Any custom tags assigned to the entity */ tags: string; } /** A list of search results */ export interface EntitySearchResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** Health issue date information */ export interface HealthIssueDates { /** The date that the issue was first experienced */ created: string; /** The date that the issue was last experienced */ updated: string; } /** Detail to describe the health issue's resolution */ export interface HealthIssueResolutionDetail { /** A message to describe what was done to fix the issue */ message?: string; /** The timestamp when the issue was resolved */ timestamp: string; /** The user who resolved the issue */ user: IdNameType; } /** Health issue */ export interface HealthIssueResponse { /** A unique GUID for the issue */ id: string; /** The company that owns this issue */ owner: IdNameType; /** The target entity to which the issue relates */ target: IdNameType; /** A name given to the issue */ topic: string; /** The source entity from which the issue originates */ source: IdNameType; /** Date information */ date: HealthIssueDates; /** A number of times the issue has been experienced since it was first experienced */ count: number; /** The flag indicating the issue has been corrected or not */ resolved?: HealthIssueResolutionDetail; } /** A list of health issue items */ export interface HealthIssueListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** The list of issue items in this response */ items: Array; } /** The model to send when resolving a health issue */ export interface HealthIssueUpdateRequest { /** */ resolved?: { /** */ message?: string; }; } /** A number of task execution options */ export interface TaskOptions { /** The number of retries that should be attempted if this task fails */ retries: number; /** The number of minutes to wait after failure before trying again */ delay: number; /** Any task in the executing state for more than `timeout` minutes will be automatically failed. */ timeout: number; } /** Task date information */ export interface TaskDates { /** The date that the task was created */ created: string; /** The date that the task was last updated */ updated: string; /** The date at which the task was completed */ completed?: string; } /** */ export interface TaskResponse { /** A unique GUID for the task */ id: string; /** The company that owns this task */ owner: IdNameType; /** The user that created this task (optional) */ user?: IdName; /** A number of entities that are linked to this task */ linked: Array; /** A number of task execution options */ options: TaskOptions; /** The state of the task */ state: 'pending' | 'executing' | 'waiting' | 'success' | 'canceling' | 'canceled' | 'failed' | 'timedout' | 'deferred'; /** Date information */ date: TaskDates; /** The type of the task */ type: string; /** A number of task specific options */ data: Dictionary; /** A number of task specific results */ results?: Dictionary; } /** A list of task items */ export interface TaskListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** The list of task items in this response */ items: Array; } /** */ export interface TaskCreateRequest { /** */ ownerId: string; /** The type of the task */ type: string; /** A number of task execution options */ options: TaskOptions; /** A number of task specific options */ data: Dictionary; } /** */ export interface GeocoderBounds { /** */ top: number; /** */ left: number; /** */ bottom: number; /** */ right: number; } /** */ export interface GeocoderAddress { /** */ country?: string; /** */ province?: string; /** */ town?: string; /** */ suburb?: string; /** */ road?: string; /** */ postcode?: string; } /** A forward geocode search result item */ export interface ForwardGeocodeResult { /** */ type: 'location' | 'keepin' | 'nogo' | 'route' | 'address'; /** */ id?: string; /** */ text: string; /** */ lon: number; /** */ lat: number; /** */ bounds?: GeocoderBounds; /** */ address?: GeocoderAddress; } /** A list of search results */ export interface ForwardGeocodeResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** A reverse geocode search result item */ export interface ReverseGeocodeResult { /** */ type: 'location' | 'keepin' | 'nogo' | 'route' | 'address'; /** */ id?: string; /** */ text: string; /** */ lon: number; /** */ lat: number; /** */ bounds?: GeocoderBounds; /** */ address?: GeocoderAddress; /** */ geometry?: Array; /** speed limit in km/h */ speed?: number; } /** A list of search results */ export interface ReverseGeocodeResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** A GeoJSON structure */ export interface GeoJson { /** The type of GeoJSON geometry */ type: string; /** The coordinates of the geometry */ coordinates: Array>; } /** A route segment */ export interface MapRouteSegment { /** The total distance of the segment, in kilometers */ distance: number; /** The total travel time of the segment, in seconds */ time: number; /** The GeoJSON structure that describes the geometry of the section */ geom: GeoJson; } /** A complete route result */ export interface MapRoute { /** The strategy that was used to calculate the route */ strategy: 'fastest' | 'shortest'; /** One or more segments in the route */ segments: Array; } /** A list of routing results */ export interface MapRouteResponse { /** A list of possible routes for the given coordinates */ routes: Array; } /** */ export interface SslCertificateListItem { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The company for which the ssl certificate was created */ company?: IdNameType; /** The domain of the ssl certificate */ domain?: string; /** The state of the ssl certificate */ state?: 'inactive' | 'active' | 'deleted'; /** The date the entity was last modified */ modifiedDate: string; } /** A list of ssl certificate items */ export interface SslCertificateListResponse { /** total number of records in the result set */ count: number; /** the offset into the result set */ offset: number; /** the max number of items returned in the result set */ limit: number; /** */ items: Array; } /** */ export interface SslCertificateResponse { /** The unique UUID of this entity */ id: string; /** The company entity that owns this entity */ owner: IdNameType; /** The company for which the ssl certificate was created */ company?: IdNameType; /** The domain of the ssl certificate */ domain?: string; /** An optional theme for user of this domain */ theme?: IdName; /** A field for capturing notes about the ssl certificate */ notes?: string; /** The state of the ssl certificate */ state?: 'inactive' | 'active' | 'deleted'; /** entity specific metadata */ entity: EntityInfo; } /** */ export interface SslCertificateCreateRequest { /** The company for which the ssl certificate was created */ company?: IdNameType; /** The domain of the ssl certificate */ domain?: string; /** An optional theme for user of this domain */ theme?: IdName; /** A field for capturing notes about the ssl certificate */ notes?: string; /** The state of the ssl certificate */ state?: 'inactive' | 'active' | 'deleted'; /** The company that owns this ssl certificate */ ownerId: string; } /** */ export interface SslCertificateUpdateRequest { /** The company for which the ssl certificate was created */ company?: IdNameType; /** The domain of the ssl certificate */ domain?: string; /** An optional theme for user of this domain */ theme?: IdName; /** A field for capturing notes about the ssl certificate */ notes?: string; /** The state of the ssl certificate */ state?: 'inactive' | 'active' | 'deleted'; } /** */ export interface SslCertificateValidationResponse { /** */ provisioned: boolean; /** */ verified: boolean; /** */ domain: string; /** */ valid: boolean; /** */ errors: Array; } /** */ export interface SslCertificateProvisionResponse { /** */ domain: string; /** */ success: boolean; /** */ errors?: Array; }