Ascad Yaml
Ascad Yaml
info:
title: Assets V2
description: |
The Assets API allows you to access asset details and the latest asset
telemetry information, such as fuel, location, and service meter readings. You
can:
version: "2.17.1"
contact:
name: Justateam
email: platformservices_justateamgroup@cat.com
url: https://www.cat.com/support
x-cat-confidential-level-oas: 'Caterpillar: Confidential Yellow'
x-cat-api-metadata:
cat-app-troux-id: '14797'
cat-api-internet-facing: 'Yes'
cat-api-sharable: 'Yes'
cat-api-has-web-contents: 'No'
cat-api-base-url: 'https://services.cat.com/catDigital/assets/v2'
cat-api-auth-type: 'oauth_2'
cat-api-is-production: 'Yes'
x-cat-entitlements-metadata:
x-cat-entitlements-serviceOwner: Rabinovich_Eugene@cat.com
x-cat-entitlements-technicalOwner: Husein.Bahrainwala@cat.com
x-cat-entitlements-productOwner: Mosnick_Christina@cat.com
x-cat-entitlements-serviceNow-assignment-group: JustATeam
x-cat-entitlements-teamName: Justateam
x-cat-entitlements-teamEmail: platformservices_justateamgroup@cat.com
servers:
- url: 'https://services.cat.com/catDigital/assets/v2'
tags:
- name: Subscribed Assets
description: |
Asset records provide the latest asset information
such as fuel, service meter reading, location; and asset metadata
such as make, model, dealer, and customer information. This information can
come from a
variety of sources, including telemetry, transactions on the asset (services
or inspections performed),
or user entered.
security:
- catFedLogin: []
- b2cTokenLogin: []
paths:
/assets:
post:
tags:
- Subscribed Assets
summary: Create asset
description: Creates an asset and returns information of created asset.
operationId: createAsset
deprecated: true
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- GET
- addAsset
parameters:
- $ref: '#/components/parameters/partyNumberRequired'
- $ref: '#/components/parameters/X-Cat-User-Preferences'
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
requestBody:
description: Content of asset to be created.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddAssetRequest'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: '#/components/headers/X-Cat-API-Tracking-Id'
content:
application/json:
schema:
$ref: '#/components/schemas/AddAssetResponse'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
put:
tags:
- Subscribed Assets
summary: Create or reactivate asset
description: |
Add an asset to the customer's fleet, or reactivate an existing asset that
was previously deactivated.
You can optionally include updated information in the request body. The
endpoint returns the created or activated
asset information in the response.
**Notes:**
There may be a small delay in adding the newly created or activated assets
to the subscribed assets
endpoints below. Please allow some time for them to process.
requestBody:
description: Content of asset to be added.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddAssetRequest'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: '#/components/headers/X-Cat-API-Tracking-Id'
content:
application/json:
schema:
$ref: '#/components/schemas/AddAssetResponse'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
get:
tags:
- All Assets
summary: Get assets for serial number
description: |
Returns a collection of all active or inactive assets matching the provided
serial number.
operationId: getAllAssetsForSerial
deprecated: true
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- GET
- viewOutboundShares
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/X-Cat-User-Preferences'
- $ref: '#/components/parameters/partyNumber'
- $ref: '#/components/parameters/serialNumberRequired'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
$ref: '#/components/schemas/AllAssetsResponse'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assets/{id}:
get:
tags:
- Subscribed Assets
summary: Get asset details
description: Returns the details for a single asset.
operationId: getAssetResource
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- GET
- viewOutboundShares
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/X-Cat-User-Preferences'
- $ref: '#/components/parameters/partyNumber'
- $ref: '#/components/parameters/assetCustomerPartyNumber'
- $ref: '#/components/parameters/downSelectPartyNumber'
- $ref: '#/components/parameters/id'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
$ref: '#/components/schemas/Asset'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
patch:
tags:
- Subscribed Assets
summary: Deactivate asset by ID
description: |
Deactivates a specified asset, by removing the asset from user's active
asset population.
Removing an asset does not perform a hard-delete.
**Notes:**
There may be a small delay in removing the newly deactivated asset from the
subscribed assets
endpoints. Please allow some time for it to process.
parameters:
- $ref: '#/components/parameters/X-Cat-User-Preferences'
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/partyNumber'
requestBody:
description: Content of asset to be updated.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchAssetRequest'
responses:
204:
$ref: '#/components/responses/204NoContent'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assets/bulkUpdate:
post:
tags:
- Subscribed Assets
summary: Update custom asset fields
description: |
Update editable fields on multiple assets in bulk. This request acts as a
PATCH style request,
updating only the fields that are specified in the request. If some updates
fail, the successful
updates will persist and a 400 error response will be returned. The asset
IDs of the failed assets will
be returned, possibly including an error message detailing why the failure
occurred.
The response 204 No Content indicates all updates succeeded.
requestBody:
description: |
Request containing assets to be updated.
Only fields that are included in the request body for an asset will be
updated.
`id` is required to specify which asset is being updated.
Where `null` is passed in, the corresponding value will be deleted.
If one or more updates within the update list fails, the response object
will contain a list of failed asset IDs and optionally the reason for
failure.
required: true
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/UpdateAssetsRequest'
- $ref: '#/components/schemas/UpdateAssetsRequestDeprecated'
responses:
204:
$ref: '#/components/responses/204NoContent'
400:
$ref: '#/components/responses/400BulkErrorResponse'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assets/search:
post:
tags:
- Subscribed Assets
summary: Search assets
description: |
Returns a collection of assets. You can use advanced filtering
criteria and order results.
operationId: getAssetsCollectionPost
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- GET
- viewOutboundShares
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/X-Cat-User-Preferences'
- $ref: '#/components/parameters/partyNumber'
- $ref: '#/components/parameters/downSelectPartyNumber'
- $ref: '#/components/parameters/applicationSubscriptionName'
- $ref: '#/components/parameters/sortBy'
- $ref: '#/components/parameters/orderBy'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/limitSearch'
- $ref: '#/components/parameters/skipSearch'
requestBody:
description: List of filtering criteria to narrow down result set.
required: false
content:
application/json:
schema:
$ref:
'#/components/schemas/FiltersAndSearchResponseAttributesRequest'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
$ref: '#/components/schemas/Assets'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assets/export:
post:
tags:
- Subscribed Assets Export
summary: Export asset data
description: |
Triggers data export and returns a unique file identifier registered
in the Storage Service that can then be used to download the export
file. For more information, see the Storage Service API documentation.
operationId: exportAssetsCollectionPost
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- GET
- viewOutboundShares
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/X-Cat-User-Preferences'
- $ref: '#/components/parameters/partyNumberRequired'
- $ref: '#/components/parameters/downSelectPartyNumber'
- $ref: '#/components/parameters/sortBy'
- $ref: '#/components/parameters/orderBy'
- $ref: '#/components/parameters/format'
requestBody:
description: List of filtering criteria to narrow down the result set.
required: false
content:
application/json:
schema:
$ref:
'#/components/schemas/FiltersAndExportResponseAttributesRequest'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
$ref: '#/components/schemas/ExportMetadata'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assets/COUNT:
post:
tags:
- Subscribed Assets
summary: Count assets for filtering criteria
description: |
Calculates how many assets will be returned for a given set of filtering
criteria. It is possible to provide multiple filtering criteria. An asset
has to satisfy all criteria in order to be counted. Each filter can have
multiple allowed values (several vehicle models, for example). Asset
will be selected in case at least one of the values matches, i.e.,
there is an OR operator between allowed values.
operationId: getAssetCount
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- GET
- viewOutboundShares
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/X-Cat-User-Preferences'
- $ref: '#/components/parameters/partyNumber'
- $ref: '#/components/parameters/downSelectPartyNumber'
requestBody:
description: List of filtering criteria to narrow down result set.
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/Filters'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
$ref: '#/components/schemas/Count'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/unenrolledAssets/search:
post:
tags:
- Asset Enrollment
summary: Search unenrolled assets
description: |
Returns a collection of unenrolled assets. You can use advanced filtering
criteria and order results.
operationId: getUnenrolledAssetsCollectionPost
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- GET
- viewOutboundShares
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/X-Cat-User-Preferences'
- $ref: '#/components/parameters/enrolleeOrganization'
- $ref: '#/components/parameters/sortBy'
- $ref: '#/components/parameters/orderBy'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/limitSearch'
- $ref: '#/components/parameters/skipSearch'
requestBody:
description: List of filtering criteria to narrow down result set.
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/Filters'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
$ref: '#/components/schemas/UnenrolledAssets'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/facets/{propertyName}/summary:
post:
tags:
- Subscribed Assets Facets
summary: Get property summary
description: |
Returns all available distinct values and number of assets for
a given asset property.
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/X-Cat-User-Preferences'
- $ref: '#/components/parameters/partyNumber'
- $ref: '#/components/parameters/downSelectPartyNumber'
- $ref: '#/components/parameters/propertyName'
- $ref: '#/components/parameters/includeFilteredOutFacetValues'
- $ref: '#/components/parameters/facetSortBy'
- $ref: '#/components/parameters/orderBy'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/skip'
requestBody:
description: List of filtering criteria to narrow down result set.
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/Filters'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
$ref: '#/components/schemas/FacetValueSummaries'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/facets/limitedSummary:
post:
tags:
- Subscribed Assets Facets
summary: Get filters summary
description: |
For each requested filter key returns available values and number of assets
that have them.
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/X-Cat-User-Preferences'
- $ref: '#/components/parameters/partyNumber'
- $ref: '#/components/parameters/downSelectPartyNumber'
- $ref: '#/components/parameters/propertyNames'
- $ref: '#/components/parameters/includeFilteredOutFacetValues'
- $ref: '#/components/parameters/facetSortBy'
- $ref: '#/components/parameters/orderBy'
- name: filterValuePerKeyLimit
in: query
description: Number of filter value records to return for a single filter
key.
required: false
schema:
type: integer
default: 20
minimum: 1
maximum: 1000
requestBody:
description: List of filtering criteria to narrow down result set.
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/Filters'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
$ref: '#/components/schemas/FacetSummaries'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assets/import:
post:
operationId: importAssets
tags:
- Import
summary: Import assets
description: |
Registers an manual assets or custom asset state import request based on s3
data and schedules it to be processed in the background.
The data files must be uploaded to s3 before import.
Contact the API team for more information.
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- import
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
requestBody:
description: Import file information.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ImportRequest'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: '#/components/headers/X-Cat-API-Tracking-Id'
content:
application/json:
schema:
$ref: '#/components/schemas/ImportResponse'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assets/import/bulkUpsert:
post:
operationId: bulkUpsertAssets
tags:
- Import
summary: Upsert assets
description: |
Bulk insert new manual assets or update existing manual assets.
For creating new manual assets, `makeName` will be required. If
`odometerReading` provided in request body,
`odometerReadingUnitOfMeasure` will also be required.
For updating existing manual assets, it will update the field to empty that
not passed in the request body.
`make` and `serialNumber` cannot be updated.
If one or more manual assets creates or updates fail, the response will
include a list of failed records.
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- import
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
requestBody:
description: Content of manual assets to be updated or inserted.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertRequest'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: '#/components/headers/X-Cat-API-Tracking-Id'
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertResponse'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assets/import/{importId}/status:
get:
operationId: getImportStatus
tags:
- Import
summary: Get import status
description: Return the status and the result of the manual assets or custom
asset state import request.
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- importStatus
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: "#/components/parameters/importId"
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: '#/components/headers/X-Cat-API-Tracking-Id'
content:
application/json:
schema:
$ref: '#/components/schemas/ImportStatusResponse'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/removalReasons:
get:
tags:
- Asset Removal Reasons
summary: Get removal reasons
description: Returns a static list of asset removal reasons, translated based
on user preferences.
operationId: getRemovalReasons
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Green'
x-cat-entitlements-enforced: true
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/X-Cat-User-Preferences'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
$ref: '#/components/schemas/RemovalReasonsResponse'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assetRegistration/assets/search:
post:
tags:
- Asset Management
summary: Search Subscribed and Unsubscribed Assets
description: |
Returns a collection of assets with or without an active subscription along
with a `non obsolete` association.
You can use advanced filtering criteria and order results.
It is possible to provide multiple filtering criteria. An asset
has to satisfy all criteria in order to be returned. Each filter can have
multiple allowed values (several vehicle serial numbers, for example).
Asset
will be selected in case at least one of the values matches, i.e.,
there is an OR operator between allowed values.
operationId: getSubscribedAndUnsubscribedAssets
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- viewAllAssets
- viewCustomerAssets
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/X-Cat-User-Preferences'
- $ref: '#/components/parameters/partyNumber'
- $ref: '#/components/parameters/downSelectPartyNumber'
- $ref: '#/components/parameters/sortByForSubscribedAndUnsubscribedAssets'
- $ref: '#/components/parameters/lookupDealerMakeByPartyNumber'
- $ref: '#/components/parameters/orderBy'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/skip'
requestBody:
description: List of filtering criteria to narrow down result set.
required: true
content:
application/json:
schema:
$ref:
'#/components/schemas/FiltersAndSearchResponseAttributesRequestForAssetRegistration
'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
$ref: '#/components/schemas/SubscribedAndUnsubscribedAssets'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assetRegistration/assets/COUNT:
post:
tags:
- Asset Management
summary: Count Subscribed and Unsubscribed Assets
description: |
Calculates how many assets with or without an active subscription along
with a `non obsolete` association
will be returned for a given set of filtering criteria.
It is possible to provide multiple filtering criteria. An asset
has to satisfy all criteria in order to be counted. Each filter can have
multiple allowed values (several vehicle serial numbers, for example).
Asset
will be selected in case at least one of the values matches, i.e.,
there is an OR operator between allowed values.
operationId: getSubscribedUnsubscribedAssetsCount
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- viewAllAssets
- viewCustomerAssets
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/partyNumber'
- $ref: '#/components/parameters/downSelectPartyNumber'
requestBody:
description: List of filtering criteria to narrow down result set.
required: true
content:
application/json:
schema:
$ref:
'#/components/schemas/FiltersForSubscribedAndUnsubscribedAssets'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
$ref: '#/components/schemas/Count'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assetRegistration/assets:
post:
tags:
- Asset Management
summary: Create asset registration
description: |
Add an asset to the customer's fleet. The endpoint returns the created
asset's information in the response.
The asset is immediately available for query via the search end point even
though `canonization`
may take additional processing time. If the persona is a customer, the
asset is also immediately available
for search via the `Subscribed Assets` search endpoint.
operationId: createUnsubscribedAsset
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- viewAllAssets
- viewCustomerAssets
- addAsset
parameters:
- $ref: '#/components/parameters/partyNumberRequired'
- $ref: '#/components/parameters/makeCodeRequired'
- $ref: '#/components/parameters/serialNumberRequired'
- $ref: '#/components/parameters/ucidOptional'
- $ref: '#/components/parameters/dealerCode'
- $ref: '#/components/parameters/dcn'
- $ref: '#/components/parameters/notifyDealerCode'
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
requestBody:
description: Content of customer asset to be added.
required: true
content:
application/json:
schema:
$ref:
'#/components/schemas/AddUpdateAssetRequestForAssetRegistration'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: '#/components/headers/X-Cat-API-Tracking-Id'
content:
application/json:
schema:
$ref:
'#/components/schemas/AddUpdateAssetResponseForAssetRegistration'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
put:
tags:
- Asset Management
summary: Update asset metadata
description: |
Update an asset in the customer's fleet. The endpoint returns the updated
asset's information in the response.
Updates to the asset are immediately available for query via the search end
points even though `canonization`
may take additional processing time.
operationId: updateUnsubscribedAsset
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- viewAllAssets
- viewCustomerAssets
- update
parameters:
- $ref: '#/components/parameters/partyNumberRequired'
- $ref: '#/components/parameters/makeCodeRequired'
- $ref: '#/components/parameters/serialNumberRequired'
- $ref: '#/components/parameters/ucidOptional'
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
requestBody:
description: Content of asset to be updated.
required: true
content:
application/json:
schema:
$ref:
'#/components/schemas/AddUpdateAssetRequestForAssetRegistration'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: '#/components/headers/X-Cat-API-Tracking-Id'
content:
application/json:
schema:
$ref:
'#/components/schemas/AddUpdateAssetResponseForAssetRegistration'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assetRegistration/assets/dcdcn:
post:
tags:
- Asset Management
summary: Create DCDCN Association
description: |
Create Dealer Code (DC) and Dealer Customer Number (DCN) Association.
Further, checks and validations will be performed based on user's access
described in entitlements and input parameters.
Note: UCID will be inferred from DealerCode & DCN, if not provided.
operationId: createAssetDcDcn
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- viewAllAssets
- viewCustomerAssets
- update
parameters:
- $ref: '#/components/parameters/partyNumberRequired'
- $ref: '#/components/parameters/makeCode'
- $ref: '#/components/parameters/dealerMakeCode'
- $ref: '#/components/parameters/serialNumberRequired'
- $ref: '#/components/parameters/ucidOptional'
- $ref: '#/components/parameters/dealerCodeRequired'
- $ref: '#/components/parameters/dcnRequired'
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
requestBody:
description: Content of asset's DCDCN to be updated.
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDcdcnRequestForAssetRegistration'
responses:
204:
description: No Content
headers:
X-Cat-API-Tracking-Id:
$ref: '#/components/headers/X-Cat-API-Tracking-Id'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
put:
tags:
- Asset Management
summary: Update DCDCN Association
description: |
Update Dealer Code (DC) and Dealer Customer Number (DCN) Association.
Updating a DCDCN will also automatically change the asset's DCDCN relation
status to `ACTIVE`.
Note: UCID will be inferred from DealerCode & DCN, if not provided.
operationId: updateAssetDcDcn
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- viewAllAssets
- viewCustomerAssets
- update
parameters:
- $ref: '#/components/parameters/partyNumberRequired'
- $ref: '#/components/parameters/makeCode'
- $ref: '#/components/parameters/dealerMakeCode'
- $ref: '#/components/parameters/serialNumberRequired'
- $ref: '#/components/parameters/ucidOptional'
- $ref: '#/components/parameters/dealerCodeRequired'
- $ref: '#/components/parameters/dcnRequired'
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
requestBody:
description: Content of asset's DCDCN to be updated.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateDcdcnRequestForAssetRegistration'
responses:
204:
description: No Content
headers:
X-Cat-API-Tracking-Id:
$ref: '#/components/headers/X-Cat-API-Tracking-Id'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assetRegistration/assets/dcdcn/expire:
post:
tags:
- Asset Management
summary: Expire DCDCN Association
description: |
Expire Dealer Code (DC) and Dealer Customer Number (DCN) Association.
parameters:
- $ref: '#/components/parameters/partyNumberRequired'
- $ref: '#/components/parameters/makeCode'
- $ref: '#/components/parameters/dealerMakeCode'
- $ref: '#/components/parameters/serialNumberRequired'
- $ref: '#/components/parameters/ucidOptional'
- $ref: '#/components/parameters/dealerCodeRequired'
- $ref: '#/components/parameters/dcnRequired'
- $ref: '#/components/parameters/expireAssociatedDcdcn'
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
responses:
204:
description: No Content
headers:
X-Cat-API-Tracking-Id:
$ref: '#/components/headers/X-Cat-API-Tracking-Id'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assetRegistration/assets/dcdcn/search:
post:
tags:
- Asset Management
summary: Search for DCDCN-level Information
description: |
Returns a collection of assets based on the DCDCN-level information.
You can use advanced filtering criteria and order results.
It is possible to provide multiple filtering criteria. An asset
has to satisfy all criteria in order to be returned. Each filter can have
multiple allowed values (several vehicle serial numbers, for example).
Asset
will be selected in case at least one of the values matches, i.e.,
there is an OR operator between allowed values.
operationId: getAssetDcDcnInfo
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- viewAllAssets
- viewCustomerAssets
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/X-Cat-User-Preferences'
- $ref: '#/components/parameters/partyNumber'
- $ref: '#/components/parameters/sortByForDcDcnInfo'
- $ref: '#/components/parameters/orderBy'
- $ref: '#/components/parameters/cursor'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/skip'
requestBody:
description: List of filtering criteria to narrow down result set.
required: true
content:
application/json:
schema:
$ref:
'#/components/schemas/FiltersAndSearchResponseAttributesRequestForAssetDcDcnInfo'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
$ref: '#/components/schemas/AssetDcDcnInfoResponse'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assetRegistration/assets/dcdcn/COUNT:
post:
tags:
- Asset Management
summary: Count by DCDN-level Information
description: |
Calculates how many assets will be returned for a given set of filtering
criteria.
It is possible to provide multiple filtering criteria based on the DCDCN
info. An asset
has to satisfy all criteria in order to be counted. Each filter can have
multiple allowed values (several vehicle serial numbers, for example).
Asset
will be selected in case at least one of the values matches, i.e.,
there is an OR operator between allowed values.
operationId: getAssetDcDcnCount
x-cat-eCustomer-allowed: false
x-cat-eCustomer-responseCode: 403
x-cat-confidential-level-data: 'Caterpillar: Confidential Yellow'
x-cat-entitlements-enforced: true
x-cat-entitlements-registry:
- domain: assetDetail
actions:
- viewAllAssets
- viewCustomerAsset
parameters:
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/partyNumber'
requestBody:
description: List of filtering criteria to narrow down result set.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FiltersForAssetDcDcnInfo'
responses:
200:
description: OK
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
$ref: '#/components/schemas/Count'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assetRegistration/assets/subscriptions:
post:
tags:
- Asset Management
summary: Create CLASS0 Subscription
description: |
Create a CLASS0 application subscription for the customer to provide
visibility of asset.
parameters:
- $ref: '#/components/parameters/partyNumberRequired'
- $ref: '#/components/parameters/makeCodeRequired'
- $ref: '#/components/parameters/serialNumberRequired'
- $ref: '#/components/parameters/notifyDealerCode'
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
- $ref: '#/components/parameters/ucidOptional'
responses:
204:
description: No Content
headers:
X-Cat-API-Tracking-Id:
$ref: '#/components/headers/X-Cat-API-Tracking-Id'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
/assetRegistration/assets/subscriptions/cancel:
post:
tags:
- Asset Management
summary: Cancel CLASS0 Subscription
description: |
Cancel an existing CLASS0 application subscription.
parameters:
- $ref: '#/components/parameters/partyNumberRequired'
- $ref: '#/components/parameters/makeCodeRequired'
- $ref: '#/components/parameters/serialNumberRequired'
- $ref: '#/components/parameters/subscriptionCancelReasonCodeRequired'
- $ref: '#/components/parameters/groupOperationId'
- $ref: '#/components/parameters/X-Cat-API-Tracking-Id'
responses:
204:
description: No Content
headers:
X-Cat-API-Tracking-Id:
$ref: '#/components/headers/X-Cat-API-Tracking-Id'
400:
$ref: '#/components/responses/400BadRequest'
401:
$ref: '#/components/responses/401Unauthorized'
403:
$ref: '#/components/responses/403Forbidden'
404:
$ref: '#/components/responses/404NotFound'
406:
$ref: '#/components/responses/406RequestNotAcceptable'
413:
$ref: '#/components/responses/413PayloadTooLarge'
415:
$ref: '#/components/responses/415UnsupportedMediaType'
429:
$ref: '#/components/responses/429TooManyRequests'
500:
$ref: '#/components/responses/500InternalServerError'
503:
$ref: '#/components/responses/503ServiceUnavailable'
components:
securitySchemes:
catFedLogin:
type: oauth2
description: Authentication using Cat FedLogin and the OAuth 2.0 framework.
flows:
authorizationCode:
authorizationUrl: https://fedlogin.cat.com/as/authorization.oauth2?
pfidpadapterid=OAuthAdapterCCDS
tokenUrl: https://fedlogin.cat.com/as/token.oauth2?
pfidpadapterid=OAuthAdapterCCDS
refreshUrl: https://fedlogin.cat.com/as/token.oauth2?
pfidpadapterid=OAuthAdapterCCDS
scopes: {}
clientCredentials:
tokenUrl: https://fedlogin.cat.com/as/token.oauth2?
pfidpadapterid=OAuthAdapterCCDS
scopes: {}
b2cTokenLogin:
type: oauth2
description: Authentication using B2C token and the OAuth 2.0 framework.
flows:
authorizationCode:
authorizationUrl:
https://cwslogin.b2clogin.com/cwslogin.onmicrosoft.com/oauth2/v2.0/authorize
tokenUrl:
https://cwslogin.b2clogin.com/cwslogin.onmicrosoft.com/B2C_1A_P2_V1_SIGNIN_Prod/
oauth2/v2.0/token
refreshUrl:
https://cwslogin.b2clogin.com/cwslogin.onmicrosoft.com/B2C_1A_P2_V1_SIGNIN_Prod/
oauth2/v2.0/token
scopes: { }
headers:
X-Cat-API-Tracking-Id:
description: A unique ID generated for each response.
required: false
schema:
type: string
format: uuid
example: '33aa372a-a4e4-11ea-bb37-0242ac130002'
parameters:
X-Cat-User-Preferences:
name: X-Cat-User-Preferences
in: header
description: |
Global user preferences for formatting the API response.
You can get the preferences for the user with Cat Digital User Preferences
API.
The value must be passed in as a base64-encoded string.
**Note:** If you do not pass in the user preferences, default formats are
used.
required: false
schema:
type: string
format: byte
example:
ewogICJ1c2VyUHJvdmlkZWQiOiB7CiAgICAiYXNzZXRMYWJlbCI6ICJuYW1lIiwKICAgICJhc3NldExvY2F
0aW9uTGFiZWwiOiAiYWRkcmVzcyIKICB9LAogICJkZWZhdWx0cyI6IHsKICAgICJhc3NldExhYmVsIjogIm
5hbWUiLAogICAgImFzc2V0TG9jYXRpb25MYWJlbCI6ICJhZGRyZXNzIiwKICAgICJsYW5ndWFnZSI6ICJlb
i1VUyIsCiAgICAidGltZVpvbmUiOiAiRXVyb3BlL0xvbmRvbiIsCiAgICAid2luZG93c1RpbWVab25lIjog
IkdNVCBTdGFuZGFyZCBUaW1lIiwKICAgICJ0aW1lRm9ybWF0IjogImhvdXJzMjQiLAogICAgImRhdGVGb3J
tYXQiOiAibW1kZHl5eXkiLAogICAgIm51bWJlckZvcm1hdCI6ICJyYWRpeERvdCIsCiAgICAic3lzdGVtT2
ZNZWFzdXJlbWVudCI6ICJ1c1N0YW5kYXJkIiwKICAgICJ0ZW1wZXJhdHVyZVVuaXQiOiAiRiIsCiAgICAic
HJlc3N1cmVVbml0IjogInBzaSIsCiAgICAiY3VycmVuY3kiOiAiVVNEIgogIH0KfQ== # encoded
string
X-Cat-API-Tracking-Id:
name: X-Cat-API-Tracking-Id
in: header
description: A unique ID generated for each request.
required: false
schema:
type: string
format: uuid
example: 33aa372a-a4e4-11ea-bb37-0242ac130002
id:
name: id
in: path
required: true
description: |
Asset identifier is a concatenated string of below elements:
* Manufacturer code of an asset. Ex. CAT, Third party.
* Serial number of an asset.
* Primary customer identifier or party number.
schema:
$ref: '#/components/schemas/AssetId'
importId:
name: importId
description: Unique ID used to identify the manual assets or custom asset
state import request.
in: path
required: true
schema:
$ref: "#/components/schemas/ImportId"
propertyName:
name: propertyName
in: path
description: Asset properties that can be used for facet search.
required: true
schema:
$ref: '#/components/schemas/AssetPropertiesForFacets'
example: make
partyNumber:
name: partyNumber
in: query
description: |
Party Number represents a customer or a dealer organization that has access
to the Equipment.
This parameter allows the user to act as a member of the organization and
thereby limit access to the selected party.
A user must have permissions to the specified party in order to use this
parameter.
required: false
schema:
$ref: '#/components/schemas/PartyNumber'
example: TD00
assetCustomerPartyNumber:
name: assetCustomerPartyNumber
in: query
description: |
Asset Customer Party Number represents the customer that has access to the
Equipment.
This can be used to filter results when an asset may be associated to
multiple customers.
required: false
schema:
$ref: '#/components/schemas/DownSelectPartyNumber'
example: '2969600765'
deprecated: true
downSelectPartyNumber:
name: downSelectPartyNumber
in: query
description: |
The downSelectPartyNumber parameter allows the user to filter/restrict
results to the selected organization.
required: false
schema:
$ref: '#/components/schemas/DownSelectPartyNumber'
example: '2969600765'
applicationSubscriptionName:
name: applicationSubscriptionName
deprecated: true
in: query
description: |
Filter results to the specified application subscription name.
required: false
schema:
type: string
example: 'APP SUB NAME'
enrolleeOrganization:
name: enrolleeOrganization
in: query
description: |
Party Number of the organization that requested enrollment.
required: true
schema:
$ref: '#/components/schemas/PartyNumber'
example: TD00
partyNumberRequired:
name: partyNumber
in: query
description: |
Party Number represents the organization that has access to the Equipment.
required: true
schema:
$ref: '#/components/schemas/PartyNumber'
example: TD00
makeCodeRequired:
name: makeCode
in: query
description: Make code of the asset.
required: true
schema:
$ref: '#/components/schemas/MakeCode'
example: 'CW1'
makeCode:
name: makeCode
in: query
description: Make code of the asset. For CAT or customer personas, this
parameter is required. For dealer personas, **dealerMakeCode** may be provided
instead.
required: false
schema:
$ref: '#/components/schemas/MakeCode'
dealerMakeCode:
name: dealerMakeCode
in: query
description: 2-character make code specific to a dealer.
required: false
schema:
$ref: '#/components/schemas/DealerMakeCode'
serialNumberRequired:
name: serialNumber
in: query
description: Serial number of the asset.
required: true
schema:
$ref: '#/components/schemas/SerialNumber'
dealerCode:
name: dealerCode
in: query
description: Dealer code of the current assigned dealer.
required: false
schema:
$ref: '#/components/schemas/DealerCode'
dcn:
name: dcn
in: query
description: Dealer Customer Number, unique number of the dealer and customer
association.
required: false
schema:
type: string
example: '12345'
dealerCodeRequired:
name: dealerCode
in: query
description: Dealer code of the current assigned dealer.
required: true
schema:
$ref: '#/components/schemas/DealerCode'
dcnRequired:
name: dcn
in: query
description: Dealer Customer Number, unique number of the dealer and customer
association.
required: true
schema:
type: string
example: '12345'
notifyDealerCode:
name: notifyDealerCode
in: query
description: Dealer code of dealer to be notified for asset addition.
required: false
schema:
$ref: '#/components/schemas/NotifyDealerCode'
ucidOptional:
name: ucid
in: query
description: Universal Customer ID (UCID) of the current assigned customer.
required: false
schema:
$ref: '#/components/schemas/Ucid'
expireAssociatedDcdcn:
name: expireAssociatedDcdcn
in: query
description: |
This parameter enables additional expiry of Dealer Code (DC) and Dealer
Customer Number (DCN) associations that are associated to the same **dealer code**
and **customer asset**.
By default, DCDCN expire will only expire a single record - the provided
dealer code and dealer customer number.
When this parameter is set to true, all other DCDCN associations for the
same asset and the same dealer code will also be expired, if the DCDCN associations
have ownership type of 'owned' or 'unknown'.
required: false
schema:
type: boolean
default: false
example: 'true'
subscriptionCancelReasonCodeRequired:
name: subscriptionCancelReasonCode
in: query
description: Subscription cancel reason code specifies why an asset's
subscription is being cancelled.
required: true
schema:
$ref: '#/components/schemas/RemovalReasonCode'
groupOperationId:
name: groupOperationId
in: query
description: Random UUID passed from UI.
required: false
schema:
$ref: '#/components/schemas/GroupOperationId'
format:
name: format
in: query
description: Export data format.
required: true
schema:
type: string
enum:
- json
- xml
- csv
- xlsx
propertyNames:
name: propertyNames
in: query
description: List of asset properties that can be used for facet search.
required: true
explode: false
schema:
type: array
uniqueItems: true
minItems: 1
items:
$ref: '#/components/schemas/AssetPropertiesForFacets'
example: [make, model]
facetSortBy:
name: sortBy
in: query
description: |
Sort the results by selected value, values should be unique, case-
sensitive.
explode: false
required: false
schema:
type: array
uniqueItems: true
minItems: 1
maxItems: 3
items:
type: string
enum:
- propertyName
- count
- propertyLabel
default:
- propertyName
sortBy:
name: sortBy
in: query
description: |
Sort the results by selected value, values should be unique, case-
sensitive.
explode: false
required: false
schema:
type: array
uniqueItems: true
minItems: 1
maxItems: 3
items:
$ref: '#/components/schemas/AssetPropertiesForSorting'
example: [serialNumber, make, model]
sortByForSubscribedAndUnsubscribedAssets:
name: sortBy
in: query
description: |
Sort the results by selected value, values should be unique, case-
sensitive.
explode: false
required: false
schema:
type: array
uniqueItems: true
minItems: 1
maxItems: 3
items:
$ref:
'#/components/schemas/AssetPropertiesForSortingForSubscribedAndUnsubscribedAssets'
example: [serialNumber, makeCode, model]
sortByForDcDcnInfo:
name: sortBy
in: query
description: |
Sort the results by selected value, values should be unique, case-
sensitive.
explode: false
required: false
schema:
type: array
uniqueItems: true
minItems: 1
maxItems: 3
items:
$ref: '#/components/schemas/AssetPropertiesForSortingDcDcnInfo'
example: [serialNumber, make, model]
lookupDealerMakeByPartyNumber:
name: lookupDealerMakeByDealerPartyNumber
in: query
deprecated: true
description: |
The `lookupDealerMakeByDealerPartyNumber` parameter allows the user to
lookup dealer make info by the specified dealer.
The dealer make code is not considered to be PII information and therefore
no entitlement checks will be performed.
If the parameter is not provided, does not exist or is invalid, then the
response will not contain dealer make info.
required: false
schema:
type: string
example: 'TD00'
orderBy:
name: orderBy
in: query
description: Order the results by ascending or descending.
explode: false
required: false
schema:
type: array
minItems: 1
maxItems: 3
items:
type: string
enum:
- ASC
- DESC
default:
- ASC
cursor:
name: cursor
in: query
description: |
String token that can be used to retrieve next query results page. Skip
this parameter
to load the first page.
required: false
schema:
type: string
example: 'eyJvZmZzZXQiOjF9'
limit:
name: limit
in: query
description: Number of records to return in a single page.
required: false
schema:
type: integer
default: 20
minimum: 1
maximum: 2500
skip:
name: skip
in: query
description: |
Number of records to skip before returning the next page. In case cursor
is provided records will be skipped starting from that cursor position.
required: false
schema:
type: integer
default: 0
minimum: 0
maximum: 1000
example: 100
limitSearch:
name: limit
in: query
description: Number of records to return in a single page.
required: false
schema:
type: integer
default: 20
minimum: 1
maximum: 10000
skipSearch:
name: skip
in: query
description: |
Number of records to skip before returning the next page. In case cursor
is provided records will be skipped starting from that cursor position.
required: false
schema:
type: integer
default: 0
minimum: 0
maximum: 10000
example: 100
includeFilteredOutFacetValues:
name: includeFilteredOutFacetValues
in: query
# This parameter allows an application to show grayed-out facet values.
description: |
An optional parameter that indicates whether filtered out facet values
should be returned in the response.
Enabling this option causes all facet values, even those that would be
normally filtered out by the filter criteria to be returned.
required: false
schema:
type: boolean
default: false
example: true
schemas:
Assets:
description: |
Top level object for returning list of assets. Includes response metadata
with
pagination information.
type: object
properties:
assets:
type: array
items:
$ref: '#/components/schemas/Asset'
responseMetadata:
$ref: '#/components/schemas/ResponseMetadata'
SubscribedAndUnsubscribedAssets:
description: |
Top level object for returning list of subscribed and unsubscribed assets.
Includes response metadata with
pagination information.
type: object
properties:
assets:
type: array
items:
$ref: '#/components/schemas/SubscribedAndUnsubscribedAsset'
responseMetadata:
$ref: '#/components/schemas/ResponseMetadata'
AssetDcDcnInfoResponse:
description: |
Top level object for returning list of assets by DCDN information. Includes
response metadata with
pagination information.
type: object
properties:
assets:
type: array
items:
$ref: '#/components/schemas/AssetDcDcnInfo'
responseMetadata:
$ref: '#/components/schemas/ResponseMetadata'
AddAssetRequest:
type: object
description: |
This object is a request for add asset endpoint. Asset is a term used in
Caterpillar to represent actual
machine (vehicle) and set of devices installed on it. In context of assets
and the Asset List API, an asset's
model also holds latest telemetry information such as latest known
location.
properties:
assetName:
type: string
description: The custom name of the asset provided by user.
example: 'ABC123'
makeCode:
type: string
description: Make code of the asset. If not provided in request, it is
set to default `Z99`.
default: 'Z99'
example: 'CW1'
makeName:
type: string
description: User friendly make name of the asset. If the makeCode is
`Z99`, then this becomes required.
example: 'CAT'
dealerCode:
$ref: '#/components/schemas/DealerCode'
serialNumber:
description: Serial number of the asset. If not provided, an alphanumeric
serial number will be autogenerated.
allOf:
- $ref: '#/components/schemas/SerialNumber'
model:
$ref: '#/components/schemas/Model'
buildYear:
$ref: '#/components/schemas/BuildYear'
productFamilyName:
$ref: '#/components/schemas/ProductFamilyName'
productFamilyCode:
$ref: '#/components/schemas/ProductFamilyCode'
ownership:
$ref: '#/components/schemas/AssetOwnershipTypeOption'
customAssetStatus:
$ref: '#/components/schemas/CustomerDefinedStatusNameDeprecated'
customerDefinedStatusCode:
$ref: '#/components/schemas/CustomerDefinedStatusCode'
hoursReading:
$ref: '#/components/schemas/HoursReadingReading'
hoursReadingLastReportedTime:
$ref: '#/components/schemas/DateTime'
odometerReading:
$ref: '#/components/schemas/OdometerReadingReading'
odometerReadingUnitOfMeasure:
$ref: '#/components/schemas/DistanceUomEnum'
odometerReadingLastReportedTime:
$ref: '#/components/schemas/DateTime'
energyReading:
$ref: '#/components/schemas/EnergyReading'
energyReadingLastReportedTime:
$ref: '#/components/schemas/DateTime'
lifetimeFuelConsumed:
$ref: '#/components/schemas/LifeTimeFuelConsumedReading'
lifetimeFuelConsumedUnitOfMeasure:
$ref: '#/components/schemas/VolumeUomEnumRequest'
lifetimeFuelConsumedLastReportedTime:
$ref: '#/components/schemas/DateTime'
serviceMeterReading:
$ref: '#/components/schemas/ServiceMeterReading'
imageUrl:
$ref: '#/components/schemas/ImageUrl'
imageId:
$ref: '#/components/schemas/ImageId'
locationLatitude:
$ref: '#/components/schemas/Latitude'
locationLongitude:
$ref: '#/components/schemas/Longitude'
locationAddress:
$ref: '#/components/schemas/Address'
locationLastReportedTime:
$ref: '#/components/schemas/DateTime'
AddUpdateAssetRequestForAssetRegistration:
type: object
description: |
This object is a request for update asset endpoint. Asset is a term used in
Caterpillar to represent actual
machine (vehicle) and set of devices installed on it. In context of assets
and the Asset List API, an asset's
model also holds latest telemetry information such as latest known
location.
AddUpdateAssetResponseForAssetRegistration:
description: |
This object is a response for add asset endpoint. Asset is a term used in
Caterpillar to represent actual
machine (vehicle) and set of devices installed on it. In context of assets
and the Asset List API, an asset's
model also holds latest telemetry information such as latest known
location.
allOf:
- $ref: '#/components/schemas/AddUpdateAssetRequestForAssetRegistration'
- type: object
properties:
id:
$ref: '#/components/schemas/AssetId'
customerAssetId:
$ref: '#/components/schemas/CustomerAssetId'
makeCode:
type: string
description: Make code of the asset.
example: 'CW1'
serialNumber:
description: Serial number of the asset. If not provided, an
alphanumeric serial number will be autogenerated.
allOf:
- $ref: '#/components/schemas/SerialNumber'
CreateDcdcnRequestForAssetRegistration:
type: object
minProperties: 1
description: |
This object is the request for create asset DCDCN endpoint.
properties:
ownershipType:
$ref: '#/components/schemas/AssetOwnershipTypeOption'
relationStatus:
$ref: '#/components/schemas/RelationStatusCodeForUpdate'
assetName:
$ref: '#/components/schemas/BaseAssetName'
required:
- ownershipType
UpdateDcdcnRequestForAssetRegistration:
type: object
minProperties: 1
description: |
This object is the request for update asset DCDCN endpoint.
properties:
ownershipType:
$ref: '#/components/schemas/AssetOwnershipTypeOption'
relationStatus:
$ref: '#/components/schemas/RelationStatusCodeForUpdate'
assetName:
$ref: '#/components/schemas/BaseAssetName'
PatchAssetRequest:
type: object
description: |
Request model for the update asset by ID endpoint.
This endpoint should not be used to update custom asset fields.
properties:
assetRemovalInfo:
type: object
properties:
assetVisibilityIndicator:
$ref: '#/components/schemas/AssetVisibilityIndicator'
removalReasonCode:
$ref: '#/components/schemas/RemovalReasonCode'
required:
- assetVisibilityIndicator
- removalReasonCode
required:
- assetRemovalInfo
example:
assetRemovalInfo:
assetVisibilityIndicator: 'inactive'
removalReasonCode: 'SOLD'
AddAssetResponse:
description: |
This object is a request for create asset endpoint. Asset is a term used in
Caterpillar to represent actual machine (vehicle) and set of devices installed on
it. In context of assets and the Asset List API, an asset's model also holds latest
telemetry information such as latest known location.
allOf:
- $ref: '#/components/schemas/AddAssetRequest'
- type: object
properties:
id:
$ref: '#/components/schemas/AssetId'
isSystemGeneratedSerialNumber:
$ref: '#/components/schemas/IsSystemGeneratedSerialNumber'
assetCreateStatusCode:
type: string
description: Indicates state of the newly created asset. Asset State
is 'pending' for all newly created assets. "Complete" for all canonized assets.
example: 'pending'
source:
type: string
description: Source of the newly created asset. Source refers to
either the user (if the records added from Fleet Management UI) or Equipment Data
(if the records added from pipeline). It can also refer to other sources.
example: 'user'
applicationName:
type: string
description: Application Name from Entitlement Header. This is not
user provided data. Available with all request passed through the Apigee Gateway.
example: 'Fleet Management'
createTime:
$ref: '#/components/schemas/DateTime'
Asset:
type: object
description: |
Asset is a term used in Caterpillar to represent actual machine (vehicle)
and set of
devices installed on it. In context of assets and the Asset List API, an
asset's model
also holds latest telemetry information such as latest known location.
properties:
id:
$ref: '#/components/schemas/AssetId'
metadata:
$ref: '#/components/schemas/AssetMetadata'
status:
$ref: '#/components/schemas/AssetStatus'
customerDefinedStatus:
$ref: '#/components/schemas/CustomerDefinedStatus'
ownership:
$ref: '#/components/schemas/AssetOwnership'
dataProvider:
$ref: '#/components/schemas/DataProvider'
device:
$ref: '#/components/schemas/Device'
serviceMeterReading:
$ref: '#/components/schemas/ServiceMeterReading'
odometerReading:
$ref: '#/components/schemas/OdometerReading'
hoursReading:
$ref: '#/components/schemas/HoursReading'
defLevel:
$ref: '#/components/schemas/DefLevelResponse'
fuelLevel:
$ref: '#/components/schemas/FuelLevelResponse'
lifetimeFuelConsumed:
$ref: '#/components/schemas/LifeTimeFuelConsumedResponse'
lifetimeDefConsumed:
$ref: '#/components/schemas/LifeTimeDefConsumedResponse'
lifetimeEnergyGenerated:
$ref: '#/components/schemas/LifeTimeEnergyGenerated'
batteryChargeLevel:
$ref: '#/components/schemas/BatteryChargeLevelResponse'
batteryStatus:
$ref: '#/components/schemas/BatteryStatusResponse'
lifetimeBatteryConsumed:
$ref: '#/components/schemas/LifeTimeBatteryConsumedResponse'
energySourceLevel:
$ref: '#/components/schemas/EnergySourceLevelResponse'
energySourceStatus:
$ref: '#/components/schemas/EnergySourceStatusResponse'
lifetimeEnergySourceConsumed:
$ref: '#/components/schemas/LifeTimeEnergySourceConsumedResponse'
location:
$ref: '#/components/schemas/Location'
utcOffset:
$ref: '#/components/schemas/UtcOffset'
timezoneId:
$ref: '#/components/schemas/TimezoneId'
timezoneShortDisplayName:
$ref: '#/components/schemas/TimezoneShortDisplayName'
sharedAssetIndicator:
$ref: '#/components/schemas/SharedAssetIndicator'
hasCva:
$ref: '#/components/schemas/HasCvaIndicator'
subscriptionClass:
$ref: '#/components/schemas/SubscriptionClass'
subscriptionName:
# todo: when breaking change is allowed, remove subscriptionName
$ref: '#/components/schemas/DeviceSubscription'
subscriptionNameInfo:
$ref: '#/components/schemas/DeviceSubscriptionInfo'
endOfDayReadings:
$ref: '#/components/schemas/EodConfiguration'
security:
$ref: '#/components/schemas/Security'
preferredServiceMeterReading:
$ref: '#/components/schemas/PreferredServiceMeterResponse'
source:
$ref: '#/components/schemas/Source'
orgCustomAttributes:
$ref: '#/components/schemas/OrgCustomAttributes'
subscriptionStatus:
$ref: '#/components/schemas/AssetSubscriptionStatusInfo'
federatedLastReportedTime: # The last reported timestamp amongst all
possible last reported time such as assetStatus, deviceStatus, fuelLevel, defLevel,
etc.
$ref: '#/components/schemas/DateTime'
brand:
$ref: '#/components/schemas/Brand'
rentalInfo:
$ref: '#/components/schemas/RentalInfo'
enginePressure:
$ref: '#/components/schemas/ManifoldPressureReading'
rentalAssetIndicator:
$ref: '#/components/schemas/RentalAssetIndicator'
SubscribedAndUnsubscribedAsset:
type: object
description: |
Asset is a term used in Caterpillar to represent actual machine (vehicle)
and set of
devices installed on it. In context of assets and the Asset List API, an
asset's model
also holds latest telemetry information such as latest known location.
properties:
id:
$ref: '#/components/schemas/AssetId'
customerAssetId:
$ref: '#/components/schemas/CustomerAssetId'
brand:
$ref: '#/components/schemas/Brand'
metadata:
$ref: '#/components/schemas/AssetMetadata'
ownership:
$ref:
'#/components/schemas/AssetOwnershipForSubscribedAndUnsubscribedAsset'
validationInfo:
$ref: '#/components/schemas/AssetValidationInfo'
customServiceMeterReading:
$ref: '#/components/schemas/CustomServiceMeterReading'
hasActiveDcdcn:
$ref: '#/components/schemas/HasActiveDcdcn'
isManualAsset:
$ref: '#/components/schemas/IsManualAsset'
sharedAssetIndicator:
$ref: '#/components/schemas/SharedAssetIndicator'
rentalAssetIndicator:
$ref: '#/components/schemas/RentalAssetIndicator'
AssetDcDcnInfo:
type: object
description: |
Asset is a term used in Caterpillar to represent actual machine (vehicle)
and set of
devices installed on it. This specific model holds DCDCN information
relevant to a given asset.
properties:
id:
$ref: '#/components/schemas/AssetId'
customerAssetId:
$ref: '#/components/schemas/CustomerAssetId'
brand:
$ref: '#/components/schemas/Brand'
metadata:
type: object
description: Basic asset metadata information.
properties:
serialNumber:
type: string
description: Serial number of the asset.
example: HL1223
name:
type: string
description: The name of the asset defined by default for the
customer or dealer.
example: ABC123
makeInfo:
$ref: '#/components/schemas/MakeInfo'
model:
$ref: '#/components/schemas/Model'
modelYear:
$ref: '#/components/schemas/ModelYear'
icon:
$ref: '#/components/schemas/Icon'
ownership:
type: object
description: Ownership details of the asset.
properties:
ucid:
$ref: '#/components/schemas/Ucid'
ucidName:
$ref: '#/components/schemas/UcidName'
ownershipType:
$ref: '#/components/schemas/AssetOwnershipType'
customerRelationStatus:
$ref: '#/components/schemas/RelationStatus'
baseAssetName:
$ref: '#/components/schemas/BaseAssetName'
dealerAssociation:
$ref: '#/components/schemas/AssociationForAssetDcDcnInfo'
UnenrolledAssets:
description: |
Top level object for returning list of unenrolled assets. Includes minimal
metadata to allow for enrollment
with pagination information.
type: object
properties:
assets:
type: array
items:
$ref: '#/components/schemas/UnenrolledAsset'
responseMetadata:
$ref: '#/components/schemas/ResponseMetadata'
UnenrolledAsset:
type: object
description: |
Asset is a term used in Caterpillar to represent actual machine (vehicle)
and set of
devices installed on it.
properties:
id:
$ref: '#/components/schemas/AssetId'
metadata:
type: object
description: Asset metadata information.
properties:
serialNumber:
description: Serial number of the asset.
type: string
example: '2WS23456'
makeInfo:
$ref: '#/components/schemas/MakeInfo'
ownership:
$ref: '#/components/schemas/UnenrolledAssetOwnership'
AllAssetsResponse:
description: |
Top level object for returning list of active/inactive assets.
type: object
properties:
assets:
type: array
items:
$ref: '#/components/schemas/AllAssetItemResponse'
AllAssetItemResponse:
type: object
description: |
Asset information exposed through the AllAssets endpoint is limited.
This model contains a subset of Asset information.
properties:
id:
$ref: '#/components/schemas/AssetId'
metadata:
$ref: '#/components/schemas/AssetMetadata'
customerDefinedStatus:
$ref: '#/components/schemas/CustomerDefinedStatus'
ownership:
$ref: '#/components/schemas/AssetOwnership'
serviceMeterReading:
$ref: '#/components/schemas/ServiceMeterReading'
lifetimeFuelConsumed:
$ref: '#/components/schemas/LifeTimeFuelConsumedResponse'
lifetimeEnergyGenerated:
$ref: '#/components/schemas/LifeTimeEnergyGenerated'
odometerReading:
$ref: '#/components/schemas/OdometerReading'
hoursReading:
$ref: '#/components/schemas/HoursReading'
location:
$ref: '#/components/schemas/Location'
assetVisibilityIndicator:
$ref: '#/components/schemas/AssetVisibilityIndicator'
brand:
$ref: '#/components/schemas/Brand'
PartyNumber:
type: string
description: |
Party Number represents a customer or a dealer organization that has access
to the Equipment.
example: 'TD00'
DownSelectPartyNumber:
type: string
description: |
The downSelectPartyNumber parameter allows the user to filter/restrict
results to the selected organization.
example: '2969600765'
AssetId:
type: string
description: |
Asset identifier is a concatenated string of below elements:
* Manufacturer code of an asset. Ex. CAT, Third party.
* Serial number of an asset.
* Primary customer identifier or party number.
example: 'CAT&pipe;PVP64103&pipe;2969600765'
CustomerAssetId:
type: string
description: |
Customer Asset identifier is a concatenated string of below elements:
* Manufacturer code of an asset. Ex. CAT, Third party.
* Serial number of an asset.
* Primary customer identifier or party number.
example: 'CAT&pipe|PVP64103&pipe|2969600765'
AssetMetadata:
type: object
description: Asset meta information.
properties:
serialNumber:
type: string
description: Serial number of the asset.
example: 2WS23456
make:
# todo: when breaking change is allowed, remove property make and rename
makeInfo to make
deprecated: true
type: string
description: Make code of the asset.
example: CW1
makeInfo:
$ref: '#/components/schemas/MakeInfo'
model:
$ref: '#/components/schemas/Model'
name:
type: string
description: The name of the asset defined by default for the customer or
dealer.
example: ABC123
iconUrl:
deprecated: true
type: string
description: URL of the default or customer-uploaded image of the asset.
format: uri
example: https://s7d2.scene7.com/is/image/Caterpillar/C830064
icon:
$ref: '#/components/schemas/Icon'
productFamily:
$ref: '#/components/schemas/ProductFamily'
modelYear:
$ref: '#/components/schemas/ModelYear'
type:
$ref: '#/components/schemas/AssetType'
energyType:
$ref: '#/components/schemas/EnergyType'
supportChannel:
$ref: '#/components/schemas/SupportChannel'
MakeInfo:
type: object
description: |
Make info for an asset, including make code and make name.
properties:
code:
$ref: '#/components/schemas/MakeCode'
name:
$ref: '#/components/schemas/MakeName'
DealerMakeInfo:
type: object
deprecated: true
description: |
Dealer Make info for an asset, includes make code.
properties:
code:
$ref: '#/components/schemas/DealerMakeCode'
MakeCode:
type: string
description: Make code of the asset.
example: 'CW1'
MakeName:
type: string
description: User friendly make name of the asset.
example: 'CAT'
CustomMakeName:
type: string
description: User friendly make name of the asset. Make name is editable for
assets of all make codes.
example: 'CAT'
DealerMakeCode:
type: string
description: Two character make code of the asset set by the dealer.
example: 'CW'
Ucid:
type: string
description: Universal Customer ID (UCID) of the current assigned customer.
example: '25669890'
UcidName:
type: string
description: The name of the current assigned customer.
example: Waste Management
DealerName:
type: string
description: Name of the current assigned dealer.
example: 'Holt'
DealerCode:
type: string
description: Dealer code of the current assigned dealer.
example: 'TD00'
NotifyDealerCode:
type: string
description: Dealer code of dealer to be notified for asset addition.
example: 'TD00'
ProductFamilyName:
type: string
description: Product family name of the asset.
maxLength: 50
example: "Medium and small wheel loaders"
BulkUpsertProductFamilyName:
type: string
description: Product family name of the asset.
maxLength: 500
example: "Medium and small wheel loaders"
ProductFamilyCode:
type: string
description: Product family code of asset.
example: "mswl"
Icon:
type: object
description: |
Icon details of the asset. Only one of the two, `imageId` or `imageUrl` is
returned.
`ImageUrl` is returned only when `imageId` is not available.
properties:
imageId:
$ref: '#/components/schemas/ImageId'
imageUrl:
$ref: '#/components/schemas/ImageUrl'
ImageId:
type: string
description: ID of the image.
format: uuid
example: '962c8d95-18a2-4e9c-9961-712129389ef8'
ImageUrl:
type: string
description: URL of the default or customer-uploaded image of the asset.
format: uri
example: https://s7d2.scene7.com/is/image/Caterpillar/C830064
ProductFamily:
type: object
description: |
Product family describes the general type of assets. Usually it is a
combination of many models. For example, all models of asphalt pavers
are included in the 'Asphalt Pavers' product family.
properties:
code:
type: string
description: Product family code.
example: mwl
name:
type: string
description: Name of product family.
example: Medium wheel loader
iconUrl:
type: string
description: Url of the default image of the product family.
format: uri
example: https://services.cat.com/images/2WS23456.png
ModelYear:
type: integer
minimum: 0
pattern: '\d{4}'
description: Model year of the asset.
example: 2006
AssetTypeCode:
type: string
description: Type code of the asset.
example: ICE
EnergyType:
type: string
description: Energy type of the asset.
example: ELECTRIC
SupportChannel:
type: string
description: Support channel of the asset.
example: GENERIC
AssetStatus:
type: object
description: |
For telematics-enabled assets, asset status indicates the current state
of asset, i.e., whether the asset is currently on, off, or in some other
state.
properties:
code:
type: string
description: Status code of the asset.
example: inTransit
name:
type: string
description: |
Name of the asset status (represents actual status string in default
language - ‘English’).
example: In Transit
lastReportedTime:
$ref: '#/components/schemas/DateTime'
AssetType:
type: object
description: |
This attribute describes the type of an asset w.r.t to it's energy source.
E.g. ICE or Internal Combustion Engine.
properties:
code:
$ref: '#/components/schemas/AssetTypeCode'
AssetOwnership:
type: object
description: Ownership details of the asset.
properties:
type:
deprecated: true
description: Deprecated. Use ownershipType nested property instead.
allOf:
- $ref: '#/components/schemas/AssetOwnershipTypeDeprecated'
ownershipType:
$ref: '#/components/schemas/AssetOwnershipType'
servicingDealers:
type: array
description: This list consists of servicing dealers for the asset.
items:
$ref: '#/components/schemas/ServicingDealer'
associations:
type: array
description: |
This list consists of **subscribing** dealers and their dealer customer
numbers (DCNs) for
customer records.
items:
$ref: '#/components/schemas/Association'
baseOwnershipType:
$ref: '#/components/schemas/BaseAssetOwnershipType'
UnenrolledAssetOwnership:
type: object
description: Ownership details of the asset.
properties:
type:
deprecated: true
description: Deprecated. Use ownershipType nested property instead.
allOf:
- $ref: '#/components/schemas/AssetOwnershipTypeDeprecated'
ownershipType:
$ref: '#/components/schemas/AssetOwnershipType'
associations:
type: array
description: |
This list consists of customers associated with the asset.
items:
$ref: '#/components/schemas/UnenrolledAssociation'
AssetOwnershipForSubscribedAndUnsubscribedAsset:
type: object
description: Ownership details of the asset.
properties:
ucid:
$ref: '#/components/schemas/Ucid'
ucidName:
$ref: '#/components/schemas/UcidName'
ownershipType:
$ref: '#/components/schemas/AssetOwnershipType'
baseAssetName:
$ref: '#/components/schemas/BaseAssetName'
customAssetName:
type: string
description: The custom name of the asset.
example: ABC123
customerRelationStatus:
$ref: '#/components/schemas/RelationStatus'
dcnFederatedRelationStatus:
$ref: '#/components/schemas/DcnRelationStatus'
hasSubscription:
description: An indicator of whether customer asset has an active
subscription.
type: boolean
example: true
isVlCustomerSubscriptionActive:
$ref: '#/components/schemas/IsVlCustomerSubscriptionActive'
dealerMakeInfo:
$ref: '#/components/schemas/DealerMakeInfo'
associations:
type: array
description: |
This list consists of **subscribing** dealers and their dealer customer
numbers (DCNs) for
customer records.
items:
$ref:
'#/components/schemas/AssociationForSubscribedAndUnsubscribedAsset'
AssetOwnershipTypeDeprecated:
deprecated: true
type: string
description: |
Deprecated. Use AssetOwnershipType instead.
Ownership type codes of the asset. This indicates the type of ownership and
explains
how the asset is related to the current organization.
- If an asset is shared with another user (shared outbound), the existing
ownership
type will be kept.
- If an asset is shared from another user (shared inbound), the ownership
type will be 'Shared'.
example: owned
AssetOwnershipType:
description: |
Ownership type codes of the asset. This indicates the type of ownership and
explains
how the asset is related to the current organization.
- If an asset is shared with another user (shared outbound), the existing
ownership
type will be kept.
- If an asset is shared from another user (shared inbound), the ownership
type will be 'Shared'.
properties:
code:
type: string
description: Asset ownership type code. Represents actual ownership type
in default
language - ‘English’.
example: Shared
name:
type: string
description: |
Asset ownership name in user's preferred language.
example: Compartido
AssetOwnershipTypeOption:
type: string
description: |
Ownership type codes of the asset. This indicates the type of ownership and
explains
how the asset is related to the current organization. This set of values
allow the
user to update the current ownership type for an asset they can edit.
enum:
- owned
- rental
- leased
- sold
- inventory
- unknown
example: owned
BaseAssetOwnershipType:
description: |
Base ownership type codes of the asset. This indicates the type of
ownership and explains
how the asset is related to the current organization.
properties:
code:
type: string
description: Base asset ownership type code. Represents actual ownership
type in default
language - ‘English’.
example: Shared
AssetValidationInfo:
type: object
description: |
Object containing information regard the different validated indicator
flags and the validation status type for the asset.
properties:
isDealerValidated:
$ref: '#/components/schemas/IsDealerValidated'
isCustomerValidated:
$ref: '#/components/schemas/IsCustomerValidated'
isTransactionValidated:
$ref: '#/components/schemas/IsTransactionValidated'
isCatValidated:
$ref: '#/components/schemas/IsCatValidated'
validationStatusTypeCode:
$ref: "#/components/schemas/ValidationStatusTypeCode"
IsVlCustomerSubscriptionActive:
type: boolean
description: True if visionLink customer subscription is Active.
example: true
IsDealerValidated:
type: boolean
description: True if the customer to asset relationship exists because it was
created/updated from a dealer.
example: true
IsCustomerValidated:
type: boolean
description: True if the customer to asset relationship exists because it was
created/updated from a customer.
example: false
IsTransactionValidated:
type: boolean
description: True if the customer to asset relationship exists because it was
created/updated from transactional data.
example: false
IsCatValidated:
type: boolean
description: True if the customer to asset relationship exists because it was
created/updated from a CAT persona.
example: false
ValidationStatusTypeCode:
type: string
description: The validation status type is an aggregation of the validated
indicators.
nullable: true
enum:
- VALIDATED
- TRANSACTION
- MANUAL
example: VALIDATED
UnenrolledAssociation:
type: object
description: |
Information about the customer associated with the asset.
properties:
ucid:
$ref: '#/components/schemas/Ucid'
ucidName:
$ref: '#/components/schemas/UcidName'
Association:
type: object
description: |
Information about the customer and subscribing dealer associated with the
asset.
A subscribing dealer is the dealer that gets access to the asset's
telemetry data.
properties:
ucid:
$ref: '#/components/schemas/Ucid'
ucidName:
$ref: '#/components/schemas/UcidName'
dealerName:
$ref: '#/components/schemas/DealerName'
dealerCode:
$ref: '#/components/schemas/DealerCode'
dcn:
type: string
description: |
Dealer Customer Number, unique number of the dealer and customer
association.
example: '12345'
dcnName:
type: string
description: |
Dealer Customer Number Name, name of the dealer and customer
association.
example: ABC corporation
ServicingDealer:
type: object
description: |
Information about the dealer servicing the asset.
properties:
dealerName:
$ref: '#/components/schemas/DealerName'
dealerCode:
$ref: '#/components/schemas/DealerCode'
AssociationForSubscribedAndUnsubscribedAsset:
type: object
description: |
Information about the customer and subscribing dealer associated with the
asset.
A subscribing dealer is the dealer that gets access to the asset's
telemetry data.
properties:
dealerName:
$ref: '#/components/schemas/DealerName'
dealerCode:
$ref: '#/components/schemas/DealerCode'
dcn:
type: string
description: |
Dealer Customer Number, unique number of the dealer and customer
association.
example: '12345'
dcnName:
type: string
description: |
Dealer Customer Number Name, name of the dealer and customer
association.
example: ABC corporation
dcnOwnershipType:
$ref: '#/components/schemas/AssetOwnershipType'
dcnOwnershipStartDate:
$ref: '#/components/schemas/DateTime'
dcnRelationStatus:
$ref: '#/components/schemas/DcnRelationStatus'
dcnHasSubscription:
description: An indicator of whether the asset's DCDCN has an active
subscription.
type: boolean
example: true
actionedBy:
$ref: '#/components/schemas/UserInformation'
AssociationForAssetDcDcnInfo:
type: object
description: |
Information about the customer and subscribing dealer associated with the
asset.
A subscribing dealer is the dealer that gets access to the asset's
telemetry data.
properties:
dealerName:
$ref: '#/components/schemas/DealerName'
dealerCode:
$ref: '#/components/schemas/DealerCode'
dcn:
type: string
description: |
Dealer Customer Number, unique number of the dealer and customer
association.
example: '12345'
dcnName:
type: string
description: |
Dealer Customer Number Name, name of the dealer and customer
association.
example: ABC corporation
dcnOwnershipType:
$ref: '#/components/schemas/AssetOwnershipType'
dcnOwnershipStartDate:
$ref: '#/components/schemas/DateTime'
dcnOwnershipUpdateDate:
$ref: '#/components/schemas/DateTime'
dcnRelationStatus:
$ref: '#/components/schemas/DcnRelationStatus'
dcnHasSubscription:
description: An indicator of whether the asset's DCDCN has an active
subscription.
type: boolean
example: true
actionedBy:
$ref: '#/components/schemas/UserInformation'
SharedAssetIndicator:
type: string
description: |
Indicator of whether:
1. asset owner shared the asset with the current party (inbound),
2. current party is the asset owner and shared the asset with another party
(outbound),
3. asset is not shared (none).
enum:
- inbound
- outbound
- none
example: outbound
RentalAssetIndicator:
type: string
description: Indicates rental status of an asset.
enum:
- inbound
- outbound
- none
- returned
example: outbound
HasCvaIndicator:
type: boolean
description: A boolean flag that indicates if an asset has an active CVA
(Customer Value Agreement) associated with it.
example: true
SerialNumber:
type: string
maxLength: 50
description: Serial number of the asset.
example: '2WS23456'
Model:
type: string
description: Model of the asset.
example: '797F'
BuildYear:
type: string
description: |
Formatted string that represents year of manufacture of asset.
pattern: '\d{4}'
example: '2016'
IsSystemGeneratedSerialNumber:
type: boolean
description: Indicates whether the serial number is system generated or not.
example: true
HasActiveDcdcn:
type: boolean
description: Indicates whether customer asset has at least one ACTIVE DCDCN
association.
example: true
IsManualAsset:
type: boolean
description: Indicates whether customer asset has an ACTIVE VL3.0 CLASS0
subscription.
example: true
AssetVisibilityIndicator:
type: string
description: |
Indicates the visibility of an asset.
An inactive asset is not visible in user's active asset population.
example: active
enum:
- active
- inactive
SubscriptionClass:
type: object
description: Subscription class of the asset.
properties:
code:
type: string
description: Subscription class code of the asset.
example: CLASS1
CustomerDefinedStatus:
type: object
description: |
Customer defined status indicates the current state of the asset, as
defined by the
customer, i.e., whether it is in scheduled maintenance, stored for season,
etc.
properties:
name:
$ref: '#/components/schemas/CustomerDefinedStatusName'
code:
$ref: '#/components/schemas/CustomerDefinedStatusCode'
example:
name: allocated
code: ALLOCATED
CustomerDefinedStatusName:
type: string
description: |
Indicates current status of the asset, as defined by the customer. Each
`name` in
`CustomerDefinedStatusName` corresponds to a `code` in
`CustomerDefinedStatusCode`.
example: Allocated
CustomerDefinedStatusNameDeprecated:
deprecated: true
type: string
description: |
Indicates current status of the asset, as defined by the customer. Each
`name` in
`CustomerDefinedStatusName` corresponds to a `code` in
`CustomerDefinedStatusCode`.
enum:
- allocated
- scheduledMaintenance
- unplannedDown
- storedForSeason
- available
- enRoute
example: allocated
CustomerDefinedStatusCode:
type: string
description: |
Status codes associated with customer defined status name. Indicates
current status of
the asset, as defined by the customer.
example: ALLOCATED
enum:
- ALLOCATED
- SCHEDULED_MAINTENANCE
- UNPLANNED_DOWN
- STORED_FOR_SEASON
- AVAILABLE
- EN_ROUTE
DcnRelationStatus:
type: object
description: |
A DCDCN relation status code is the status of the relationship between the
customer/dealer and asset (e.g., "Active", "Expired", Aged, etc).
properties:
name:
type: string
description: |
Indicates current relation status of the customer/dealer with an asset.
example: Active
code:
$ref: '#/components/schemas/DcnRelationStatusCode'
example:
name: Active
code: ACTIVE
RelationStatus:
type: object
description: |
A customer relation status code is the status of the relationship between
the customer/dealer and asset (e.g. "Active", "Expired", Aged, etc).
properties:
name:
type: string
description: |
Indicates current relation status of the customer/dealer with an asset.
example: Active
code:
$ref: '#/components/schemas/RelationStatusCode'
example:
name: Active
code: ACTIVE
RelationStatusCodeForUpdate:
type: string
description: |
Indicates current relation status of the customer/dealer with an asset.
enum:
- ACTIVE
- AGED
- OBSOLETE
- PENDING
example: ACTIVE
DcnRelationStatusCode:
type: string
description: |
Indicates current relation status of the customer/dealer with an asset.
enum:
- ACTIVE
- AGED
- OBSOLETE
- PENDING
- EXPIRED
- EXPIRE-PENDING
example: ACTIVE
RelationStatusCode:
type: string
description: |
Indicates current relation status of the customer/dealer with an asset.
enum:
- ACTIVE
- AGED
- OBSOLETE
- PENDING
- EXPIRED
example: ACTIVE
Device:
type: object
description: Device information.
properties:
type:
type: string
description: |
Device type is the commercial label for a Product Link device to
differentiate the
functionality of the asset device that is transmitting the data.
example: PL542
status:
$ref: '#/components/schemas/DeviceStatus'
deviceRemainingUsefulLife:
$ref: '#/components/schemas/DeviceRemainingUsefulLife'
DeviceStatus:
type: object
description: |
Device status indicates whether an asset has an attached device or not and
what that
device is currently doing (reporting, not reporting, etc).
properties:
code:
type: string
description: Status code of the device.
example: reporting
name:
type: string
description: |
Name of the device status (represents actual status string in default
language - ‘English’).
example: Reporting
lastReportedTime:
$ref: '#/components/schemas/DateTime'
DeviceRemainingUsefulLife:
type: object
description: |
Details about device's remaining useful battery life.
properties:
value:
type: number
description: Value of the device's remaining useful battery life.
minimum: 0.0
maximum: 100.0
example: 12.7
lastReportedTime:
$ref: '#/components/schemas/DateTime'
Location:
type: object
description: |
Location data represented by address and position. Position represented
in GeoJSON format (RFC 7946: https://tools.ietf.org/html/rfc7946).
properties:
source:
$ref: '#/components/schemas/ReadingSource'
lastReportedTime:
$ref: '#/components/schemas/DateTime'
address:
$ref: '#/components/schemas/Address'
position:
$ref: '#/components/schemas/Point'
Latitude:
type: number
description: Latitude of the asset.
format: double
minimum: -90
maximum: 90
example: 37.996163
Longitude:
type: number
description: Longitude of the asset.
format: double
minimum: -180
maximum: 180
example: -82.606389
ServiceMeterReading:
type: string
description: |
Service meter reading contains the preferred vehicle reading value
(odometer, hours, fuel consumed, diesel
exhaust fluid consumed, energy generated). Some vehicles return multiple
readings, specified will be used as
serviceMeterReading.
enum:
- odometerReading
- hoursReading
- fuelReading
- defReading
- energyReading
example: hoursReading
OdometerReading:
type: object
description: Odometer reading data.
properties:
reading:
$ref: '#/components/schemas/OdometerReadingReading'
source:
$ref: '#/components/schemas/ReadingSource'
configurationStatus:
$ref: '#/components/schemas/ConfigurationStatus'
desiredSetting:
$ref: '#/components/schemas/DesiredSetting'
unitOfMeasure:
$ref: '#/components/schemas/DistanceUom'
lastReportedTime:
$ref: '#/components/schemas/DateTime'
OdometerReadingReading:
type: number
description: Value of the Odometer Reading.
format: double
minimum: 0.0
example: 100.5
HoursReading:
type: object
description: Service hours reading data.
properties:
reading:
$ref: '#/components/schemas/HoursReadingReading'
source:
$ref: '#/components/schemas/ReadingSource'
configurationStatus:
$ref: '#/components/schemas/ConfigurationStatus'
desiredSetting:
$ref: '#/components/schemas/DesiredSetting'
unitOfMeasure:
$ref: '#/components/schemas/TimeUom'
lastReportedTime:
$ref: '#/components/schemas/DateTime'
HoursReadingReading:
type: number
description: Service hours reading of the asset.
format: double
minimum: 0.0
example: 34.10
DesiredSetting:
type: object
description: Desired setting is the configuration queued to the device.
properties:
adjustedValue:
type: number
description: The hours or distance the device should adjust to.
format: double
minimum: 0.0
example: 34.1
lastUpdatedTime:
$ref: '#/components/schemas/DateTime'
EodConfiguration:
type: object
description: Object contains end of day configuration.
properties:
configurationStatus:
$ref: '#/components/schemas/ConfigurationStatus'
desiredSetting:
$ref: '#/components/schemas/EndOfDaySettings'
currentSetting:
$ref: '#/components/schemas/EndOfDaySettings'
EndOfDaySettings:
type: object
description: Object contains end of day configuration setting.
required:
- endOfDay
properties:
endOfDay:
$ref: '#/components/schemas/EndOfDay'
eodOverride:
$ref: '#/components/schemas/EodOverride'
EndOfDay:
type: string
description: |
Time for the device to cycle off in UTC. It is represented in 24 hour
format (Hours:Minutes).
pattern: '^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$'
example: '23:59'
EodOverride:
type: boolean
description: |
Indicates the end of day report randomization override. Normally, a
device's EOD report time
is randomized to avoid all devices hitting the gateway at the same time by
changing the
devices EOD time +/- 30 minutes. If the flag is set to true, the
randomization is disabled
for the device.
default: true
example: true
Security:
type: object
description: Security Status data.
properties:
status:
type: string
description: Current security status of the asset.
example: normal
enum:
- normal
- disable
desiredSetting:
$ref: '#/components/schemas/SecurityDesiredSetting'
configurationStatus:
$ref: '#/components/schemas/ConfigurationStatus'
requestCreator:
type: string
description: Identifier of the entity who initiated the security disable
request.
example: 'PIP-11214098'
requestCreatorPartyNumber:
type: string
description: |
Party Number of the entity who initiated the security status change.
example: '2969518742'
requestCreatorPartyType:
type: string
description: Party type of the entity who initiated the security status
change.
example: 'CAT'
requestCreationTime:
$ref: '#/components/schemas/DateTime'
source:
type: string
description: Source of the security status.
example: 'DSP'
SecurityDesiredSetting:
type: object
description: Object contains the security status adjustment value.
properties:
adjustedValue:
type: string
description: Security status the device should adjust to. The
configuration status is `PENDING` if the value is Non-Null.
example: disable
enum:
- normal
- disable
PercentLevelReading:
type: number
description: Level percent.
format: double
minimum: 0.0
maximum: 100.0
example: 15.5
FuelLevelResponse:
type: object
description: Fuel level data.
properties:
reading:
$ref: '#/components/schemas/PercentLevelReading'
source:
$ref: '#/components/schemas/ReadingSource'
lastReportedTime:
$ref: '#/components/schemas/DateTime'
FuelLevelReading:
type: number
description: Current fuel level percent.
format: double
minimum: 0.0
maximum: 100.0
example: 15.5
DefLevelResponse:
type: object
description: Diesel exhaust fluid (DEF) level data.
properties:
reading:
$ref: '#/components/schemas/PercentLevelReading'
source:
$ref: '#/components/schemas/ReadingSource'
lastReportedTime:
$ref: '#/components/schemas/DateTime'
DefLevelReading:
type: number
description: Current Diesel exhaust fluid (DEF) level percent.
format: double
minimum: 0.0
maximum: 100.0
example: 15.9
PressureReading:
description: Pressure reading data of engine manifold.
type: number
format: double
minimum: 0.0
example: 459.0
LifeTimeDefConsumedResponse:
type: object
description: Total Diesel exhaust fluid (DEF) consumed by the vehicle in its
lifetime.
properties:
reading:
type: number
description: Total Diesel exhaust fluid (DEF) consumed by the vehicle in
its lifetime.
format: double
minimum: 0.0
example: 2.0
source:
$ref: '#/components/schemas/ReadingSource'
unitOfMeasure:
$ref: '#/components/schemas/VolumeUomResponse'
lastReportedTime:
$ref: '#/components/schemas/DateTime'
LifeTimeFuelConsumedResponse:
type: object
description: Total Fuel consumed by the vehicle in its lifetime.
properties:
reading:
$ref: '#/components/schemas/LifeTimeFuelConsumedReading'
source:
$ref: '#/components/schemas/ReadingSource'
unitOfMeasure:
$ref: '#/components/schemas/VolumeUomResponse'
lastReportedTime:
$ref: '#/components/schemas/DateTime'
LifeTimeFuelConsumedReading:
type: number
description: Total Fuel consumed by the vehicle in its lifetime.
format: double
minimum: 0.0
example: 15.5
LifeTimeEnergyGenerated:
type: object
description: Total energy generated by the asset in its lifetime.
properties:
reading:
$ref: '#/components/schemas/EnergyReading'
source:
$ref: '#/components/schemas/ReadingSource'
unitOfMeasure:
$ref: '#/components/schemas/EnergyUom'
lastReportedTime:
description: The time when energy reading is reported.
allOf:
- $ref: '#/components/schemas/DateTime'
EnergyReading:
type: number
format: double
description: |
Total energy generated by the asset. Supported values are kWh (kilowatt-
hour).
minimum: 0.0
example: 34.10
BatteryChargeLevelResponse:
type: object
description: Battery Charge level data.
properties:
reading:
$ref: '#/components/schemas/PercentLevelReading'
source:
$ref: '#/components/schemas/ReadingSource'
lastReportedTime:
$ref: '#/components/schemas/DateTime'
BatteryStatusResponse:
type: object
description: Charge status data.
properties:
code:
type: string
description: The code of the asset's charge status.
example: "CHARGING"
name:
type: string
description: |
The name of the asset's charge status type. In some but not all cases,
the name will be translated as per the user's preferred language.
example: "Charging"
lastReportedTime:
$ref: '#/components/schemas/DateTime'
chargeTimeToHundredPercent:
type: object
description: Time to charge to 100 percent.
properties:
reading:
type: number
description: Time to charge to 100 percent.
format: double
minimum: 0.0
example: 34.10
unitOfMeasure:
$ref: '#/components/schemas/TimeUom'
batteryStatusEstimatedWorkingTimeRemaining:
type: object
description: Estimated working time remaining.
properties:
reading:
type: number
description: Estimated working time remaining.
format: double
minimum: 0.0
example: 34.10
unitOfMeasure:
$ref: '#/components/schemas/TimeUom'
batteryStatusStateOfHealth:
type: number
description: Percentage health of the battery.
format: double
minimum: 0.0
example: 34.10
LifeTimeBatteryConsumedResponse:
type: object
description: Total energy generated by the asset in its lifetime.
properties:
reading:
$ref: '#/components/schemas/EnergyReading'
source:
$ref: '#/components/schemas/ReadingSource'
unitOfMeasure:
$ref: '#/components/schemas/EnergyUom'
lastReportedTime:
description: The time when energy reading is reported.
allOf:
- $ref: '#/components/schemas/DateTime'
EnergySourceLevelResponse:
type: object
description: Fuel/Charge level data.
properties:
reading:
$ref: '#/components/schemas/PercentLevelReading'
source:
$ref: '#/components/schemas/ReadingSource'
lastReportedTime:
$ref: '#/components/schemas/DateTime'
EnergySourceStatusResponse:
type: object
description: Asset or Charge status data.
properties:
code:
type: string
description: The code of the asset's status or asset's charge status.
example: "CHARGING"
name:
type: string
description: |
The name of the asset's status or asset's charge status. In some but
not all cases, the name will be translated as per the user's preferred language.
example: "Charging"
lastReportedTime:
$ref: '#/components/schemas/DateTime'
LifeTimeEnergySourceConsumedResponse:
type: object
description: Total battery or fuel consumed by the asset in its lifetime.
properties:
reading:
oneOf:
- $ref: '#/components/schemas/FuelLevelReading'
- $ref: '#/components/schemas/EnergyReading'
source:
$ref: '#/components/schemas/ReadingSource'
unitOfMeasure:
oneOf:
- $ref: '#/components/schemas/VolumeUomResponse'
- $ref: '#/components/schemas/EnergyUom'
lastReportedTime:
description: The time when energy reading is reported.
allOf:
- $ref: '#/components/schemas/DateTime'
CustomMetadata:
type: object
description: |
Custom asset metadata information containing fields that the user can
update.
Any of these fields can be reset or erased by passing in a `null` value.
properties:
customName:
$ref: '#/components/schemas/CustomName'
customProductFamilyCode:
$ref: '#/components/schemas/CustomProductFamilyCode'
customProductFamilyName:
$ref: '#/components/schemas/CustomProductFamilyName'
customCustomerAssociationType:
$ref: '#/components/schemas/CustomCustomerAssociationType'
customServiceMeterReading:
$ref: '#/components/schemas/CustomServiceMeterReading'
customUtcOffset:
$ref: '#/components/schemas/CustomUtcOffset'
customIconUrl:
$ref: '#/components/schemas/CustomIconUrl'
customIconId:
$ref: '#/components/schemas/CustomIconId'
ConfigurationStatus:
type: string
description: |
Configuration change is an asynchronous process, so this goes through
multiple statuses
before it actually gets applied to the device. Only `PENDING` status is
available from this API.
example: PENDING
enum:
- PENDING
UtcOffset:
type: string
description: UTC offset of the asset's local time zone.
example: "+1:00"
TimezoneId:
type: string
description: Java time zone ID of the asset's local time zone.
example: "America/Los_Angeles"
TimezoneShortDisplayName:
type: string
description: |
Timezone display name of the asset's local time zone.
This is not always reliable as CST could mean two things- Central Standard
Time or China Standard Time.
For a reliable timezone, consider the timezone field, which has the java
timezone ID.
example: "CST"
PreferredServiceMeterResponse:
type: object
description: |
The value and timestamp of the asset's preferred service meter reading, as
indicated by the
`serviceMeterReading` property on the asset. For example, if the
`serviceMeterReading` property is `hoursReading`,
then the asset's hour reading and timestamp will populate this field. If
the `serviceMeterReading` property is
`odometerReading`, then the asset's odometer reading and timestamp will
populate this field.
properties:
value:
oneOf:
- $ref: '#/components/schemas/HoursReadingReading'
- $ref: '#/components/schemas/OdometerReadingReading'
- $ref: '#/components/schemas/FuelLevelReading'
- $ref: '#/components/schemas/DefLevelReading'
- $ref: '#/components/schemas/EnergyReading'
example: 15.5
unitOfMeasure:
oneOf:
- $ref: '#/components/schemas/TimeUom'
- $ref: '#/components/schemas/DistanceUom'
- $ref: '#/components/schemas/VolumeUomResponse'
- $ref: '#/components/schemas/EnergyUom'
example:
type: distance
value: mi
time:
$ref: '#/components/schemas/DateTime'
OrgCustomAttributes:
type: object
description: Assets custom attributes.
properties:
field1:
$ref: '#/components/schemas/OrgCustomAttributeField'
field2:
$ref: '#/components/schemas/OrgCustomAttributeField'
field3:
$ref: '#/components/schemas/OrgCustomAttributeField'
field4:
$ref: '#/components/schemas/OrgCustomAttributeField'
field5:
$ref: '#/components/schemas/OrgCustomAttributeField'
field6:
$ref: '#/components/schemas/OrgCustomAttributeField'
field7:
$ref: '#/components/schemas/OrgCustomAttributeField'
field8:
$ref: '#/components/schemas/OrgCustomAttributeField'
field9:
$ref: '#/components/schemas/OrgCustomAttributeField'
field10:
$ref: '#/components/schemas/OrgCustomAttributeField'
field11:
$ref: '#/components/schemas/OrgCustomAttributeField'
field12:
$ref: '#/components/schemas/OrgCustomAttributeField'
OrgCustomAttributeField:
type: string
description: Assets custom attribute field.
example: "CNT1 - CENTRAL 1 EQUIPMENT SERVICES"
Brand:
type: object
description: |
The asset's dealer brand.
properties:
code:
type: string
description: Dealer brand code.
example: 'PKN'
RentalInfo:
type: object
description: Rental Information.
properties:
contractId:
type: string
description: User rental contract ID.
example: "ABCD"
contractStartDate:
$ref: '#/components/schemas/DateTime'
contractEndDate:
$ref: '#/components/schemas/DateTime'
Source:
type: string
deprecated: true
description: The source of an asset's data. Some examples include Cat or
third party data sources.
example: "3PDATA"
DataProvider:
type: string
description: The name of telemetry source of asset. Some examples include
Caterpillar or third party Name.
example: "Caterpillar"
DeviceSubscription:
deprecated: true
type: string
description: The name of the asset's subscription type.
example: "VisionLink Daily"
DeviceSubscriptionInfo:
type: object
description: |
The asset's subscription type name, and its translation code.
properties:
code:
type: string
description: The translation code of the asset's subscription type.
example: "VisionLink Daily"
name:
type: string
description: |
The name of the asset's subscription type. In some but not all cases,
the name will be translated as per the user's preferred language.
example: "VisionLink Daily"
BaseAssetName:
type: string
maxLength: 60
description: The canonical name of the asset.
example: 'ABC123'
CustomName:
type: string
description: The custom name of the asset defined by the customer or dealer.
example: "Excavator #1"
CustomProductFamilyCode:
type: string
description: Custom product family code.
example: "mswl"
CustomProductFamilyName:
type: string
description: Custom product family name.
maxLength: 50
example: "Medium and small wheel loaders"
CustomCustomerAssociationType:
description: Custom customer association type.
allOf:
- $ref: '#/components/schemas/AssetOwnershipTypeOption'
CustomServiceMeterReading:
description: Preferred service meter reading for asset.
allOf:
- $ref: '#/components/schemas/ServiceMeterReading'
CustomTimezone:
deprecated: true
type: string
description: |
Timezone ID that can be used by the service hosted in a Linux based
environment.
The list of supported timezones will be limited by the timezones database
and also
can be retrieved from userPreferences API.
For more information, see: https://en.wikipedia.org/wiki/Tz_database.
example: 'Europe/London'
CustomUtcOffset:
type: string
description: |
Custom UTC offset of the asset's local time zone to be used if the default
is not set.
Values must be in the range between -12:00 and +14:00 inclusive.
The minutes field after the `:` ranges from 00 - 59.
Valid examples include: "-12:00", "14:00", "00:00", "-09:00", "1:00",
"1:45".
Invalid values include: "-14:00", "00:60", "+12:00:00", "14:01", "00:0059".
pattern: '(^([\-|\+]?(((0?[0-9])|(1[0-1])):[0-5][0-9]|12:00))$)|(^([\+])?
((1[2-3]:[0-5][0-9])|(14:00))$)'
example: "+1:00"
CustomIconUrl:
deprecated: true
type: string
description: URL of the custom image of the asset.
format: uri
example: https://s7d2.scene7.com/is/image/Caterpillar/C830064
CustomIconId:
deprecated: true
type: string
description: Custom icon `id`.
example: '962c8d95-18a2-4e9c-9961-712129389ef8'
CustomImageUrl:
type: string
description: URL of the custom image of the asset.
format: uri
example: https://s7d2.scene7.com/is/image/Caterpillar/C830064
CustomImageId:
type: string
description: Custom image `id`.
example: '962c8d95-18a2-4e9c-9961-712129389ef8'
AssetSubscriptionStatusInfo:
type: object
description: |
Subscription status of the code.
properties:
code:
type: string
description: Subscription status code.
example: SUBSCRIBED
enum:
- SUBSCRIBED
- NOT_SUBSCRIBED
name:
type: string
description: |
Name of the subscription status (represents actual status string in
user's preferred language).
example: Subscribed
AssetPropertiesForSorting:
type: string
description: |
Asset properties that can be used for sorting. Sort by name uses the
`customName` field if it exists,
otherwise it uses the `name` field.
Attribute names containing `energySource` return values that are coalesced
between corresponding battery and fuel attributes.
AssetPropertiesForSortingForSubscribedAndUnsubscribedAssets:
type: string
description: |
Asset properties that can be used for sorting. Sort by name uses the
`customAssetName` field if it exists,
otherwise it uses the `name` field.
enum:
- id # Asset Identifier
- customerAssetId # Customer Asset Identifier
- serialNumber
- name # Dealer Asset Name
- icon
- makeCode
- makeName
- model
- productFamilyCode
- productFamilyName
- productFamilyIconUrl
- modelYear
- typeCode
- ownershipTypeCode
- ownershipTypeName
- customerRelationStatusName
- customerRelationStatusCode
- ucidName
- ucid
- brandCode
default: serialNumber
AssetPropertiesForSortingDcDcnInfo:
type: string
description: |
Asset properties that can be used for sorting.
enum:
- serialNumber
- makeCode
- makeName
- model
- dcn
- dealerCode
- ucid
- customerAssetId
- ucidName
default: serialNumber
AssetPropertiesForFacets:
type: string
description: |
Asset properties that can be used for facet search. Facets for name uses
the `customName`
field if it exists, otherwise it uses the `name` field.
Attribute names containing `energySource` return values that are coalesced
between corresponding battery and fuel attributes.
AssetPropertiesForFiltering:
type: string
description: |
Asset properties that can be used for filtering. Filtering by name uses the
`customName`
field if it exists, otherwise it uses the `name` field.
Attribute names containing `energySource` return values that are coalesced
between corresponding battery and fuel attributes.
AssetPropertiesForFilteringForSubscribedAndUnsubscribedAssets:
type: string
description: |
Asset properties that can be used for filtering. Filtering by name uses the
`customAssetName`
field if it exists, otherwise it uses the `name` field.
AssetPropertiesForFilteringForAssetDcDcnInfo:
type: string
description: |
Asset properties that can be used for filtering.
enum:
- id # Asset Identifier
- serialNumber
- customerAssetId
- name
- makeCode
- dealerCode
- ucid
- ownershipTypeCode
- dcnName
- dcn
- dcnOwnershipTypeCode
- dcnOwnershipTypeName
- dcnRelationStatusCode
ResponseMetadata:
type: object
description: |
The response metadata object contains the next cursor token for paginating
the
result set.
properties:
nextCursor:
type: string
description: |
Next Cursor - string token that can be used to retrieve next query
results page.
No value is returned if current page is the last one.
example: 'eyJvZmZzZXQiOjF9'
Count:
type: object
description: Response object for count of records that is expected to be
returned by query.
properties:
count:
type: integer
description: Count of records that is expected to be returned by query.
example: 225
UpdateAssetsRequest:
type: object
description: |
Request model to update multiple assets.
If one or more asset updates fail, the response will include a list of
failed assets.
required:
- assets
properties:
assets:
$ref: '#/components/schemas/UpdateAssetsArray'
UpdateAssetsArray:
type: array
description: |
Array of assets to update in request. There is a maximum
limit of 500 assets to update in one request.
items:
$ref: '#/components/schemas/UpdateAssetModel'
maxItems: 500
UpdateAssetsRequestDeprecated:
type: object
description: |
Request model to update multiple assets.
If one or more asset updates fail, the response will include a list of
failed assets.
required:
- assets
properties:
assets:
$ref: '#/components/schemas/UpdateAssetsArrayDeprecated'
deprecated: true
UpdateAssetsArrayDeprecated:
type: array
description: |
Array of assets to update in request. There is a maximum
limit of 500 assets to update in one request.
items:
$ref: '#/components/schemas/UpdateAssetModelDeprecated'
maxItems: 500
deprecated: true
example:
- id: 'CAT|RXZ00353|2969412354'
customMetadata:
customName: 'my favorite asset'
customProductFamilyCode: 'custom pfc'
customProductFamilyName: 'custom prod family name'
customCustomerAssociationType: 'rental'
customServiceMeterReading: 'fuelReading'
customUtcOffset: '+1:00'
customIconUrl: 'https://s7d2.scene7.com/is/image/Caterpillar/C830064'
customIconId: '962c8d95-18a2-4e9c-9961-712129389ef8'
customerDefinedStatusName: 'allocated'
- id: 'CAT|RXZ00353|2969409876'
customMetadata:
customName: null
customProductFamilyCode: null
customProductFamilyName: null
customCustomerAssociationType: null
customServiceMeterReading: null
customUtcOffset: null
customIconUrl: null
customIconId: null
customerDefinedStatusName: null
UpdateAssetModel:
type: object
description: |
Asset object to include in an update assets request array.
`id` is required to specify which asset is being updated, while at least
one of the rest of the properties
is required to specify which changes to apply.
Where `null` is explicitly passed in, the corresponding value will be
deleted.
required:
- id
properties:
id:
$ref: '#/components/schemas/AssetId'
customName:
$ref: '#/components/schemas/CustomName'
customMakeName:
$ref: '#/components/schemas/CustomMakeName'
customModel:
$ref: '#/components/schemas/Model'
customBuildYear:
$ref: '#/components/schemas/BuildYear'
customProductFamilyCode:
$ref: '#/components/schemas/CustomProductFamilyCode'
customProductFamilyName:
$ref: '#/components/schemas/CustomProductFamilyName'
customCustomerAssociationType:
$ref: '#/components/schemas/CustomCustomerAssociationType'
customerDefinedStatusName:
$ref: '#/components/schemas/CustomerDefinedStatusNameDeprecated'
customerDefinedStatusCode:
$ref: '#/components/schemas/CustomerDefinedStatusCode'
customTimezone:
$ref: '#/components/schemas/CustomTimezone'
customUtcOffset:
deprecated: true
allOf:
- $ref: '#/components/schemas/CustomUtcOffset'
customServiceMeterReading:
$ref: '#/components/schemas/CustomServiceMeterReading'
customIconUrl:
$ref: '#/components/schemas/CustomIconUrl'
customIconId:
$ref: '#/components/schemas/CustomIconId'
ManifoldPressureReading:
type: object
description: Engine pressure data for each manifold.
properties:
manifold1Reading:
$ref: '#/components/schemas/PressureReading'
manifold2Reading:
$ref: '#/components/schemas/PressureReading'
uom:
$ref: '#/components/schemas/PressureUom'
manifold1LastReportedTime:
$ref: '#/components/schemas/DateTime'
manifold2LastReportedTime:
$ref: '#/components/schemas/DateTime'
UpdateAssetModelDeprecated:
type: object
description: |
Asset object to include in an update assets request array.
`id` is required to specify which asset is being updated, while at least
one of `customMetadata`
or `customerDefinedStatusName` is required to specify which changes to
apply.
Where `null` is passed in, the corresponding value will be deleted.
required:
- id
properties:
id:
$ref: '#/components/schemas/AssetId'
customMetadata:
$ref: '#/components/schemas/CustomMetadata'
customerDefinedStatusName:
$ref: '#/components/schemas/CustomerDefinedStatusName'
example:
id: 'CAT|RXZ00353|2969412354'
customMetadata:
customName: 'my favorite asset'
customProductFamilyCode: 'custom pfc'
customProductFamilyName: 'custom prod family name'
customCustomerAssociationType: 'rental'
customServiceMeterReading: 'fuelReading'
customUtcOffset: '+1:00'
customIconUrl: 'https://s7d2.scene7.com/is/image/Caterpillar/C830064'
customIconId: '962c8d95-18a2-4e9c-9961-712129389ef8'
customerDefinedStatusName: 'allocated'
UpdateAssetsPartialFailureResponse:
type: object
description: |
Response object containing a list of failed asset IDs if any failed and
optionally the reason for
failure.
properties:
failedUpdates:
type: array
description: List of failed asset updates, if any occurred.
minItems: 0
maxItems: 500
items:
$ref: '#/components/schemas/FailedUpdate'
example:
$ref: '#/components/examples/UpdateAssetsPartialFailureResponseExample'
FailedUpdate:
type: object
description: One instance of a failed asset update.
required:
- id
properties:
id:
$ref: '#/components/schemas/AssetId'
error:
type: string
description: Error description if possible.
example: 'Asset ID not found'
################################## filters
#####################################
FilterType:
type: string
description: Enum that defines all possible filter types.
enum:
- booleanEquals
- boundingBox
- contains
- endsWith
- floatEquals
- floatRange
- geoBoundary
- groupFilter
- integerEquals
- integerRange
- pointAndRadius
- startsWith
- stringEquals
- timeRange
- isNull
FilterBase:
type: object
description: Base model for all filter types.
required:
- type
- propertyName
properties:
type:
$ref: '#/components/schemas/FilterType'
propertyName:
$ref: '#/components/schemas/AssetPropertiesForFiltering'
NumericFilterBase:
description: |
Base model for all filters that deal with numeric values and
measurements. When user is trying to filter by some measurement value,
they must let the API know the measurement units that the search value
is represented in. For example: for odometer reading user will be able
to filter by values defined in miles or km.
allOf:
- $ref: '#/components/schemas/FilterBase'
- type: object
properties:
unitOfMeasure:
oneOf:
- $ref: '#/components/schemas/DistanceUom'
- $ref: '#/components/schemas/TimeUom'
- $ref: '#/components/schemas/VolumeUomRequest'
- $ref: '#/components/schemas/EnergyUom'
discriminator:
propertyName: type
mapping:
distance: '#/components/schemas/DistanceUom'
time: '#/components/schemas/TimeUom'
volume: '#/components/schemas/VolumeUomRequest'
energy: '#/components/schemas/EnergyUom'
StringFilterBase:
description: Base model for string matching filters.
required:
- value
allOf:
- $ref: '#/components/schemas/FilterBase'
- type: object
properties:
value:
description: Search string.
type: string
minLength: 1
example: 'a'
isCaseSensitive:
description: |
Defines whether string comparison is case-sensitive. String
comparisons are case-insensitive by default
except for identifier columns (ID).
type: boolean
default: false
example: false
example:
type: startsWith
propertyName: make
isCaseSensitive: false
value: cat
StringEqualsFilter:
description: |
Represents a single filtering criteria, i.e., the name of the object field
to filter by and list of possible values. This filter will only select a
row
in case of exact match with one of the values in the provided list.
required:
- values
allOf:
- $ref: '#/components/schemas/FilterBase'
- type: object
properties:
values:
type: array
description: Array of possible filter values.
items:
type: string
minItems: 1
example: [415F2, AP255E]
isCaseSensitive:
description: |
Defines whether string comparison is case-sensitive. String
comparisons are case-insensitive by default
except for identifier columns (ID).
type: boolean
default: false
example: true
example:
type: stringEquals
propertyName: model
isCaseSensitive: true
values: [415F2, AP255E]
IntegerEqualsFilter:
description: |
Represents a single filtering criteria, i.e., name of the object field to
filter by and list of possible values. This filter will select a row
only in case of match with one of the values in the provided list.
required:
- values
allOf:
- $ref: '#/components/schemas/NumericFilterBase'
- type: object
properties:
values:
type: array
description: Array of possible filter values.
items:
type: integer
format: int64
minItems: 1
example: [123, 456]
example:
type: integerEquals
propertyName: hoursReading
values: [123, 456]
unitOfMeasure:
type: time
value: h
FloatEqualsFilter:
description: |
Represents a single filtering criteria, i.e., name of the object field to
filter by and list of possible values. This filter will select a row
only in case of match with one of the values in the provided list.
required:
- values
allOf:
- $ref: '#/components/schemas/NumericFilterBase'
- type: object
properties:
values:
type: array
description: Array of possible filter values.
items:
type: number
format: double
minItems: 1
example: [123.45, 456.78]
precision:
type: integer
description: |
Number of digits after the decimal point that define precision of
the comparison.
minimum: 0
maximum: 16
default: 10
example: 10
example:
type: floatEquals
propertyName: lifeTimeFuelConsumed
precision: 3
values: [123.45, 456.78]
unitOfMeasure:
type: volume
value: usGal
StartsWithFilter:
description: Filter will find all filterValues that start with a given search
string.
allOf:
- $ref: '#/components/schemas/StringFilterBase'
example:
type: startsWith
propertyName: make
isCaseSensitive: false
value: cat
EndsWithFilter:
description: Filter will find all filterValues that end with a given search
string.
allOf:
- $ref: '#/components/schemas/StringFilterBase'
example:
type: endsWith
propertyName: make
isCaseSensitive: true
value: CAT
ContainsFilter:
description: Filter will find all filterValues that contain given search
string.
allOf:
- $ref: '#/components/schemas/StringFilterBase'
example:
type: contains
propertyName: make
isCaseSensitive: false
value: cat
IntegerRangeFilter:
description: |
Allows to filter numeric values within a certain range. See range models
for more info
about boundary inclusion rules.
required:
- range
allOf:
- $ref: '#/components/schemas/NumericFilterBase'
- type: object
properties:
range:
$ref: '#/components/schemas/IntegerRange'
example:
type: integerRange
propertyName: assetDuration
range:
left: 0
right: 10
includeLeft: true
includeRight: false
unitOfMeasure:
type: time
value: h
FloatRangeFilter:
description: |
Allows to filter numeric values within a certain range. See range models
for
more info about boundary inclusion rules.
required:
- range
allOf:
- $ref: '#/components/schemas/NumericFilterBase'
- type: object
properties:
range:
$ref: '#/components/schemas/FloatRange'
example:
type: floatRange
propertyName: lifeTimeFuelConsumed
range:
left: 12.12345
right: 100.75
precision: 5
includeLeft: true
includeRight: false
unitOfMeasure:
type: volume
value: imperialGal
TimeRangeFilter:
description: |
Allows to filter date values within a certain range. See range models for
more info about boundary inclusion rules.
required:
- range
allOf:
- $ref: '#/components/schemas/FilterBase'
- type: object
properties:
range:
$ref: '#/components/schemas/TimeRange'
example:
type: timeRange
propertyName: hoursReadingLastReportedTime
range:
left: '2019-01-01T09:00:00.000+00:00'
right: '2020-12-31T23:59:59.999+00:00'
includeLeft: true
includeRight: false
BoundingBoxFilter:
description: |
Geospatial filter. Allows to search for objects located in a given
bounding box (geographic boundary). This type of filter applies only to
entities that have location.
required:
- northEast
- southWest
allOf:
- $ref: '#/components/schemas/FilterBase'
- type: object
properties:
southWest:
$ref: '#/components/schemas/Point'
northEast:
$ref: '#/components/schemas/Point'
example:
type: boundingBox
propertyName: locationPosition
northEast: [-87.62324, 41.88285]
southWest: [-122.4194, 37.7749]
PointAndRadiusFilter:
description: |
Geospatial filter. Allows to search for object located with certain
radius of a given position on the map. This type of filter applies only
to entities that have location.
required:
- point
- radius
- unitOfMeasure
allOf:
- $ref: '#/components/schemas/FilterBase'
- type: object
properties:
point:
$ref: '#/components/schemas/Point'
radius:
description: Max distance from center point (in distance units).
type: number
format: double
minimum: 0.0
example: 10.0
unitOfMeasure:
$ref: '#/components/schemas/DistanceUom'
example:
type: pointAndRadius
propertyName: locationPosition
point: [-87.62324, 41.88285]
radius: 10.0
unitOfMeasure:
type: distance
value: mi
GeoBoundaryFilter:
description: |
Geospatial filter. Allows to search for objects located in a given
geographic
boundary. See polygon model docs for format and limits. This type of
filter applies only to entities that have location. The only geographic
boundary type currently supported is polygon.
**Note:** this filter does not enforce `Geofence` entitlements.
It only applies the entitlements for the specific domain being called.
required:
- geoBoundary
allOf:
- $ref: '#/components/schemas/FilterBase'
- type: object
properties:
geoBoundary:
$ref: '#/components/schemas/Polygon'
example:
type: geoBoundary
propertyName: locationPosition
geoBoundary:
type: Polygon
coordinates: [[[180.0, 40.0], [180.0, 50.0], [170.0, 50.0], [170.0,
40.0], [180.0, 40.0]]]
BooleanFilter:
description: |
Represents a single filtering criteria, i.e., the name of the object field
to
filter by and a boolean value (true or false).
allOf:
- $ref: '#/components/schemas/FilterBase'
- type: object
properties:
value:
type: boolean
description: Boolean value true or false.
default: true
example:
type: booleanEquals
propertyName: isFavorite
value: true
GroupFilter:
type: object
description: |
A group filter allows to filter entities by membership in a group or by an
inline global filtering criteria.
A group is defined by the Groups API and has either a static list of IDs or
filtering criteria in case the group is dynamic.
The groupId is mandatory. In case the group is a reference to an actual
persisted group, then the group filter will be resolved via group membership.
If the groupFilter attribute is set, it should be a randomly generated ID
that only serves as a place holder for internal tracking.
The group inline filter criteria is strongly typed with two caveats:
1. The propertyNames values are defined in the Filter API specification.
2. Validation is performed in two phases, the structure is validated in
the Asset API, but the propertyNames are validated within Filter API.
required:
- type
- groupId
properties:
type:
description: Filter Type.
type: string
enum: [groupFilter]
example: groupFilter
groupId:
description: Unique identifier of the group.
type: string
format: uuid
groupFilter:
$ref: '#/components/schemas/CrossDomainFilters'
example:
type: groupFilter
groupId: d98ff9bd-3eae-4c5e-9626-be7cf723afb6
groupFilter:
logicalExpression: '!$0 & ($1 | $2) & $3'
filters:
- propertyName: asset_make
type: stringEquals
values: ['CAT', 'JD']
- propertyName: asset_id
type: contains
value: 123
- propertyName: asset_model
type: stringEquals
values: ['415F2', 'AP255E', '9370R', '9470R']
- propertyName: asset_orgCustomAttributesField2
type: stringEquals
isCaseSensitive: true
values: [ 'CNT1 - CENTRAL 1 EQUIPMENT SERVICES', 'CNT1' ]
CrossDomainFilters:
type: object
description: |
Defines filtering criteria. Filtering criteria are formed by filters of
various types (equals, contains, range, etc) combined together in a
logical expression.
If expression is not provided, each filter will be combined with others
using `&` (AND) operator.
CrossDomainFilter:
description: |
Filter set described inside Filters API.
Any filter declared inside Filters API can be used inside the GroupFilter
schema.
type: object
additionalProperties: true
example:
propertyName: asset_make
type: stringEquals
values: ['CAT', 'JD']
IsNullFilter:
description: |
Allows the ability to filter on whether or not a property is null.
allOf:
- $ref: '#/components/schemas/FilterBase'
- type: object
properties:
value:
type: boolean
description: Property is null.
default: true
example:
type: isNull
propertyName: model
value: true
FilterTypeForSubscribedAndUnsubscribedAssets:
type: string
description: Enum that defines all possible filter types.
enum:
- contains
- endsWith
- startsWith
- stringEquals
- booleanEquals
FilterBaseForSubscribedAndUnsubscribedAssets:
type: object
description: Base model for all filter types.
required:
- type
- propertyName
properties:
type:
$ref: '#/components/schemas/FilterTypeForSubscribedAndUnsubscribedAssets'
propertyName:
$ref:
'#/components/schemas/AssetPropertiesForFilteringForSubscribedAndUnsubscribedAssets
'
StringFilterBaseForSubscribedAndUnsubscribedAssets:
description: Base model for string matching filters.
required:
- value
allOf:
- $ref: '#/components/schemas/FilterBaseForSubscribedAndUnsubscribedAssets'
- type: object
properties:
value:
description: Search string.
type: string
minLength: 1
example: 'a'
isCaseSensitive:
description: |
Defines whether string comparison is case-sensitive. String
comparisons are case-insensitive by default
except for identifier columns (ID).
type: boolean
default: false
example: false
example:
type: startsWith
propertyName: make
isCaseSensitive: false
value: cat
StringEqualsFilterForSubscribedAndUnsubscribedAssets:
description: |
Represents a single filtering criteria, i.e., the name of the object field
to filter by and list of possible values. This filter will only select a
row
in case of exact match with one of the values in the provided list.
required:
- values
allOf:
- $ref: '#/components/schemas/FilterBaseForSubscribedAndUnsubscribedAssets'
- type: object
properties:
values:
type: array
description: Array of possible filter values.
items:
type: string
minItems: 1
example: [415F2, AP255E]
isCaseSensitive:
description: |
Defines whether string comparison is case-sensitive. String
comparisons are case-insensitive by default
except for identifier columns (ID).
type: boolean
default: false
example: true
example:
type: stringEquals
propertyName: model
isCaseSensitive: true
values: [415F2, AP255E]
StartsWithFilterForSubscribedAndUnsubscribedAssets:
description: Filter will find all filterValues that start with a given search
string.
allOf:
- $ref:
'#/components/schemas/StringFilterBaseForSubscribedAndUnsubscribedAssets'
example:
type: startsWith
propertyName: make
isCaseSensitive: false
value: cat
EndsWithFilterForSubscribedAndUnsubscribedAssets:
description: Filter will find all filterValues that end with a given search
string.
allOf:
- $ref:
'#/components/schemas/StringFilterBaseForSubscribedAndUnsubscribedAssets'
example:
type: endsWith
propertyName: make
isCaseSensitive: true
value: CAT
ContainsFilterForSubscribedAndUnsubscribedAssets:
description: Filter will find all filterValues that contain given search
string.
allOf:
- $ref:
'#/components/schemas/StringFilterBaseForSubscribedAndUnsubscribedAssets'
example:
type: contains
propertyName: make
isCaseSensitive: false
value: cat
BooleanFilterForSubscribedAndUnsubscribedAssets:
description: Filter will find all filterValues matching the boolean
condition.
required:
- value
allOf:
- $ref: '#/components/schemas/FilterBaseForSubscribedAndUnsubscribedAssets'
- type: object
properties:
value:
description: Boolean value that the specified property must match.
type: boolean
example:
type: booleanEquals
propertyName: isCatValidated
value: true
FilterTypeForAssetDcDcnInfo:
type: string
description: Enum that defines all possible filter types.
enum:
- contains
- endsWith
- startsWith
- stringEquals
FilterBaseForAssetDcDcnInfo:
type: object
description: Base model for all filter types.
required:
- type
- propertyName
properties:
type:
$ref: '#/components/schemas/FilterTypeForAssetDcDcnInfo'
propertyName:
$ref: '#/components/schemas/AssetPropertiesForFilteringForAssetDcDcnInfo'
StringFilterBaseForAssetDcDcnInfo:
description: Base model for string matching filters.
required:
- value
allOf:
- $ref: '#/components/schemas/FilterBaseForAssetDcDcnInfo'
- type: object
properties:
value:
description: Search string.
type: string
minLength: 1
example: 'a'
isCaseSensitive:
description: |
Defines whether string comparison is case-sensitive. String
comparisons are case-insensitive by default
except for identifier columns (ID).
type: boolean
default: false
example: false
example:
type: startsWith
propertyName: serialNumber
isCaseSensitive: false
value: cat
StringEqualsFilterForAssetDcDcnInfo:
description: |
Represents a single filtering criteria, i.e., the name of the object field
to filter by and list of possible values. This filter will only select a
row
in case of exact match with one of the values in the provided list.
required:
- values
allOf:
- $ref: '#/components/schemas/FilterBaseForAssetDcDcnInfo'
- type: object
properties:
values:
type: array
description: Array of possible filter values.
items:
type: string
minItems: 1
maxItems: 100
example: [415F2, AP255E]
isCaseSensitive:
description: |
Defines whether string comparison is case-sensitive. String
comparisons are case-insensitive by default
except for identifier columns (ID).
type: boolean
default: false
example: true
example:
type: stringEquals
propertyName: serialNumber
isCaseSensitive: true
values: [415F2, AP255E]
StartsWithFilterForAssetDcDcnInfo:
description: Filter will find all filterValues that start with a given search
string.
allOf:
- $ref: '#/components/schemas/StringFilterBaseForAssetDcDcnInfo'
example:
type: startsWith
propertyName: make
isCaseSensitive: false
value: cat
EndsWithFilterForAssetDcDcnInfo:
description: Filter will find all filterValues that end with a given search
string.
allOf:
- $ref: '#/components/schemas/StringFilterBaseForAssetDcDcnInfo'
example:
type: endsWith
propertyName: make
isCaseSensitive: true
value: CAT
ContainsFilterForAssetDcDcnInfo:
description: Filter will find all filterValues that contain given search
string.
allOf:
- $ref: '#/components/schemas/StringFilterBaseForAssetDcDcnInfo'
example:
type: contains
propertyName: make
isCaseSensitive: false
value: cat
Filters:
type: object
description: |
Defines filtering criteria. Filtering criteria are formed by filters of
various types (equals, contains, range and etc) combined together in a
logical expression.
If expression is not provided, each filter will be combined with others
using `&` (AND) operator.
All filters that deal with numeric values accept optional parameter:
measurement units. When user is trying to filter by some measurement
value API must know in which measurement units search value is the
provided. For example: odometer reading. User will be able to filter
by values defined in miles or km.
properties:
logicalExpression:
$ref: '#/components/schemas/LogicalExpression'
filters:
type: array
maxItems: 15
items:
oneOf:
- $ref: '#/components/schemas/BooleanFilter'
- $ref: '#/components/schemas/BoundingBoxFilter'
- $ref: '#/components/schemas/ContainsFilter'
- $ref: '#/components/schemas/EndsWithFilter'
- $ref: '#/components/schemas/FloatEqualsFilter'
- $ref: '#/components/schemas/FloatRangeFilter'
- $ref: '#/components/schemas/GeoBoundaryFilter'
- $ref: '#/components/schemas/GroupFilter'
- $ref: '#/components/schemas/IntegerEqualsFilter'
- $ref: '#/components/schemas/IntegerRangeFilter'
- $ref: '#/components/schemas/IsNullFilter'
- $ref: '#/components/schemas/PointAndRadiusFilter'
- $ref: '#/components/schemas/TimeRangeFilter'
- $ref: '#/components/schemas/StartsWithFilter'
- $ref: '#/components/schemas/StringEqualsFilter'
discriminator:
propertyName: type
mapping:
stringEquals: '#/components/schemas/StringEqualsFilter'
integerEquals: '#/components/schemas/IntegerEqualsFilter'
floatEquals: '#/components/schemas/FloatEqualsFilter'
startsWith: '#/components/schemas/StartsWithFilter'
endsWith: '#/components/schemas/EndsWithFilter'
contains: '#/components/schemas/ContainsFilter'
integerRange: '#/components/schemas/IntegerRangeFilter'
floatRange: '#/components/schemas/FloatRangeFilter'
timeRange: '#/components/schemas/TimeRangeFilter'
boundingBox: '#/components/schemas/BoundingBoxFilter'
pointAndRadius: '#/components/schemas/PointAndRadiusFilter'
geoBoundary: '#/components/schemas/GeoBoundaryFilter'
booleanEquals: '#/components/schemas/BooleanFilter'
groupFilter: '#/components/schemas/GroupFilter'
isNull: '#/components/schemas/IsNullFilter'
example:
logicalExpression: '!$0 & ($1 | $2)'
filters:
- propertyName: make
type: stringEquals
values: [CAT, JD]
- propertyName: id
type: contains
value: 123
- propertyName: model
type: stringEquals
values: [415F2, AP255E, 9370R, 9470R]
FiltersForSubscribedAndUnsubscribedAssets:
type: object
description: |
Defines filtering criteria. Filtering criteria are formed by filters of
various types (equals, contains, range and etc) combined together in a
logical expression.
If expression is not provided, each filter will be combined with others
using `&` (AND) operator.
All filters that deal with numeric values accept optional parameter:
measurement units. When user is trying to filter by some measurement
value API must know in which measurement units search value is the
provided. For example: odometer reading. User will be able to filter
by values defined in miles or km.
properties:
logicalExpression:
$ref: '#/components/schemas/LogicalExpression'
filters:
type: array
minItems: 1
maxItems: 15
items:
oneOf:
- $ref:
'#/components/schemas/ContainsFilterForSubscribedAndUnsubscribedAssets'
- $ref:
'#/components/schemas/EndsWithFilterForSubscribedAndUnsubscribedAssets'
- $ref:
'#/components/schemas/StartsWithFilterForSubscribedAndUnsubscribedAssets'
- $ref:
'#/components/schemas/StringEqualsFilterForSubscribedAndUnsubscribedAssets'
- $ref:
'#/components/schemas/BooleanFilterForSubscribedAndUnsubscribedAssets'
discriminator:
propertyName: type
mapping:
stringEquals:
'#/components/schemas/StringEqualsFilterForSubscribedAndUnsubscribedAssets'
startsWith:
'#/components/schemas/StartsWithFilterForSubscribedAndUnsubscribedAssets'
endsWith:
'#/components/schemas/EndsWithFilterForSubscribedAndUnsubscribedAssets'
contains:
'#/components/schemas/ContainsFilterForSubscribedAndUnsubscribedAssets'
booleanEquals:
'#/components/schemas/BooleanFilterForSubscribedAndUnsubscribedAssets'
example:
logicalExpression: '!$0 & ($1 | $2)'
filters:
- propertyName: make
type: stringEquals
values: [CAT, JD]
- propertyName: id
type: contains
value: 123
- propertyName: model
type: stringEquals
values: [415F2, AP255E, 9370R, 9470R]
FiltersForAssetDcDcnInfo:
type: object
description: |
Defines filtering criteria. Filtering criteria are formed by filters of
various types (equals, contains, range and etc) combined together in a
logical expression.
If expression is not provided, each filter will be combined with others
using `&` (AND) operator.
All filters that deal with numeric values accept optional parameter:
measurement units. When user is trying to filter by some measurement
value API must know in which measurement units search value is the
provided. For example: odometer reading. User will be able to filter
by values defined in miles or km.
discriminator:
propertyName: type
mapping:
stringEquals:
'#/components/schemas/StringEqualsFilterForAssetDcDcnInfo'
startsWith:
'#/components/schemas/StartsWithFilterForAssetDcDcnInfo'
endsWith: '#/components/schemas/EndsWithFilterForAssetDcDcnInfo'
contains: '#/components/schemas/ContainsFilterForAssetDcDcnInfo'
SearchResponseAttributes:
type: array
description: |
List of top-level response attributes (one or more columns) to include in
the search response for each Asset.
This list consists of top-level schemas included in the `Assets` object.
For example, if
an attribute such as `metadata` is included in this list, all attributes
within the `metadata`
schema in Assets will be returned. Likewise, if `metadata` is excluded from
the response, the
response will not include any info under the `metadata` schema in `Asset`.
If the list is null or empty, the default behavior will be to return all
attributes.
If the list contains only `id`, pagination on the number of Assets returned
will not be enforced.
Some of the attributes such as 'metadata' and various readings are objects
which have nested/inner objects.
The response attributes allows for either whole-grained or fine-grained
output by specifying
fully qualified response attribute names. The level of granularity extends
down to each sub object and it's inner objects,
all the way down to the leaf attribute.
SearchResponseAttributesForAssetRegistration:
type: array
description: |
List of top-level response attributes (one or more columns) to include in
the search response for each Asset.
This list consists of top-level schemas included in the `Assets` object.
For example, if
an attribute such as `metadata` is included in this list, all attributes
within the `metadata`
schema in Assets will be returned. Likewise, if `metadata` is excluded from
the response, the
response will not include any info under the `metadata` schema in `Asset`.
The `make` response attribute refers to both the `makeCode` and `makeName`
properties in the Assets response. For example, if the `make` attribute is
supplied,
then both `makeCode` and `makeName` will be returned in the assets
response.
If it is not supplied, then neither property will be returned.
If the list is null or empty, the default behavior will be to return all
attributes.
If the list contains only `id`, pagination on the number of Assets returned
will not be enforced.
Some of the attributes such as 'metadata' and various readings are objects
which have nested/inner objects.
The response attributes allows for either whole-grained or fine-grained
output by specifying
fully qualified response attribute names. The level of granularity extends
down to each sub object and it's inner objects,
all the way down to the leaf attribute.
items:
type: string
enum:
- id # Asset Identifier
- customerAssetId # Customer Asset Identifier
- metadata
- serialNumber
- name
- icon
- makeInfo
- makeCode
- makeName
- model
- type
- productFamily
- productFamilyCode
- productFamilyName
- productFamilyIconUrl
- modelYear
- hasSubscription
- ownership
- ownershipTypeCode
- ownershipTypeName
- baseAssetName # Base Asset Name
- customAssetName # Custom Asset Name
- customerRelationStatus
- customerRelationStatusName
- customerRelationStatusCode
- dcnFederatedRelationStatus
- dcnFederatedRelationStatusName
- dcnFederatedRelationStatusCode
- ownershipAssociations
- ucidName
- ucid
- dealerName
- dealerCode
- dcnName
- dcn
- dcnRelationStatus
- dcnRelationStatusName
- dcnRelationStatusCode
- dcnOwnershipStartDate
- dcnOwnershipType
- dcnOwnershipTypeCode
- dcnOwnershipTypeName
- dcnHasSubscription
- actionedBy
- actionedByCatrecid
- actionedByFirstName
- actionedByLastName
- brand
- brandCode
- validationInfo
- isDealerValidated
- isCustomerValidated
- isTransactionValidated
- isCatValidated
- validationStatusTypeCode
- isVlCustomerSubscriptionActive
- hasActiveDcdcn
- isManualAsset
- sharedAssetIndicator
- rentalAssetIndicator
example: [id, makeCode, makeName]
SearchResponseAttributesForAssetRegistrationDeprecated:
type: array
deprecated: true
description: |
List of top-level response attributes (one or more columns) to include in
the search response for each Asset.
This list consists of top-level schemas included in the `Assets` object.
For example, if
an attribute such as `metadata` is included in this list, all attributes
within the `metadata`
schema in Assets will be returned. Likewise, if `metadata` is excluded from
the response, the
response will not include any info under the `metadata` schema in `Asset`.
The `make` response attribute refers to both the `makeCode` and `makeName`
properties in the Assets response. For example, if the `make` attribute is
supplied,
then both `makeCode` and `makeName` will be returned in the assets
response.
If it is not supplied, then neither property will be returned.
If the list is null or empty, the default behavior will be to return all
attributes.
If the list contains only `id`, pagination on the number of Assets returned
will not be enforced.
Some of the attributes such as 'metadata' and various readings are objects
which have nested/inner objects.
The response attributes allows for either whole-grained or fine-grained
output by specifying
fully qualified response attribute names. The level of granularity extends
down to each sub object and it's inner objects,
all the way down to the leaf attribute.
SearchResponseAttributesForAssetDcDcnInfo:
type: array
minItems: 1
maxItems: 75
description: |
List of top-level response attributes (one or more columns) to include in
the search response for each Asset.
This list consists of top-level schemas included in the `Assets` object.
For example, if
an attribute such as `metadata` is included in this list, all attributes
within the `metadata`
schema in Assets will be returned. Likewise, if `metadata` is excluded from
the response, the
response will not include any info under the `metadata` schema in `Asset`.
The `make` response attribute refers to both the `makeCode` and `makeName`
properties in the Assets response. For example, if the `make` attribute is
supplied,
then both `makeCode` and `makeName` will be returned in the assets
response.
If it is not supplied, then neither property will be returned.
If the list is null or empty, the default behavior will be to return all
attributes.
If the list contains only `id`, pagination on the number of Assets returned
will not be enforced.
Some of the attributes such as 'metadata' and various readings are objects
which have nested/inner objects.
The response attributes allows for either whole-grained or fine-grained
output by specifying
fully qualified response attribute names. The level of granularity extends
down to each sub object and it's inner objects,
all the way down to the leaf attribute.
items:
type: string
enum:
- id # Asset Identifier
- customerAssetId
- brand
- brandCode
- metadata
- serialNumber
- name
- makeInfo
- makeCode
- makeName
- icon
- iconImageId
- iconImageUrl
- model
- modelYear
- ownership
- ucid
- ucidName
- ownershipType
- ownershipTypeCode
- ownershipTypeName
- customerRelationStatus
- customerRelationStatusName
- customerRelationStatusCode
- baseAssetName
- dealerAssociation
- dcn
- dcnName
- dealerName
- dealerCode
- dcnRelationStatus
- dcnRelationStatusName
- dcnRelationStatusCode
- dcnOwnershipStartDate
- dcnOwnershipUpdateDate
- dcnOwnershipType
- dcnOwnershipTypeCode
- dcnOwnershipTypeName
- dcnHasSubscription
- actionedBy
- actionedByCatrecid
- actionedByFirstName
- actionedByLastName
example: [id, serialNumber]
ExportResponseAttributes:
type: array
description: |
List of response attributes (one or more columns for assets, single column
for geo-fence or groups),
plus any fields from the geo-fence schema in the Geo-fence API, or any
fields from the groups schema in
the groups API, to include in the export response for each Asset. This list
consists of all fields in
the schema included in the `Assets` object (flattened) plus any fields from
the geo-fence schema in the
Geo-fence API or groups schema in the groups API. For example, if an
attribute such as `metadata` is
included in this list, all attributes within the `metadata` schema in
Assets will be returned.
Likewise, if `metadata` is excluded from the response, the response will
not include any info under the
`metadata` schema in `Asset`.
Similar to response attributes for search, except that this request body
allows geo-fence fields and groups
fields in response attributes also.
If the list is null or empty, the default behavior will be to return all
attributes.
If the list contains only `id`, pagination on the number of Assets returned
will not be enforced.
Some of the attributes such as 'metadata' and various readings are objects
which have nested/inner objects.
The response attributes allows for either whole-grained or fine-grained
output by specifying
fully qualified response attribute names. The level of granularity extends
down to each sub object and it's inner objects,
all the way down to the leaf attribute.
items:
type: string
enum:
# Asset attributes (attributes from the assets schema)
- id
- metadata
- serialNumber
- name
- iconUrl # Deprecated use icon instead
- icon
- make
- makeCode
- makeName
- model
- productFamily
- productFamilyCode
- productFamilyName
- productFamilyIconUrl
- modelYear
- type # Asset Type, can be ICE, etc...
- typeCode
- subscriptionStatus
- subscriptionStatusCode
- subscriptionStatusName
- serviceMeterReading
- ownership
- ownershipType # Deprecated. Use ownershipTypeCode and/or
ownershipTypeName instead
- ownershipTypeCode
- ownershipTypeName
- ownershipAssociations
- baseOwnershipType
- baseOwnershipTypeCode
- ucidName
- ucid
- dealerName
- dealerCode
- dcnName
- dcn
- status
- statusCode
- statusName
- statusLastReportedTime
- customerDefinedStatus
- customerDefinedStatusName
- customerDefinedStatusCode
- location
- locationSource
- locationAddress
- locationPosition
- locationLastReportedTime
- odometerReading
- odometerReadingSource
- odometerReadingReading
- odometerReadingUnitOfMeasure
- odometerReadingLastReportedTime
- odometerReadingConfigurationStatus
- odometerReadingDesiredSettings
- odometerReadingDesiredSettingsAdjustedValue
- odometerReadingDesiredSettingsLastUpdatedTime
- hoursReading
- hoursReadingSource
- hoursReadingReading
- hoursReadingUnitOfMeasure
- hoursReadingLastReportedTime
- hoursReadingConfigurationStatus
- hoursReadingDesiredSettings
- hoursReadingDesiredSettingsAdjustedValue
- hoursReadingDesiredSettingsLastUpdatedTime
- device
- deviceType
- deviceStatus
- deviceStatusCode
- deviceStatusName
- deviceStatusLastReportedTime
- deviceRemainingUsefulLife
- deviceRemainingUsefulLifeValue
- deviceRemainingUsefulLifeLastReportedTime
- defLevel
- defLevelSource
- defLevelReading
- defLevelLastReportedTime
- fuelLevel
- fuelLevelSource
- fuelLevelReading
- fuelLevelLastReportedTime
- lifeTimeDefConsumed
- lifeTimeDefConsumedSource
- lifeTimeDefConsumedReading
- lifeTimeDefConsumedUnitOfMeasure
- lifeTimeDefConsumedLastReportedTime
- lifeTimeFuelConsumed
- lifeTimeFuelConsumedSource
- lifeTimeFuelConsumedReading
- lifeTimeFuelConsumedUnitOfMeasure
- lifeTimeFuelConsumedLastReportedTime
- lifeTimeEnergyGenerated
- lifeTimeEnergyGeneratedSource
- lifeTimeEnergyGeneratedReading
- lifeTimeEnergyGeneratedUnitOfMeasure
- lifeTimeEnergyGeneratedLastReportedTime
# Battery Related Attributes
- batteryChargeLevel
- batteryChargeLevelSource
- batteryChargeLevelReading
- batteryChargeLevelLastReportedTime
- batteryStatus
- batteryStatusName
- batteryStatusCode
- batteryStatusLastReportedTime
- batteryStatusChargeTimeToHundredPercent
- batteryStatusChargeTimeToHundredPercentReading
- batteryStatusChargeTimeToHundredPercentUnitOfMeasure
- batteryStatusEstimatedWorkingTimeRemaining
- batteryStatusEstimatedWorkingTimeRemainingReading
- batteryStatusEstimatedWorkingTimeRemainingUnitOfMeasure
- batteryStatusStateOfHealth
- lifetimeBatteryConsumed
- lifetimeBatteryConsumedSource
- lifetimeBatteryConsumedReading
- lifetimeBatteryConsumedUnitOfMeasure
- lifetimeBatteryConsumedLastReportedTime
# Combined Battery/Fuel Related Attributes
- energySourceLevel
- energySourceLevelSource
- energySourceLevelReading
- energySourceLevelLastReportedTime
- energySourceStatus
- energySourceStatusName
- energySourceStatusCode
- energySourceStatusLastReportedTime
- lifetimeEnergySourceConsumed
- lifetimeEnergySourceSource
- lifetimeEnergySourceConsumedReading
- lifetimeEnergySourceConsumedUnitOfMeasure
- lifetimeEnergySourceConsumedLastReportedTime
- utcOffset
- timezoneId
- timezoneShortDisplayName
- subscriptionClassCode
# todo: when breaking change is allowed, remove subscriptionName
- subscriptionName
- subscriptionNameInfoCode
- subscriptionNameInfoName
- endOfDayReadings
- endOfDayReadingsConfigurationStatus
- endOfDayReadingsDesiredSetting
- endOfDayReadingsDesiredSettingEndOfDay
- endOfDayReadingsDesiredSettingEodOverride
- endOfDayReadingsCurrentSetting
- endOfDayReadingsCurrentSettingEndOfDay
- endOfDayReadingsCurrentSettingEodOverride
- hasCva
- security
- securityStatus
- securityDesiredSetting
- securityDesiredSettingAdjustedValue
- securityConfigurationStatus
- securityRequestCreator
- securityRequestCreatorPartyNumber
- securityRequestCreatorPartyType
- securityRequestCreationTime
- securitySource
- preferredServiceMeterReading
- preferredServiceMeterReadingValue
- preferredServiceMeterReadingUnitOfMeasure
- preferredServiceMeterReadingUnitOfMeasureType
- preferredServiceMeterReadingTime
- source
- dataProvider
- federatedLastReportedTime # The last reported timestamp amongst
all possible last reported time such as assetStatus, deviceStatus, fuelLevel,
defLevel, etc.
# Geofence fields (fields from the geofence schema)
- geofence_id
- geofence_typeId
- geofence_typeName
- geofence_state
- geofence_geoBoundaryType
- geofence_geoBoundaryCoordinates
- geofence_name
- geofence_description
- geofence_lineColorRed
- geofence_lineColorBlue
- geofence_lineColorGreen
- geofence_fillColorRed
- geofence_fillColorBlue
- geofence_fillColorGreen
- geofence_startTime
- geofence_endTime
- geofence_createTime
- geofence_areaSizeValue
- geofence_areaSizeUomType
- geofence_areaSizeUomValue
- geofence_isFavorite
- geofence_ownerCatrecid
- geofence_ownerFirstName
- geofence_ownerLastName
- geofence_assetCount
# Geofence Extended Fields
- x_geofence_jobsite_name #This is a special geofence job site field
with specialized logic for exports only.
# Group fields (fields from the group schema)
- group_id
- group_name
# Planned maintenance fields
- pm_nextServiceName
- pm_nextServiceDescription
- pm_nextServiceTime
# custom asset fields
- orgCustomAttributesField1
- orgCustomAttributesField2
- orgCustomAttributesField3
- orgCustomAttributesField4
- orgCustomAttributesField5
- orgCustomAttributesField6
- orgCustomAttributesField7
- orgCustomAttributesField8
- orgCustomAttributesField9
- orgCustomAttributesField10
- orgCustomAttributesField11
- orgCustomAttributesField12
- brand
- brandCode
- energyType
- supportChannel
- enginePressureManifold1reading
- enginePressureManifold2reading
- enginePressureUom
- enginePressureManifold1LastReportedTime
- enginePressureManifold2LastReportedTime
- sharedAssetIndicator
- rentalAssetIndicator
- rentalInfo
- rentalInfoContractId
- rentalInfoContractStartDate
- rentalInfoContractEndDate
example: [id, location, status, geofence_id, geofence_assetCount, group_id,
group_name, pm_nextServiceTime]
HeaderTranslations:
description: |
The mapping of response attributes to override values for column headers
(labels) in the export file.
**Note**: The values of the headers do not replace or translate the actual
attribute values in the export file.
The `headerTranslations` are applied only for export endpoints.
If the object is empty or the header value for an attribute is null, then
the default header value mapped
in the API is returned. For example, `typeId` attribute default header is
"Type ID".
FiltersAndSearchResponseAttributesRequest:
description: |
Request body for search containing both filters and response attribute
information.
allOf:
- $ref: '#/components/schemas/Filters'
- type: object
properties:
responseAttributes:
$ref: '#/components/schemas/SearchResponseAttributes'
example:
logicalExpression: '!$0 & ($1 | $2)'
filters:
- propertyName: make
type: stringEquals
values: [CAT, JD]
- propertyName: id
type: contains
value: 123
- propertyName: model
type: stringEquals
values: [415F2, AP255E, 9370R, 9470R]
responseAttributes: [id, location]
FiltersAndExportResponseAttributesRequest:
description: |
Request body for export containing filters, response attributes, and header
translation information.
Similar to request body for search, except that this request body allows
geo-fence fields
and group fields in response attributes of request body also.
`headerTranslations` are applied only for export endpoints.
allOf:
- $ref: '#/components/schemas/Filters'
- type: object
properties:
responseAttributes:
$ref: '#/components/schemas/ExportResponseAttributes'
headerTranslations:
$ref: '#/components/schemas/HeaderTranslations'
example:
logicalExpression: '!$0 & ($1 | $2)'
filters:
- propertyName: make
type: stringEquals
values: [CAT, JD]
- propertyName: id
type: contains
value: 123
- propertyName: model
type: stringEquals
values: [415F2, AP255E, 9370R, 9470R]
responseAttributes: [id, location, geofence_id]
headerTranslations:
id: Identifier
metadata:
make: Manufacturer
model: Model Number
FiltersAndSearchResponseAttributesRequestForAssetRegistration:
description: |
Request body for search containing both filters and response attribute
information.
allOf:
- $ref: '#/components/schemas/FiltersForSubscribedAndUnsubscribedAssets'
- type: object
properties:
responseAttributes:
oneOf:
- $ref:
'#/components/schemas/SearchResponseAttributesForAssetRegistration'
- $ref:
'#/components/schemas/SearchResponseAttributesForAssetRegistrationDeprecated'
example:
logicalExpression: '!$0 & ($1 | $2)'
filters:
- propertyName: makeCode
type: stringEquals
values: [CAT, JD]
- propertyName: id
type: contains
value: 123
- propertyName: model
type: stringEquals
values: [415F2, AP255E, 9370R, 9470R]
responseAttributes: [id, serialNumber]
FiltersAndSearchResponseAttributesRequestForAssetDcDcnInfo:
description:
Request body for search containing both filters and response attribute
information.
allOf:
- $ref: '#/components/schemas/FiltersForAssetDcDcnInfo'
- type: object
properties:
responseAttributes:
$ref:
'#/components/schemas/SearchResponseAttributesForAssetDcDcnInfo'
LogicalExpression:
nullable: true
type: string
description: |
Logical expression defines how filters are combined together.
Expression grammar supports following elements:
* `$1` - variable, defines which filter to take from the list of
provided filters (counting from 0)
* `&`, `|`, and `!` - logical operators AND, OR and NOT
* `(` and `)` - braces to form more complex expressions
Logical operator precedence: `!`, `&`, `|`, i.e., the NOT operator
takes precedence.
Other limitations:
* collection of filters can only have ONE geospatial filter.
################################### facets
#####################################
FacetValueSummary:
type: object
description: |
Represents how many objects have certain value in a certain property in the
result set.
properties:
propertyValue:
type: string
description: A unique property value.
propertyLabel:
type: string
description: |
Property value description. For example, if the property is
`dealerCode`,
the `propertyLabel` value is the value of `dealerName`.
count:
type: integer
description: The count of objects in the results set that have the value.
example:
propertyValue: 'TCUCID2024'
propertyLabel: 'BOTSFORD, DOOLEY AND KUHIC'
count: 128
FacetValueSummaries:
type: object
description: |
Represents how many objects have certain value in a certain field in the
result set.
properties:
responseMetadata:
$ref: '#/components/schemas/ResponseMetadata'
facetValues:
type: array
items:
$ref: '#/components/schemas/FacetValueSummary'
totalFacetCount:
$ref: '#/components/schemas/TotalFacetCount'
bounds:
$ref: '#/components/schemas/Bounds'
example:
responseMetadata:
nextCursor: 'eyJvZmZzZXQiOjF9'
facetValues:
- propertyValue: 415F2
count: 354
- propertyValue: 9370R
count: 292
totalFacetCount: 45
bounds:
type: integerBounds
minBound: 10
maxBound: 400
FacetSummary:
type: object
description: |
Represents a summary of all possible values (and number of objects that
have them) for a certain field.
properties:
propertyName:
$ref: '#/components/schemas/AssetPropertiesForFacets'
facetValues:
type: array
items:
$ref: '#/components/schemas/FacetValueSummary'
hasMoreValues:
description: |
In case particular facet has more values than 'filterValuePerKeyLimit'
this flag will be equal to true.
type: boolean
totalFacetCount:
$ref: '#/components/schemas/TotalFacetCount'
bounds:
$ref: '#/components/schemas/Bounds'
example:
propertyName: ucid
facetValues:
- propertyValue: 'TCUCID2025'
propertyLabel: 'WEBER, FRITSCH AND CUMMERATA'
count: 265
- propertyValue: 'TCUCID2024'
propertyLabel: 'BOTSFORD, DOOLEY AND KUHIC'
count: 128
hasMoreValues: true
totalFacetCount: 83
FacetSummaries:
type: object
description: |
Represents a list of object fields and their values with a count of how
many
times each value appears in the result set.
properties:
facetSummaries:
type: array
items:
$ref: '#/components/schemas/FacetSummary'
example:
facetSummaries:
- propertyName: model
facetValues:
- propertyValue: 415F2
count: 280
- propertyValue: AP255E
count: 162
hasMoreValues: true
totalFacetCount: 13
- propertyName: dealerName
facetValues:
- propertyValue: 'RUSH TRUCK CENTER'
count: 354
- propertyValue: 'FREEWAY FORD TRUCK SALES'
count: 292
hasMoreValues: false
totalFacetCount: 25
- propertyName: ucid
facetValues:
- propertyValue: 'TCUCID2025'
propertyLabel: 'WEBER, FRITSCH AND CUMMERATA'
count: 265
- propertyValue: 'TCUCID2024'
propertyLabel: 'BOTSFORD, DOOLEY AND KUHIC'
count: 128
hasMoreValues: true
totalFacetCount: 46
- propertyName: assetCount
hasMoreValues: false
bounds:
type: integerBounds
minBound: 0
maxBound: 100
totalFacetCount: 74
ExportMetadata:
type: object
description: Export response object containing metadata such as the file
identifier.
properties:
fileId:
type: string
format: uuid
description: |
This unique file identifier can be used to upload/download export file
to/from Storage service. More information could be found in the Storage
Service API Spec.
example: d98ff9bd-3eae-4c5e-9626-be7cf723afb6
TotalFacetCount:
description: The total number of distinct values for the current
propertyName.
type: integer
format: int32
example: 83
BoundsType:
type: string
description: Enum that defines all possible bound types.
enum:
- integerBounds
- floatBounds
- timeBounds
default: integerBounds
BoundsBase:
type: object
description: Base model for all bound types.
required:
- type
properties:
type:
$ref: '#/components/schemas/BoundsType'
Bounds:
type: object
description: |
Defines the range of the facet. Lower and Upper bounds are available for
facets that needs to represented as a range.
properties:
bounds:
oneOf:
- $ref: '#/components/schemas/IntegerBounds'
- $ref: '#/components/schemas/FloatBounds'
- $ref: '#/components/schemas/TimeBounds'
discriminator:
propertyName: type
mapping:
integerBounds: '#/components/schemas/IntegerBounds'
floatBounds: '#/components/schemas/FloatBounds'
timeBounds: '#/components/schemas/TimeBounds'
example:
bounds:
type: integerBounds
minBound: 0
maxBound: 100
IntegerBounds:
description: |
Bounds are defined by the 'minBound' and 'maxBound' parameters. These
bounds
are available for facets that need to be represented as a range.
allOf:
- $ref: '#/components/schemas/BoundsBase'
- type: object
properties:
minBound:
description: |
Represents lower bound in the range selector. In case a property
needs to
be filtered by the range of items it holds, then `minBound` for
that property
will have the minimum value of the property allowed from various
filter
combinations. An example of such a property is `assetsCount`.
type: integer
format: int64
example: 0
maxBound:
description: |
Represents upper bound in the range selector. In case a property
needs to be
filtered by the range of items it holds, then `maxBound` for that
property will
have the maximum value of the property allowed from various filter
combinations.
An example of such a property is `assetsCount`.
type: integer
format: int64
example: 10
example:
minBound: 0
maxBound: 10
FloatBounds:
description: |
Bounds are defined by the 'minBound' and 'maxBound' parameters. These
bounds are
available for facets that need to be represented as a range.
allOf:
- $ref: '#/components/schemas/BoundsBase'
- type: object
properties:
minBound:
description: |
Represents lower bound in the range selector. In case a property
needs to be filtered
by the range of items it holds, then `minBound` for that property
will have the minimum
value of the property allowed from various filter combinations. An
example of such a
property is `fuel`.
type: number
format: double
example: 1.0
maxBound:
description: |
Represents upper bound in the range selector. In case a property
needs to be filtered
by the range of items it holds, then `maxBound` for that property
will have the maximum
value of the property allowed from various filter combinations. An
example of such a
property is `fuel`.
type: number
format: double
example: 10.0
example:
minBound: 1.0
maxBound: 10.0
TimeBounds:
description: |
Bounds are defined by the 'minBound' and 'maxBound' parameters. These
bounds are available for
facets that need to be represented as a range.
allOf:
- $ref: '#/components/schemas/BoundsBase'
- type: object
properties:
minBound:
$ref: '#/components/schemas/DateTime'
maxBound:
$ref: '#/components/schemas/DateTime'
example:
minBound: '2016-01-31T22:59:59.999+00:00'
maxBound: '2018-01-31T22:59:59.999+00:00'
DateTime:
type: string
description: |
Formatted string that represents date, time and timezone offset in ISO-8601
format.
For more information see https://tools.ietf.org/html/rfc3339.
format: date-time
pattern: '^\d{4}-\d\d-\d\d[Tt]\d\d:\d\d:\d\d(\.\d+)?(([+-]\d\d:\d\d)|[Zz])?$'
example: '2016-01-31T22:59:59.999Z'
ReadingSource:
type: string
description: |
Defines possible sources of service meter readings and locations.
This can include telemetry, transactional, or user-entered sources.
This will be translated per user preferences.
Some examples of english translated values are: Fluid Analysis, Inspection,
Service History, Manual, Telematics, Other.
nullable: true
example: Telematics
UnitOfMeasure:
type: object
description: Base model for all units of measure in the platform.
properties:
type:
type: string
description: Available types of measurements in the Cat data.
enum:
- distance
- time
- volume
- energy
- pressure
DistanceUom:
description: |
Distance unit of measure. Supported values are:
* mi (mile)
* km (kilometer)
allOf:
- $ref: '#/components/schemas/UnitOfMeasure'
- type: object
properties:
value:
$ref: '#/components/schemas/DistanceUomEnum'
example:
type: distance
value: km
DistanceUomEnum:
type: string
description: Unit of measure enumeration for distance.
enum: [km, mi]
example: km
TimeUom:
description: |
Time unit of measure. Supported values are:
* h (hour)
* min (minute)
* s (second).
allOf:
- $ref: '#/components/schemas/UnitOfMeasure'
- type: object
properties:
value:
$ref: '#/components/schemas/TimeUomEnum'
example:
type: time
value: h
TimeUomEnum:
type: string
description: Unit of measure enumeration for time.
enum: [h, min, s]
example: h
PressureUom:
description: |
Pressure unit of measure. Supported values are:
* kpa (kilopascal)
* psi (pounds/square inch)
* bar (Barometric).
allOf:
- $ref: '#/components/schemas/UnitOfMeasure'
- type: object
properties:
value:
$ref: '#/components/schemas/PressureUomEnum'
example:
type: pressure
value: kpa
PressureUomEnum:
type: string
description: Pressure unit of measure.
enum: [ kpa, psi, bar ]
example: kpa
VolumeUomRequest:
description: |
Volume unit of measure. Supported values are:
* L (liter)
* usGal (us gallon)
* imperialGal (imperial gallon)
allOf:
- $ref: '#/components/schemas/UnitOfMeasure'
- type: object
properties:
value:
$ref: '#/components/schemas/VolumeUomEnumRequest'
example:
type: volume
value: L
VolumeUomResponse:
description: |
Volume unit of measure. Supported values are:
* L (liter)
* gal (us gallon or imperial gallon)
Note: Even though the unit of measure is gal for both US Gallon and
Imperial Gallon,
the volume reading is either in US Gallon or Imperial Gallon depending on
the
user's preference.
allOf:
- $ref: '#/components/schemas/UnitOfMeasure'
- type: object
properties:
value:
$ref: '#/components/schemas/VolumeUomEnumResponse'
example:
type: volume
value: L
VolumeUomEnumRequest:
type: string
description: |
Unit of measure enumeration for volume. Explicit 'L', 'usGal' or
'imperialGal' is required.
enum: [L, usGal, imperialGal]
example: L
VolumeUomEnumResponse:
type: string
description: |
Unit of measure enumeration for volume. Explicit 'L', 'gal' is required.
enum: [L, gal]
example: L
EnergyUom:
description: |
Energy unit of measure. Supported values are:
* kWh (kilowatt-hour).
allOf:
- $ref: '#/components/schemas/UnitOfMeasure'
- type: object
properties:
value:
$ref: '#/components/schemas/EnergyUomEnum'
example:
type: energy
value: kWh
EnergyUomEnum:
type: string
description: Energy unit of measure.
enum: [kWh]
example: kWh
RangeBase:
type: object
description: Base for defining range input models.
properties:
includeLeft:
description: Indicates whether left boundary of the range should be
included.
type: boolean
default: true
includeRight:
description: Indicates whether right boundary of the range should be
included.
type: boolean
default: true
IntegerRange:
description: |
Range is defined by 'left' and 'right' parameters. If one of the boundaries
is omitted
or null, it will be assumed that range is open bounded (infinity on that
side).
In addition, two boolean flags indicate whether boundaries are included in
the range.
Also 'left' should always be less than or equal to 'right'.
allOf:
- $ref: '#/components/schemas/RangeBase'
- type: object
properties:
left:
description: Left boundary of the interval.
type: integer
format: int64
example: 0
right:
description: Right boundary of the interval.
type: integer
format: int64
example: 10
example:
left: 0
right: 10
example:
left: 0
right: 10
includeLeft: true
includeRight: false
FloatRange:
description: |
Range is defined by 'left' and 'right' parameters. If one of the boundaries
is omitted
or null, it will be assumed that range is open bounded (infinity on that
side).
In addition, two boolean flags indicate whether boundaries are included in
the range.
Also 'left' should always be less than or equal to 'right'.
allOf:
- $ref: '#/components/schemas/RangeBase'
- type: object
properties:
left:
description: Left boundary of the interval.
type: number
format: double
example: 12.12345
right:
description: Right boundary of the interval.
type: number
format: double
example: 100.75
precision:
type: integer
description: |
Number of digits after the decimal point that define precision of
the comparison.
minimum: 0
maximum: 16
default: 10
example: 5
example:
left: 12.12345
right: 100.75
precision: 5
includeLeft: true
includeRight: false
TimeRange:
description: |
Range is defined by 'left' and 'right' parameters. If one of the boundaries
is omitted
or null, it will be assumed that range is open bounded (infinity on that
side).
In addition, two boolean flags indicate whether boundaries are included in
the range.
Also 'left' should always be less than or equal to 'right'.
allOf:
- $ref: '#/components/schemas/RangeBase'
- type: object
properties:
left:
$ref: '#/components/schemas/DateTime'
right:
$ref: '#/components/schemas/DateTime'
example:
left: '2019-01-01T09:00:00.000+00:00'
right: '2020-12-31T23:59:59.999+00:00'
includeLeft: true
includeRight: false
Polygon:
type: object
description: |
GeoJSON Polygon. This API has following differences in comparison to
GeoJSON Polygon features:
* polygon can contain only one linear ring (no interior rings)
* polygon can be crossed by antimeridian
* to avoid ambiguity when crossing antimeridian the shortest path is
always taken for any two subsequent points of the polygon
* the edge between two subsequent points cannot equal exactly 180
degrees (half of earth's circumference), as this is ambiguous
Point:
type: object
description: |
GeoJSON Point, represents geographical coordinates (longitude,
latitude).
properties:
type:
type: string
description: Type of GeoJson geometry, example Point, MultiPoint.
enum: [Point]
coordinates:
type: array
description: Pair of geographical coordinates (longitude, latitude).
minItems: 2
maxItems: 2
items:
type: number
format: double
example:
type: Point
coordinates: [-87.62324, 41.88285]
Address:
type: object
description: Reverse geocoded address.
properties:
streetAddress:
type: string
description: Street address of the location.
example: 9503 N University St, Peoria, Il 60450, USA
ImportRequest:
type: object
description: |
Import request body containing the key that points to a file. The file
contains data that needs to be imported.
properties:
s3ObjectKey:
$ref: "#/components/schemas/S3ObjectKey"
entity:
$ref: "#/components/schemas/Entity"
required:
- s3ObjectKey
- entity
S3ObjectKey:
type: string
description: The S3 object key for the file to be imported.
example: "brain/assets/import_00001.json"
Entity:
type: string
description: The entity name of the import. Assets service uses this entity
name to determine which type of data should be imported into.
enum:
- manualAssets
- customAssetState
example: manualAssets
ImportResponse:
type: object
description: Manual assets or custom asset state import response.
properties:
importId:
$ref: '#/components/schemas/ImportId'
required:
- importId
ImportId:
type: string
description: The unique identifier for the import.
example: '1a89b5aa-a488-11eb-bcbc-0242ac130002'
format: uuid
ImportStatusResponse:
type: object
description: |
The import status details.
properties:
importId:
$ref: "#/components/schemas/ImportId"
s3ObjectKey:
$ref: "#/components/schemas/S3ObjectKey"
importStatus:
$ref: "#/components/schemas/ImportStatus"
createTime:
description: Timestamp of import created.
allOf:
- $ref: "#/components/schemas/DateTime"
createdBy:
$ref: "#/components/schemas/ClientId"
updateTime:
description: Timestamp of last import status updated.
allOf:
- $ref: "#/components/schemas/DateTime"
required:
- importId
- importStatus
ImportStatus:
type: string
description: |
The status of the manual assets or custom asset state import request.
example: IMPORT_SCHEDULED
enum:
- IMPORT_SCHEDULED
- IMPORT_IN_PROGRESS
- IMPORT_COMPLETE
- IMPORT_FAILED
ClientId:
type: string
description: Client ID that created the import.
example: "r6gtvyjncizimksafd3vaudkzs0"
BulkUpsertRequest:
description: |
Request body for updating or creating manual assets after initial imports.
If one or more manual asset updates or creates failed, the response will
include a list of failed records.
type: array
minItems: 1
maxItems: 100
items:
$ref: '#/components/schemas/BulkUpsertRequestModel'
BulkUpsertRequestModel:
type: object
description: |
This model include in an update or create manual assets request array.
`externalRecordId` are required to specify which manual asset is being
updated.
Will update the field to empty that not passed in the request body.
required:
- externalRecordId
- partyNumber
properties:
externalRecordId:
$ref: '#/components/schemas/ExternalId'
assetName:
type: string
description: The custom name of the asset provided by user.
example: 'ABC123'
makeCode:
$ref: '#/components/schemas/MakeCode'
makeName:
$ref: '#/components/schemas/MakeName'
serialNumber:
$ref: '#/components/schemas/SerialNumber'
model:
$ref: '#/components/schemas/Model'
productFamilyCode:
$ref: '#/components/schemas/ProductFamilyCode'
productFamilyName:
$ref: '#/components/schemas/BulkUpsertProductFamilyName'
ownership:
$ref: '#/components/schemas/AssetOwnershipTypeOption'
serviceMeter:
$ref: '#/components/schemas/ServiceMeter'
hoursReading:
$ref: '#/components/schemas/HoursReadingReading'
hoursReadingLastReportedTime:
$ref: '#/components/schemas/DateTime'
odometerReading:
$ref: '#/components/schemas/OdometerReadingReading'
odometerReadingUnitOfMeasure:
$ref: '#/components/schemas/DistanceUomEnum'
odometerReadingLastReportedTime:
$ref: '#/components/schemas/DateTime'
partyNumber:
$ref: '#/components/schemas/PartyNumber'
ExternalId:
description: |
Unique identifier of manual asset in MCC (my.cat.com). Uniqueness of this
identifier is maintained in MCC.
type: string
example: 'CAT&pipe;PVP64103&pipe;2969600765'
ServiceMeter:
type: string
description: |
Service meter contains the preferred vehicle reading value (odometer,
hours) for manual assets.
Some vehicles return multiple readings, specified will be used as
serviceMeter.
enum:
- Odometer
- Hours
example: Hours
BulkUpsertResponse:
description: The response of manual assets in bulk upsert.
type: array
minItems: 1
maxItems: 100
items:
$ref: '#/components/schemas/BulkUpsertResponseModel'
example:
- isSuccessful: true
externalRecordId: 'CAT&pipe;PVP64103&pipe;2969600765'
internalRecordId: 'CAT&pipe;PVP64103&pipe;2969600765'
- isSuccessful: false
externalRecordId: 'CAT&pipe;PVP64103&pipe;2969600766'
failedReason: 'Asset already exists.'
BulkUpsertResponseModel:
type: object
description: |
This model includes an insert or update imported manual assets responses
array. For each item, the externalRecordId and isSuccessful property would be
always available.
If the request entry associated to the externalRecordId did succeed, the
isSuccessful property would be true and the internalRecordId property would contain
the associated Asset ID.
Otherwise the isSuccessful property would be false, internalRecordId would
be unavailable and the failedReason property would contain the root cause
description.
required:
- externalRecordId
- isSuccessful
properties:
isSuccessful:
$ref: '#/components/schemas/IsSuccessful'
externalRecordId:
$ref: '#/components/schemas/ExternalId'
internalRecordId:
$ref: '#/components/schemas/AssetId'
failedReason:
$ref: '#/components/schemas/FailedReason'
IsSuccessful:
description: Indicates whether the request succeeded.
type: boolean
example: true
FailedReason:
description: Describes the root cause of failed request.
example: 'Duplicate external ids exist in request body.'
RemovalReasonsResponse:
type: object
description: |
Top level object for returning list of asset removal reasons.
properties:
removalReasons:
type: array
items:
$ref: '#/components/schemas/RemovalReason'
example:
- code: 'SOLD'
name: 'Sold'
- code: 'TRANSFERRED'
name: 'Transferred'
RemovalReason:
type: object
description: A removal reason specifies why an asset was removed/deactivated.
properties:
code:
$ref: '#/components/schemas/RemovalReasonCode'
name:
$ref: '#/components/schemas/RemovalReasonName'
RemovalReasonCode:
type: string
description: |
Removal reason code is an untranslated value specifying why an asset was
removed/deactivated.
example: 'SOLD'
RemovalReasonName:
type: string
description: |
Removal reason name is a translated string in user's preferred language
specifying why an asset was removed/deactivated.
example: 'Sold'
GroupOperationId:
type: string
description: Random UUID passed from UI to group the request together for
processing.
format: uuid
example: '962c8d95-18a2-4e9c-9961-712129389ef9'
UserInformation:
type: object
description: |
Information about the user who took an action. A user's `firstName` and
`lastName` will be
included in the response.
properties:
catrecid:
type: string
description: CAT record ID acquired from the Authorization token.
example: 'PIP-11214098'
firstName:
type: string
description: User's first name acquired from CIAM.
example: 'Ned'
lastName:
type: string
description: User's last name acquired from CIAM.
example: 'Stark'
Error:
type: object
description: |
Represents error code, description and detailed error message for a given
API.
Every HTTP status code returns different `code` value in the response based
on
the nature of error occurred.
properties:
code:
type: string
description: Error Code represents a alpha-numeric error code received
from the error.
example: 'xxx.xxx'
description:
type: string
description: Message represents a textual description of a given error
code.
example: 'Error message'
##This is optional. If you need to send additional error/warning messages,
you can populate this section with corresponding errors.
details:
type: array
description: Details represents technical details about the error with
additional message.
items:
$ref: '#/components/schemas/AdditionalInfo'
example:
$ref: '#/components/examples/ErrorExample'
AdditionalInfo:
description: Represents technical details about the error with additional
message.
properties:
subCode:
type: string
description: Error code sent by API for each validation.
field:
type: string
description: Each exact property field that was validated.
message:
type: string
description: Each error message on the property-level validation done by
the API.
responses:
204NoContent:
description: No Content
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
400BadRequest:
description: Bad Request
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
example:
code: '400.001'
description: Unknown error occurred.
schema:
$ref: '#/components/schemas/Error'
400BulkErrorResponse:
description: |
Response object containing a list of failed asset IDs if any failed and
optionally
the reason for failure.
If errors can be identified to individual records, the update assets
partialFailureResponse
structure will be returned with 400 HTTP response code and each record
containing
individual status. If the error cannot be scoped to individual records, an
error will be returned.
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/UpdateAssetsPartialFailureResponse'
- $ref: '#/components/schemas/Error'
examples:
UpdateAssetsPartialFailureResponse:
$ref:
'#/components/examples/UpdateAssetsPartialFailureResponseExample'
Error:
$ref: '#/components/examples/ErrorExample'
401Unauthorized:
description: Unauthorized
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
example:
code: '401.006'
description: Missing access token.
schema:
$ref: '#/components/schemas/Error'
403Forbidden:
description: Forbidden
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
example:
code: '403.001'
description: Request not coming from valid IP.
schema:
$ref: '#/components/schemas/Error'
404NotFound:
description: Not Found
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
example:
code: '404.001'
description: Resource Not Found.
schema:
$ref: '#/components/schemas/Error'
406RequestNotAcceptable:
description: Request Not Acceptable
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
example:
code: '406.001'
description: |
Request Not Acceptable. The target resource does not have a current
representation that would be acceptable to the user agent.
schema:
$ref: '#/components/schemas/Error'
413PayloadTooLarge:
description: Payload Too Large
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
example:
code: '413.001'
description: Payload Too Large.
schema:
$ref: '#/components/schemas/Error'
415UnsupportedMediaType:
description: Unsupported Media Type
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
example:
code: '415.001'
description: |
Unsupported Media Type. Requested payload format is not supported by
this
method on the target resource. The format problem might be due to the
request's indicated Content-Type or Content-Encoding, or as a result
of
inspecting the data directly.
schema:
$ref: '#/components/schemas/Error'
429TooManyRequests:
description: Too Many Requests
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
example:
code: '429.001'
description: Throttling rate limit exceeded.
schema:
$ref: '#/components/schemas/Error'
500InternalServerError:
description: Internal Server Error
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
example:
code: '500.001'
description: Server Error
schema:
$ref: '#/components/schemas/Error'
503ServiceUnavailable:
description: Service Unavailable
headers:
X-Cat-API-Tracking-Id:
$ref: "#/components/headers/X-Cat-API-Tracking-Id"
content:
application/json:
example:
code: '503.001'
description: Service Unavailable.
schema:
$ref: '#/components/schemas/Error'
examples:
UpdateAssetsPartialFailureResponseExample:
description: Example response for the UpdateAssetsPartialFailureResponse.
value:
failedUpdates:
- id: 'CAT&pipe;PVP64103&pipe;2969600765'
- id: 'CAT&pipe;PVP64103&pipe;2969600766'
error: 'Asset ID not found'
- id: 'CAT&pipe;PVP64103&pipe;2969600767'
error: 'User does not have permission to update asset'
ErrorExample:
description: Reusable example for 400 error.
value:
code: '400.001'
description: Unknown error occurred.