Navigation
Appendix Continued, Definitions
Crew Manager API
Existing Perspectives in Crew Manager
getSavedSets - GET /cm/savedSets.
groupsByPerspective - GET /cm/ groupsByPerspective/{perspectiveId}
getCrewsByIds - POST /cm/crewsByIds.
getCrew - GET /cm/crews/{crewId}
getCrewForMember - GET /cm/members/{contactId}/crew..
getResources - GET /cm/resources.
getResource - GET /cm/resources/{resourceId}
createCrewMember - POST /cm/crews/{crewId}/members.
updateCrewMember - DELETE /cm/crews/{crewId}/members.
deleteCrew - DELETE /cm/crews/{crewId}
saveCrewAttribute - POST /cm/crews/{crewId}/attributes.
saveMemberAttribute - POST /cm/members/{memberId}/attributes.
createResource - POST /cm/resources.
createResources - POST /cm/batch/resources.
saveResourceAttribute - POST /cm/resources/{resourceId}/attributes.
createWotes - POST /cm/resources/{resourceId}/timeEntries.
updateWotes - PUT /cm/resources/{resourceId}/timeEntries.
deleteWote - DELETE /cm/resources/{resourceId}/timeEntries/{woteId}
deleteResource - DELETE /cm/resources/{resourceId}
getResourceTypes - GET /cm/resourceTypes.
getLodgings - GET /cm/lodgings.
getLodging - GET /cm/lodgings/{lodgingId}
getCrewMembers - GET /cm/crews/{crewId}/members.
getResource - GET /cm/resources/{resourceId}
getCrewsForRA - GET /cm/crewsForRa.
getWorkIntegration - GET /cm/workIntegration.
getRoomTypes - GET /cm/roomTypes.
getAvlMemberBadges - GET /cm/avlMemberBadges.
syncCrews - GET /cm/sync/crews.
createLodging - POST /cm/lodgings.
createLodgings - POST /cm/batch/lodgings.
deleteLodging - DELETE /cm/lodgings/{lodgingId}
getAttributes - GET /cm/attributes.
saveLodgingAttribute - POST /cm/lodgings/{id}/attributes.
createRoomTypes - POST /cm/batch/roomTypes.
saveAttributes - POST /cm/batch/attributes.
createRoomType - POST /cm/roomType.
getAttributesByNames - GET /cm/attributesByName.
saveRoomTypeAttribute - POST /cm/roomTypes/{id}/attributes.
deleteRoomType - DELETE /cm/roomTypes/{roomTypeId}
Crew Manager Data
The Crew Manager Endpoint can be used to manage the data that is normally accessed using the Arcos Crew Manager Application. Users can create new instances of Crews, Resources, and Lodgings. The API also supports changing Attribute values and assigning Members to Crews.
All Crew Manager operations require a Point In Time (PIT) value to orient the operation within Crew Manager. If no PIT value is provided by the user, the current server time will be used.
Crew Manager data structures can be found in the Appendix – XSD section.
Crew Manager Background
- An electric industry enterprise software application designed for system-wide resource management
- Designed and field tested by leading-edge U.S. electric utilities
- Integrated with ARCOS Callout & Scheduling Suite and ARCOS Workbench
- SaaS solution 100% managed and delivered by ARCOS
Crew Manager Features
- Centralized anytime, anywhere access
- Distributed real-time updating
- Touch screen capable and PC interface
- Independent SaaS delivery infrastructure
- Enterprise scalable, configurable platform
- Real-time dashboard and ad-hoc reporting
- Event recording and playback
Crew Manager & Callout
- User access is dependent on their access level in Callout
- Employee Data shown in the “Crew Panel” is taken from Callout
- Integrations basic employee data between both products (Name, Phone number(s), Primary Classification, Schedules and Schedule Exceptions)
- If configured, completed callouts will show the accepted employees in Crew Manager
- Like Callout, Crew Manager is accessed via the Web UI
- Web Based, Android, and iOS clients available
CLICK HERE FOR MORE CREW MANAGER LITERATURE.
Crew Manager & Platform API
- It is essential to understand the basics of Crew Manager and use from a Business Perspective to effectively create API Calls to retrieve, create, update, or delete information.
- Perspective, Attributes, and Attribute Values must be configured within the application whether using the API or Data Loader. Attributes must exist and the values associated with those Attributes must exist or the API will return that the Attribute or Value was not found and any updates will fail.
- Whether Crews, Workorders, Equipment, or Hotels and Lodging, all resource types must have Attributes and associated values that can be filtered to bring the data in.
- Everything has an ID (Crews, Members, Equipment, WorkOrders, Assignments). When creating a new crew, resource, workorder, or hotel every new data element is assigned an ID that is used in subsequent updates or deletions. These IDs are set at time of creation and they are required for most updates.
- Must keep in mind PIT (Point in Time). If a resource is assigned an EndDate and you are looking at a PIT which is past that EndDate the API may not return the requested resource.
- All Attributes and Values are CASE Sensitive. If misspelled or case is incorrect, API Requests may not function as expected.
Point in Time (PIT)
The notion of PIT is used extensively in the Crew Manager Application, and as such, most /cm operations will accept an optional PIT parameter to determine the effective date for a given operation. If not provided, the current server time will be used.
Existing Perspectives in Crew Manager
Given access to ARCOS Crew Manager, you may take the existing information from ARCOS and apply it to the API endpoints you are needing to use. To obtain existing identifiers, like the Perspective ID or the Crew ID, you go to the Web Application and hover over the name of the resource you are looking for:
Supported Operations
getSavedSets - GET /cm/savedSets
Returns a collection of filters, perspective, and view set configurations. Also contains all ARCOS ID numbers required for data mapping between sets and other data extracts.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
set_id | int | no | ARCOS Saved Set ID |
None | Returns saved set with the matching ARCOS set ID |
set_type | String | no | filter, perspective, viewSet | None | Returns a collection of saved sets matching the supplied type |
groupsByPerspective - GET /cm/ groupsByPerspective/{perspectiveId}
Returns a collection of identifications and attributes based upon the Perspective ID provided.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
set_id | int | no | Saved Set ID | None |
Returns saved set with the matching set ID. Available through your web browser for Perspective details. |
getCrews - GET /cm/crews
Returns a collection of Crew elements that are active as of PIT, optionally filtered by crewId or the ‘attr’ parameter. If no PIT is provided, then it defaults to now. This method supports pagination through the use of the ‘page’ parameter, ‘X-Arcos-Page’ header, and ‘X-Arcos-Total-Pages’ header.
If the response payload could contain over 5000 employee records, the use of pagination is required or the request may fail with an error that the response contains over 5000 records and pagination is required.
Request Query Parameters
createCrew - POST /cm/crews
Creates or updates the target Crew and its corresponding attributes. For a new Crew to be generated, the ID should be set to “0” or left blank.
Request Payload
Example
<crew id="0" name="Sample Storm Crew"
createdDate="2019-05-15T13:24:55-04:00" changedDate="2021-04-05T10:20:07-04:00">
<attributes>
<attributeRecord name="WorkArea" value="Grid 25"/>
</attributes>
<tickets/>
<memberCnt>0</memberCnt>
</crew>
Response Payload
A Status element will be returned which contains an array of OpStatus elements including the ARCOS generated unique id for the crew.
Example
<multistatus>
<status id="1727" name="Sample Storm Crew" code="1" message="Element saved"/>
</multistatus>
getCrewsByIds - POST /cm/crewsByIds
This method accepts a Multipart payload to return data based on the following parameter values.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
attributes | int | no | 0,1 | 0 | Enable AttributeRecords flag. |
members | int | no | 0, 1 | 0 | Enable Member Assignments. |
scheds | int | no | 0, 1 | 0 | Enable Member Schedules. |
assigns | int | no | 0, 1 | 1 | Enable Resource Assignments. |
availDays | int | no | 1 - 5 | 1 | List the number of days to consider for lodging based AttributeRecords. |
attr | String | yes | None |
A numberic string to enable the crews to added to the existing location. The syntax is: attr=crews;attributeName:value1,value2,value3 Replace attributeName with the name of the Crew Attribute to search and replace the value1,value2,value3 clause with a comma separated list of values to match. |
|
zoom | int | no | 1-72 | 36 | Number of hours before and after PIT to enable for Member Schedule Records. |
changedSince | Datetime | no | YYYYMMDDTHH:MM:SSZ | None |
getCrew - GET /cm/crews/{crewId}
Returns the Crew element corresponding to the provided Crew ID: {crewId}.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
pit | Datetime | no | Reference Definitions | Current Time | Establishes the POINT IN TIME for the call being made. |
crew_id | List of int | no | none | Returns only the crews with matching ids | |
attributes | int | no | 0, 1 | 1 | Include AttributeRecords flag. |
members | int | no | 0, 1 | 1 | Show Member Assignments. |
scheds | int | no | 0, 1 | 0 | Show Member Schedules. |
assigns | int | no | 0, 1 | 0 | Show Resource Assignments. |
availDays | int | no | 1 - 5 | 1 | Number of days to consider for lodging based AttributeRecords. |
zoom | int | no | 1-72 | 36 | Number of hours before and after PIT to search for Member Schedule Records. |
attrValDetails | bool | no | 0,1 | ||
perspective_id | int | no |
ARCOS
|
none | |
resolvePickMember | bool | no | 0,1 | 1 |
getCrewForMember - GET /cm/members/{contactId}/crew
Returns the Crew element that the {contactId} is assigned to as of PIT. If the {contactId} is not assigned a Crew, a ‘404 Not Found’ status is returned.
Parameter | Type | Required | Valid Values | Default | Description |
pit | Datetime | no | Reference Definitions | Current Time | Establishes the POINT IN TIME for the call being made. |
crew_id | List of int | no | none | Returns only the crews with matching ids | |
attributes | int | no | 0, 1 | 1 | Include AttributeRecords flag. |
members | int | no | 0, 1 | 1 | Show Member Assignments. |
scheds | int | no | 0, 1 | 0 | Show Member Schedules. |
assigns | int | no | 0, 1 | 0 | Show Resource Assignments. |
availDays | int | no | 1 - 5 | 1 | Number of days to consider for lodging based AttributeRecords. |
zoom | int | no | 1-72 | 36 | Number of hours before and after PIT to search for Member Schedule Records. |
attrValDetails | bool | no | 0,1 | ||
perspective_id | int | no |
ARCOS
|
none | |
resolvePickMember | bool | no | 0,1 | 1 |
getResources - GET /cm/resources
Returns a collection of Resource elements that are active as of PIT, optionally filtered by resource_id, the ‘attr’ parameter, or the resourceType parameter. This method supports pagination through the use of the ‘page’ parameter, ‘X-Arcos-Page’ header, and ‘X-Arcos-Total-Pages’ header.
If the response payload could contain over 5000 employee records, the use of pagination is required or the request may fail with an error that the response contains over 5000 records and pagination is required.
Parameter | Type | Required | Valid Values | Default | Description |
resource_id | List of int | no | Returns only the crews with matching ids | ||
attributes | int | no | 0, 1 | 1 | Include AttributeRecords flag. |
assigns | int | no | 0, 1 | 0 | Show Crew and Member Assignments. |
resourceType | String | no | Existing Resource Name | none | Can be used to return only resources that match the type provided, for example resourceType=WorkOrder will only return WorkOrders. |
attr | String | no | none |
A search string to find the resources to return.
The syntax is: attr=resourceTypeName;attributeName:value1,value2,value3 Replace the resourceTypeName with an existing resourceType, attributeName with the name of the Resource Attribute to search and replace the value1,value2,value3 clause with a comma separated list of values to match. |
|
Page | Int | No, unless response contains more than 5000 records | Number of page | none | Enables and controls pagination. Value is the number of the page requested. |
getResource - GET /cm/resources/{resourceId}
Returns the Resource element corresponding {resourceId}.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
pit | Datetime | no | Datetime | Now | Returns only the crews with matching ids |
attributes | int | no | 0, 1 | 1 | Include AttributeRecords flag. |
assigns | int | no | 0, 1 | 0 | Show Crew and Member Assignments. |
zoom | int | no | Number of whole hours | 36 | Number of hours before and after PIT to search for Member Schedule Records. |
createCrews - POST /cm/batch/crews
This method is similar to the method that creates a single crew but can be used to create multiple crews in a single operation. Simply pass in a collection of Crew Elements in the request body.
Request Payload
A Crew Element (AttributeRecords and Member Assignments may be sent. Other Assignments or elements will result in an error or be ignored).
Example
<crews>
<crew id="0" name="Sample Storm Crew - North">
<attributes>
<attributeRecord name="Storm North" value="North"/>
</attributes>
</crew>
<crew id="0" name="Sample Storm Crew - South">
<attributes>
<attributeRecord name="Storm South" value="South"/>
</attributes>
</crew>
</crews>
A StatusList element will be returned which contains an array of OpStatus elements. There will be one OpStatus element for every operation that is involved for creating the Crew Element (Crew creation, AttributeRecord creations, and Member Assignments). The id field of the OpStatus will contain the id for the entity that was created during each operation step.
Example
<multistatus>
<status id="2717" name="Sample Storm Crew - North" code="1" message="Element saved"/>
<status id="15383" code="1" message="Attribute StormEvent set to North"/>
</multistatus>
<multistatus>
<status id="2718" name="Sample Storm Crew - South" code="1" message="Element saved"/>
<status id="15384" code="1" message="Attribute StormEvent set to South"/>
</multistatus>
</statusLists>
createCrewMember - POST /cm/crews/{crewId}/members
Add a Member Assignment to the Crew.
Request Query Parameters
Parameter | Type | Required | Description |
memberId | int | yes | The Arcos contactId of the Member to be added to the Crew |
end | Datetime | no | The date the Member Assignment should end. If no value is provided, then the Member Assignment is considered permanent and all future Crew Assignments for this Member will be ended. |
Example
<crew id="2711" name="Sample Crew ">
<attributes>
<attributeRecord name="Division" value="Central"/>
<attributeRecord name="WorkLocation" value="Pleasant Grove"/>
<attributeRecord name="Rotation_Group" value="Regular Schedule Days"/>
<attributeRecord name="SectionCode" value="720"/>
<attributeRecord name="CrewType" value="Overhead"/>
<attributeRecord name="Supervisor" value="Rosa, Kyle"/>
<attributeRecord name="NumMembers" value="3"/>
<attributeRecord name="HasMembers" value="Yes"/>
</attributes>
<assignments>
<assignment assignId="9319" assignStart="2021-05-19T03:48:39-04:00">
<member crewId="2715" siteId="9999" id="3742" name="Rigdon, Preston">
<attributes>
<attributeRecord name="PrimaryLoc" value="Pleasant Grove"/>
<attributeRecord name="PrimaryClass" value="Crew Chief"/>
<attributeRecord name="Status" value="Available"/>
</attributes>
</member>
</assignment>
</assignments>
</crew>
An OpStatus object representing the status of the Member Assignment. The ‘id’ field of the OpStatus object will be set to the ‘assignId’ of the Member Assignment.
Example
<opStatus id="9322" code="1" message="Assignment saved"/>
updateCrewMember - DELETE /cm/crews/{crewId}/members
Remove a Member Assignment from the Crew.
Parameter | Type | Required | Description |
assignId | int | yes | The assignId of the Assignment to end. |
An OpStatus object representing the status of ending the Member Assignment.
Example
<opStatus id="9084" code="1" message="Assignment saved"/>
deleteCrew - DELETE /cm/crews/{crewId}
This method will set the deleted date on the Crew element that matches the crewId provided, effectively removing this Crew from the Crew Manager application as of PIT.
https://qa.rostermonster.com/arcos/rest/cm/crews/2716
Response Payload
An OpStatus element will be returned with the result of the operation.
Example
<opStatus id="2716" code="1" message="OK"/>
saveCrewAttribute - POST /cm/crews/{crewId}/attributes
This method can be used to change static Crew Attributes as of PIT.
AttributeRecords represent the setting of an Attribute to a specific ‘value’ for a given period of time (‘start’ to ‘end’). When representing Resource Assignments, the ‘value’ of the AttributeRecord will be set to the ‘resourceId’ of the Resource that is assigned to the Crew or Member.
Most Attributes within Crew Manager are non-shared. This means that setting an Attribute value will actually end any existing AttributeRecord and start a new one as of PIT. Resource Assignments however, are non-shared AttributeRecords and can have multiple values at any one time.
AttributeRecords that are posted to this method will have their ‘start’ values set to PIT. If an ‘end’ field is not provided, then the AttributeRecord will be considered a permanent Attribute and all future AttributeRecords for that Attribute will be removed.
To Remove an Attribute value, set the ‘value’ field of the AttributeRecord to ‘None’. When ending a Resource Assignment, the correct ‘changeId’ must be provided, for non-Resource related Attributes, the ‘changeId’ field is not required.
Request URI Example - https://qa.rostermonster.com/arcos/rest/cm/crews/2711/attributes
Payload Example
<attributes>
<attributeRecord name="VehicleAssign" value="2583" end="2021-05-18T15:01:30-05:00"/>
</attributes>
A collection of OpStatus elements will be returned, one for each AttributeRecord that was provided.
Example
<opStatuses>
<opStatus id="2711" code="1" message="Updating Attributes"/>
<opStatus id="15376" code="1" message="Attribute VehicleAssign set to 2583"/>
</opStatuses>
saveMemberAttribute - POST /cm/members/{memberId}/attributes
This method can be used to change static Member Attributes as of PIT. See additional notes from the “Change Crew Attributes” section.
Request Payload - https://qa.rostermonster.com/arcos/rest/cm/crews/2711/members
A collection of AttributeRecord Elements.
Example
<attributeRecord name="VehicleAssign" value="2583" />
</attributes>
Response Payload
A collection of OpStatus elements will be returned, one for each AttributeRecord that was provided.
Example
<opStatuses>
<opStatus id="2711" code="1" message="Updating Attributes"/>
<opStatus id="15431" code="1" message="Attribute VehicleAssign set to 2583"/>
</opStatuses>
Alternative endpoint: If the contactId is not the preferred ID value, the vruId or webId can be used as search parameters for the employee -
https://qa.rostermonster.com/arcos/rest/cm/members/0/attributes?searchType=webId&searchValue=prigdon
createResource - POST /cm/resources
Create a new instance of a Resource. This endpoint can be used to create the Resource and its starting AttributeRecords. Note that ‘resourceType’ must be provided so that the appropriate Resource type can be created.
A Resource Element and its AttributeRecords may be sent. Any Assignments given will be ignored (See the ‘Change Crew Attributes’ section for details about Resource Assignments.
<resource resourceType="WorkOrder" resourceTypeId="968" id="0" name="123456-1">
<attributes>
<attributeRecord name="Status" value="Open"/>
</attributes>
</resource>
OR
<resource resourceType="Vehicle" resourceTypeId="1001" id="0" name="Truck">
<attributes>
<attributeRecord name="Make" value="Cybertruck" />
</attributes>
</resource>
Response Payload
An StatusList element will be returned which contains an array of OpStatus elements. There will be one OpStatus element for every operation that is involved for creating the Resource Element. The id field of the OpStatus will contain the id for the entity that was created during each operation step.
Example
<multistatus>
<status id="2583" name="Truck" code="1" message="Element saved"/>
<status id="11810" code="1" message="Attribute Make set to Cybertruck"/>
</multistatus>
createResources - POST /cm/batch/resources
This method is similar to the method that creates a single Resource and can be used to create multiple Resources in a single operation. Pass in a collection of Resource Elements in the request body.
A collection of Resource Elements.
<resource resourceType="Vehicle" resourceTypeId="1001" id="0" name="Truck">
<attributes>
<attributeRecord name="Make" value="Cybertruck" />
</attributes>
<attributes>
<attributeRecord name="Make" value="Rivian" />
</attributes>
<attributes>
<attributeRecord name="Make" value="Lightning" />
</attributes>
</resource>
Response Payload
A collection of StatusList elements will be returned, one for each of the Resource objects that were created.
Example
<multistatus>
<status id="2585" name="Truck" code="1" message="Element saved"/>
<status id="11818" code="1" message="Attribute Make set to Cybertruck"/>
<status id="11818" code="1" message="Attribute Make set to Rivian"/>
<status id="11818" code="1" message="Attribute Make set to Lightning"/>
</multistatus>
saveResourceAttribute - POST /cm/resources/{resourceId}/attributes
This method can be used to change static Resource Attributes as of PIT. See additional notes from the “Change Crew Attributes” section.
A collection of AttributeRecord Elements.
Example
<attributes>
<attributeRecord name="VehServiced" value="Y"/>
</attributes>
A collection of OpStatus elements will be returned, one for each AttributeRecord that was provided.
<opStatuses>
<opStatus id="1094" code="1" message="Updating Attributes"/>
<opStatus id="0" code="1" message="Attribute VehServiced has been updated."/>
</opStatuses>
createWotes - POST /cm/resources/{resourceId}/timeEntries
This method can be used to add new WorkOrderTimeEntry elements (Wotes) for the WorkOrder represented by resourceId.
This call does not create a standalone work order, refer to “Create a new Resource - POST /cm/resources” for creating a new work order.
WorkOrderTimeEntry elements represent a Crew working on a specific WorkOrder for a given period of time (‘start’ - ‘end’), so ‘start’ and ‘end’ or ‘hours’ must be provided.
The ‘changeId’ field is used to find the Crew Attribute that represents the WorkOrder Assignment and is required.
In order for a successful response for this call, you will need to know the start time of the assignment for the workOrder you are referencing. If the timeEntry is not within the parameters of the assigned work order the time entry will not be added or adjusted.
Request Payload
A collection of WorkOrderTimeEntry Elements.
Example
<workOrderTimeEntries>
<workOrderTimeEntry changeId="6165" crewId="1624"
start="2021-05-27T14:14:27-04:00" hours="6.5"/>
</workOrderTimeEntries>
A collection of OpStatus elements will be returned, one for each WorkOrderTimeEntry that was provided.
Example
<opStatuses>
<opStatus id="1177" code="1" message="New TimeEntry created: 1177"/>
</opStatuses>
updateWotes - PUT /cm/resources/{resourceId}/timeEntries
This method can be used to update existing WorkOrderTimeEntry elements. Reference important notes in the “Create Work Order Time Entry” operation section.
A collection of WorkOrderTimeEntry Elements to update.
Example
<workOrderTimeEntries>
<workOrderTimeEntry id="1170" changeId="15442" crewId="2714" start="2021-05-27T14:14:28-04:00" end="2021-12-27T14:14:28-04:00" changeDate="2021-12-15T16:50:25-04:00"/>
</workOrderTimeEntries>
Response Payload
A collection of OpStatus elements will be returned, one for each WorkOrderTimeEntry that was provided.
Example
<opStatuses>
<opStatus id="0" code="1" message="TimeEntry updated: 1170"/>
</opStatuses>
deleteWote - DELETE /cm/resources/{resourceId}/timeEntries/{woteId}
This method can be used to remove an existing WorkOrderTimeEntry element.
A collection of OpStatus elements will be returned, one for each WorkOrderTimeEntry that was provided.
deleteResource - DELETE /cm/resources/{resourceId}
This method will set the deleted date on the Resource element that matches the resourceId provided, effectively removing this Resource from the Crew Manager application as of PIT.
Request Payload
The method supports a Multipart Form payload containing a parameter of ‘pit’ and a value of ISO-8601 Datetime. The supplied ‘pit’ defines the Point In Time that the resourceId will be deleted.
Multipart Form Parameters
Parameter | Type | Required | Valid Values | Default | Description |
pit | Datetime | no | Datetime | NOW | The Point in Time for the resourceId provided in the URI to be reflected as deleted in Crew Manager. |
An OpStatus element will be returned with the result of the operation.
audit - GET /cm/audit
This method will return a set of any crews that exist(ed) and match(ed) the search attr or id provided within the startDate and endDate window will be returned. If crewAttr, memberAttr and resourceAttr parameters are set to 1, then all changeable attributes within those crews should be returned. Note that System, Calculated Value, and Pseudo attributes will not be returned in this dataset.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
id | int | no | none | Returns only the crews with matching ids | |
attr | String | yes |
A search string to find the crews to return.
The syntax is: attr=crews;attributeName:value1,value2,value3 Replace attributeName with the name of the Crew Attribute to search and replace the value1,value2,value3 clause with a comma separated list of values to match. |
||
crewAttr | bool | no | 0, 1 | 1 | Include AttributeRecords flag. |
members | bool | no | 0, 1 | 1 | Include Members. |
membersAttr | bool | no | 0, 1 | 1 | Include Member Attributes. |
resources | bool | no | 0, 1 | 1 | Include Resources. |
resourceAttr | bool | no | 0, 1 | 1 | Include Resource Attributes. |
changedSince | Datetime | no | YYYYMMDDTHH:MM:SSZ | Current Time | Provides attributes with a changed date that occurred after changedSince. |
userChangesOnly | bool | no | 0,1 | 1 | Provides elements only if they have been changed in the Web UI (Excludes API/Loader changes) |
Response Payload
A collection of Crews that match the query parameters.
Example
<crews>
<crew id="1155" name="Callout for Sch OT" createdDate="2018-01-09T21:19:57-05:00" deletedDate="" changeDate="2018-06-27T10:19:29-04:00">
<attributes>
<attributeRecord name="CrewType" value="Overhead" start="2018-04-16T12:49:10-04:00"
end="2018-10-24T12:37:22-04:00" changeId="2108" changeDate="2018-10-24T12:37:23-04:00">
</attributeRecord>
<attributeRecord name="Crews" value="Troublemen" start="2018-04-16T12:49:10-04:00"
end="" changeId="2107" changeDate="2018-04-16T12:49:18-04:00"></attributeRecord>
</attributes>
<assignments>
<assignment assignId="1515" label="null" assignStart="2018-04-16T12:49:10-04:00"
assignEnd="2018-10-09T11:16:37-04:00" changeDate="2018-10-09T11:16:38-04:00">
<member crewId="1155" id="1014" name="Ballstaedt, Dan">
<attributes>
<attributeRecord name="LaborRate" value="75" start="2018-03-28T15:31:09-04:00"
end="" changeId="1389" changeDate="2018-03-28T15:35:22-04:00"></attributeRecord>
</attributes>
<assignments>
<assignment assignId="1018" label="Meals" assignStart="2017-03-20T10:05:43-04:00"
assignEnd="" changeDate="2017-03-20T10:05:44-04:00">
<resource resourceType="Meals" resourceTypeId="1002" id="1013" name="Breakfast Box" createdDate="2017-03-20T09:29:25-04:00" deletedDate="" changeDate="2017-03-20T09:29:26-04:00">
<attributes>
<attributeRecord name="MealTime" value="Breakfast"
start="2017-03-20T09:29:25-04:00" end="" changeId="1033" changeDate="2017-03-20T09:29:26-04:00">
</attributeRecord>
</attributes>
</resource>
</assignment>
</assignments>
</member>
</assignment>
<assignment assignId="2105" label="WorkOrder" assignStart="2018-04-16T12:49:10-04:00"
assignEnd="" changeDate="2018-04-16T12:49:18-04:00">
<resource resourceType="WorkOrder" resourceTypeId="968" id="1080" name="Car Hit Pole"
createdDate="2017-11-06T09:49:27-05:00" deletedDate=""
changeDate="2017-11-06T09:49:29-05:00">
<attributes>
<attributeRecord name="Address" value="45336 Highway 10"
start="2017-11-06T09:49:27-05:00" end="2018-10-24T12:38:16-04:00"
changeId="1247" changeDate="2018-10-24T12:38:17-04:00">
</attributeRecord>
</attributes>
</resource>
</assignment>
</assignments>
</crew>
</crews>
getResourceTypes - GET /cm/resourceTypes
This method returns a collection of available resourceTypeDefinitions.
Response Payload
Example
<resourceTypeDefinitions>
<resourceTypeDefinition id="1012" name="Vehicle"/>
<resourceTypeDefinition id="1009" name="Equipment"/>
<resourceTypeDefinition id="1010" name="Technology"/>
</resourceTypeDefinitions>
getLodgings - GET /cm/lodgings
This method returns a collection of lodgings and their attributes. This method supports pagination through the use of the ‘page’ parameter, ‘X-Arcos-Page’ header, and ‘X-Arcos-Total-Pages’ header.
If the response payload could contain over 5000 employee records, the use of pagination is required or the request may fail with an error that the response contains over 5000 records and pagination is required.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
pit | datetime | No | Reference Definitions | none | Returns only the lodgings within provided point in time. |
lodging_id | int | No | none | Returns only the lodging with matching ids. | |
attributes | int | No | none | Include AttributeRecords flag | |
assigns | int | No | none | Show Resource Assignments. | |
availDays | Int | No | none | Number of days to consider for lodging based AttributeRecords. | |
attr | list | No | none |
A search string to find the lodgings to return.
|
|
zoom | Int | No | none | Number of hours before and after PIT to search for Member Lodging Records. | |
changedSince | string | No | none | Provides lodging with a changed date that occurred after changedSince. | |
userChangesOnly | int | No | none | Provides elements only if they have been changed in the Web UI (Excludes API/Loader changes) | |
getDeleted | int | No | none | Provides elements only if they have been removed | |
Page | Int | Only if the Response data is over 5000 | none | Enables and controls pagination. Value is the number of the page requested. |
Response Payload
Example
<lodgings>
<lodging id="1025" name="South Boston Inn"
createdDate="2018-03-13T11:29:12-04:00" changedDate="2021-05-12T13:56:08-04:00">
<attributes>
<attributeRecord name="City" value="Columbus"
start="2018-03-13T11:29:12-04:00" changeId="1037" changeDate="2018-03-13T11:29:12-04:00"/>
<attributeRecord name="Contact" value="Preston Rigdon"
start="2021-05-12T10:24:36-04:00" changeId="1118" changeDate="2021-05-12T10:24:36-04:00"/>
<attributeRecord name="Address" value="1234 Old Town Road"
start="2021-05-12T10:48:32-04:00" changeId="1121" changeDate="2021-05-12T10:48:32-04:00"/>
<attributeRecord name="Hotel" value="Fancy"
start="2021-05-12T10:48:32-04:00" changeId="1122" changeDate="2021-05-12T10:48:32-04:00"/>
</attributes>
</lodging>
</lodgings>
getLodging - GET /cm/lodgings/{lodgingId}
This method returns a the lodging element for the provided {lodgingId}
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
pit | Datetime | No | Establishes the POINT IN TIME for the call being made. | ||
attributes | int | No | Include AttributeRecords flag | ||
assigns | int | No | Show lodging Assignments | ||
availDays | int | No | Number of days to consider for lodging based AttributeRecords. | ||
zoom | int | No | Number of hours before and after PIT to search for Lodging Records. |
Response Payload
Example
<lodgings>
<lodging id="1025" name="South Boston Inn"
createdDate="2018-03-13T11:29:12-04:00" changedDate="2021-05-12T13:56:08-04:00">
<attributes>
<attributeRecord name="City" value="Columbus"
start="2018-03-13T11:29:12-04:00" changeId="1037" changeDate="2018-03-13T11:29:12-04:00"/>
<attributeRecord name="Contact" value="Preston Rigdon"
start="2021-05-12T10:24:36-04:00" changeId="1118" changeDate="2021-05-12T10:24:36-04:00"/>
<attributeRecord name="Address" value="1234 Old Town Road"
start="2021-05-12T10:48:32-04:00" changeId="1121" changeDate="2021-05-12T10:48:32-04:00"/>
<attributeRecord name="Hotel" value="Fancy"
start="2021-05-12T10:48:32-04:00" changeId="1122" changeDate="2021-05-12T10:48:32-04:00"/>
</attributes>
</lodging>
</lodgings>
getCrewMembers - GET /cm/crews/{crewId}/members
Returns the members element for the provided {crewId} that is in effect at PIT. If PIT is not provided, the current time is used.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
crewId | int | No | crewId | None | Returns only the crews with matching ids |
pit | Datetime | No | Datetime | None | Establishes the POINT IN TIME for the call being made. |
attributes | int | No | 0, 1 | 1 | Include AttributeRecords flag. |
scheds | int | No | 0, 1 | 1 | Show Member Schedules. |
attrValDetails | int | No | 0, 1 | 0 | |
resolvePickMember | int | No | 0, 1 | 1 |
Response Payload
Example
<members>
<member crewId="1624" siteId="9999" id="4123" name="Dailey, James">
<attributes>
<attributeRecord name="PrimaryLoc" value="McLeod OpCenter"/>
<attributeRecord name="PrimaryClass" value="Arcos User"/>
[...]
</attributes>
<scheduleRecords/>
</member>
</members>
getResource - GET /cm/resources/{resourceId}
Returns the resource element for the provided {resourceId}.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
resource_id | Int | no | Returns only the resources with matching ids. | ||
attributes | Bool | no | 0, 1 | 1 | Include AttributeRecords flag. |
assigns | Bool | no | 0, 1 | 0 | Show Crew and Member Assignments. |
pit | Datetime | no | None | ||
zoom | Int | no | 36 |
getCrewsForRA - GET /cm/crewsForRa
This method is published in our Web Application Description language (WADL) but not yet described here. If you require additional information on this method, please speak with an ARCOS Representative.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
startTime | Datetime | Yes | None | ||
endTime | Datetime | Yes | None | ||
perspective_id | Int | No | None |
getWorkIntegration - GET /cm/workIntegration
Returns the status of the Work Integration. If the Work Integration is enabled the response will be “true”. If the Work Integration is disabled the response will be “false”.
getRoomTypes - GET /cm/roomTypes
Provides the Room Types currently available in ARCOS as represented by the roomTypes element.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
pit | Datetime | No | Now | ||
attributes | Bool | No | 0, 1 | 1 |
Response Payload
Example
<roomTypes>
<roomType size="2" name="Jacuzzi" abbreviation="JZ" id="1008"
createdDate="2019-04-15T08:54:29-04:00" changedDate="2019-04-15T09:42:46-04:00"/>
<roomType size="50" name="Single" abbreviation="SINGLE" id="1009"
createdDate="2019-04-15T08:54:29-04:00" changedDate="2019-04-15T09:44:27-04:00"/>
<roomType size="60" name="Double" abbreviation="DBL" id="1011"
createdDate="2019-04-18T11:46:42-04:00" changedDate="2019-04-18T11:49:13-04:00">
<attributes>
<attributeRecord name="Smoking" value="NO"
start="2020-02-06T14:52:51-05:00" changeId="1006" changeDate="2020-02-06T14:55:18-05:00"/>
</attributes>
</roomType>
</roomTypes>
getAvlMemberBadges - GET /cm/avlMemberBadges
This method is published in our Web Application Description language (WADL) but not yet described here. If you require additional information on this method, please speak with an ARCOS Representative.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
member_id | Int | Yes | memberId | None | Same as the contactId for the user |
set_id | Int | setId | None | Possibly the perspectiveId | |
pit | Datetime | No | Datetime | Now | |
resolvePickMember | Bool | No | 0, 1 | 0 |
getGroups - GET /cm/groups
This method returns a collection of crewGroups matching the attr query.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
pit | Datetime | No | Now | ||
attributes | Bool | No | 1 | ||
members | Bool | No | 1 | ||
scheds | Bool | No | 0 | ||
assigns | Bool | No | 0 | ||
availDays | Int | No | 3 | ||
attr | String | Yes | None | ||
zoom | Int | No | 36 | ||
groupBy | String | No | None | ||
changedSince | Datetime | No | None | ||
perspectiveId | Int | No | None |
sync - GET /cm/sync
Returns information for the time range between startDate and endDate. The 'action' parameter determines whether the method will return information for resources or lodgings.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
startDate | Datetime | Y | ISO-8601 Datetime | null | An item must exist (not be deleted) AFTER this date. The max range between startDate and endDate is 365 days. |
endDate | Datetime | Y | ISO-8601 Datetime | null | An item must have been created BEFORE this date. The max range between startDate and endDate is 365 days. |
changedSince | Datetime | N | ISO-8601 Datetime | 1970-01-01 |
Format example: 2020-07-10T06:55:23 Return only data changed since this date. NOTE: to be found, an entity should be active at time of PIT. This means that records created AFTER PIT, or deleted BEFORE PIT, will NOT be returned. |
userChangesOnly | Bool | N | 0, 1 | 0 | If set to 1, results will NOT include records changed by Loader processes. |
action | String | Y | See Description | null | The valid values are resources and lodgings. |
Response Payload
This method streams out an XML or JSON strings, depending on the 'Accept' header value set in the request.
Example
<resources>
<resource resourceType="WorkOrder" resourceTypeId="968" id="1006" name="KF-10/29" createdDate="2015-10-27T23:17:23-04:00" deletedDate=""
changeDate="2015-10-28T07:19:36-04:00">
<attributes>
<attributeRecord name="EstHours" value="4" start="2015-10-27T23:17:23-04:00" end="" changeId="1017" changeDate="2015-10-28T07:19:36-04:00"></attributeRecord>
<attributeRecord name="LOC2" value="Test" start="2015-10-27T23:17:23-04:00" end="" changeId="1018" changeDate="2015-10-28T07:19:36-04:00"></attributeRecord>
</attributes>
</resource>
</resources>
syncCrews - GET /cm/sync/crews
Returns information without specifying the precise PIT. Instead, takes the time range between startDate and endDate.
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
startDate | Datetime | Y | ISO-8601 Datetime | null | An item (crew, resource, attribute etc.) must exist (not be deleted) AFTER this date. The max range between startDate and endDate is 365 days. |
endDate | Datetime | Y | ISO-8601 Datetime | null | An item (crew, resource, attribute etc.) must have been created BEFORE this date. The max range between startDate and endDate is 365 days. |
attr | String | N | See Description | null |
A search string to find the crews to return. Multiple attr parameters can be given.
attr=crews;CrewType:Support&attr=crews;Division:Underground
attr=crews;CrewType:Support,Maintenance.
|
Id | Int | N | See Description | null | Allows to specify crew_ids of interest. Multiple id parameters can be given. Each id parameter is added separately (e.g. id=10905&id=5292) |
changedSince | Datetime | N | ISO-8601 Datetime | 1970-01-01 |
Format example: 2020-07-10T06:55:23 NOTE: to be found, an entity should be active at time of PIT. This means that records created AFTER PIT, or deleted BEFORE PIT, will NOT be returned. |
userChangesOnly | Bool | N | 0, 1 | 0 | If set to 1, results will NOT include records changed by Loader processes. |
crewAttr | Bool | N | 0, 1 | 0 | Return attributes of crews. |
members | Bool | N | 0, 1 | 1 | Return members assigned to crews. |
memberAttr | Bool | N | 0, 1 | 0 | Return attributes of members assigned to found crews. |
resources | Bool | N | 0, 1 | 0 | Return resources assigned to found crews. |
resourceAttr | Bool | N | 0, 1 | 0 | Return attributes of resources assigned to found crews. |
schedules | Bool | N | 0, 1 | 0 | Return schedule information for members assigned to found crews. |
Response Payload
This method streams out an XML or JSON strings, depending on the 'Accept' header value set in the request.
Example
<crews>
<crew id="1081" name="Underground" createdDate="2017-09-29T11:04:48-04:00" deletedDate="" changeDate="2018-04-16T12:49:18-04:00">
<attributes>
<attributeRecord name="CrewType" value="Underground" start="2018-04-16T12:49:10-04:00" end="" changeId="2115" changeDate="2018-04-16T12:49:18-04:00"></attributeRecord>
</attributes>
<assignments>
<assignment assignId="1518" label="null" assignStart="2018-04-16T12:49:10-04:00" assignEnd="2019-11-27T13:35:39-05:00" changeDate="2019-11-27T13:35:39-05:00">
<member crewId="1081" id="1086" name="Livingston, Andrew">
<attributes>
<attributeRecord name="Gender" value="Male" start="2018-05-03T08:58:20-04:00" end="" changeId="1411" changeDate="2018-05-03T09:09:32-04:00"></attributeRecord>
</attributes>
<assignments></assignments>
<scheduleRecords>
<scheduleRecord memexId="26787" eventid="1008" description="Working - Normal Shift" abbreviation="sh" comment="" assignStart="2019-03-06T06:00:00-05:00" assignEnd="2019-03-06T18:00:00-05:00"></scheduleRecord>
</scheduleRecords>
</member>
</assignment>
</assignments>
</crew>
</crews>
createLodging - POST /cm/lodgings
Creates Lodging.
Request Payload
Example
<lodging id="0" name="South Boston Inn" available="16" createdDate="2021-05-11T00:00:00-04:00" changedDate="2021-05-11T11:03:32-04:00"/>
Response Payload
A Status element will be returned which contains an array of MultiStatus elements including the ARCOS generated unique id for the lodging.
Example
<multistatus>
<status id="1058" name="South Boston Inn" code="1" message="Element saved"/>
<status id="1123" code="1" message="Attribute Capacity set to [ ]"/>
</multistatus>
createLodgings - POST /cm/batch/lodgings
Creates multiple Lodgings.
Request Payload
Example
<lodgings>
<lodging id="0" name="Kyle's Airbnb"/>
<lodging id="0" name="Kyle's Airbnb 2"/>
<lodging id="0" name="Kyle's Airbnb 3"/>
</lodgings>
Response Payload
A Status element will be returned which contains an array of MultiStatus elements including the ARCOS generated unique id for the lodging.
Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<statusLists>
<multistatus>
<status id="1063" name="Kyle's Airbnb" code="1" message="Element saved"/>
<status id="1128" code="1" message="Attribute Capacity set to []"/>
</multistatus>
<multistatus>
<status id="1064" name="Kyle's Airbnb 2" code="1" message="Element saved"/>
<status id="1129" code="1" message="Attribute Capacity set to []"/>
</multistatus>
<multistatus>
<status id="1065" name="Kyle's Airbnb 3" code="1" message="Element saved"/>
<status id="1130" code="1" message="Attribute Capacity set to []"/>
</multistatus>
</statusLists>
deleteLodging - DELETE /cm/lodgings/{lodgingId}
Deletes a given lodging. Path parameter: lodgingId - id of the lodging to delete.
Response Payload
This method returns an OpStatus element.
getAttributes - GET /cm/attributes
Provides the crew manager attributes currently available in ARCOS as represented by the attributes element.
Example - https://qa.rostermonster.com/arcos/rest/cm/attributes?getValues=1
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
getValues | int | No | 0,1 | 1 | If set to 1 - the values defined for the attribute will also be returned. If set to 0 - only Attribute Definitions will be returned. |
target | string | No | groups, crews, members, resources | 1 | If given, only attributes for this target will be returned.[GB1] |
inUseOnly | int | No | 0,1 | 0 | If set to 1, and target is set to one of following: 'crews', 'members', 'lodgings', 'roomTypes', then only attributes which have been actually used for that target will be returned. |
perspectiveId | string | No | If given, only attributes present in this perspective will be returned. |
Response Payload
Example
<attributeDefinitions>
<attributeDefinition target="groups" name="NumCrews">
<values/>
</attributeDefinition>
<attributeDefinition target="groups" name="NumCrewsWorking">
<values/>
</attributeDefinition>
<attributeDefinition target="groups" name="NumMembers">
<values/>
</attributeDefinition>
saveLodgingAttribute - POST /cm/lodgings/{id}/attributes
Creates/updates Attributes for the given lodgings..
Request Payload
Example
<lodging id="0" name="South Boston Inn" available="16" createdDate="2021-05-11T00:00:00-04:00" changedDate="2021-05-11T11:03:32-04:00"/>
Response Payload
This method returns a List of OpStatus elements, one OpStatus per attribute.
Example
<multistatus>
<status id="1058" name="South Boston Inn" code="1" message="Element saved"/>
<status id="1123" code="1" message="Attribute Capacity set to [ ]"/>
</multistatus>
createRoomTypes - POST /cm/batch/roomTypes
Creates/updates multiple room types and attributes for the given lodgings..
Request Payload
Example
<roomTypes>
<roomType size="10" name="smoke" abbreviation="S" id="1010" createdDate="2021-11-14T14:34:02-04:00" changedDate="2021-11-14T14:34:02-04:00"/>
<roomType size="1" name="Double Smoke" abbreviation="2xS" id="1011" createdDate="2021-11-14T14:34:02-04:00" changedDate="2021-11-14T15:34:48-04:00">
<attributes></attributes>
</roomType>
</roomTypes>
Response Payload
This method returns a List of OpStatus elements, one OpStatus per attribute.
Example
<statusLists>
<multistatus>
<status id="1010" code="1" message="Element saved"/>
</multistatus>
<multistatus>
<status id="1011" code="1" message="Element saved"/>
</multistatus>
</statusLists>
saveAttributes - POST /cm/batch/attributes
Used to add attributes to target entities. Targets can be crews, members, lodgings, roomTypes, or resource types defined in the system.
The “Point In Time” sets the effective date for a given operation. If not provided, the current server time will be used.
Request Payload
Example
<attributeCollections>
<attributeCollection targetType="Members" id="0" searchType="webId" searchValue=" member_username">
<attributes>
<attributeRecord name="WorkedHrsThreshold" value="Active"/>
</attributes>
</attributeCollection>
</attributeCollections>
Response Payload
This method returns a List of OpStatus elements, one OpStatus per attribute.
Example
<statusLists>
<multistatus>
<status id="member_username" code="1" message="Updating Attributes"/>
<status id="2914" code="1" message="Attribute WorkedHrsThreshold set to Active"/>
</multistatus>
</statusLists>
createRoomType - POST /cm/roomType
Creates/updates room types and room attributes for the given lodging.
Request Payload
Example
<roomType size="10" name="smoke" abbreviation="S" id="0" createdDate="2021-11-14T14:34:02-04:00" changedDate="2021-11-14T14:34:02-04:00"/>
Response Payload
This method returns a List of OpStatus elements, one OpStatus per attribute.
Example
<multistatus>
<status id="1010" code="1" message="Element saved"/>
</multistatus>
getAttributesByNames - GET /cm/attributesByName
Gets Attribute Definitions, and values pre-defined for those attributes.
Example - https://qa.rostermonster.com/arcos/rest/cm/attributes?getValues=1
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
attributesByName | string | No | 0,1 | 1 | If given, only attributes for this name will be returned |
target | string | No | If given, only attributes for this target will be returned. |
Response Payload
Example
<attributeDefinitions>
<attributeDefinition target="groups" name="NumCrewsWorking" addDate="12/28/2017 12:21:56">
<properties>
<item name="ord" value="999"/>
<item name="cd" value="03/05/2019 20:42:05"/>
<item name="hasProp" value="1"/>
<item name="sn" value="1"/>
<item name="locked" value="1"/>
<item name="pseudo" value="1"/>
<item name="wt" value="px"/>
<item name="desc" value=""/>
</properties>
<values>
<value value="Default" ord="999" bgColor="" badgeText="" image="" fontColor="" borderColor=""/>
</values>
</attributeDefinition>
</attributeDefinitions>
saveRoomTypeAttribute - POST /cm/roomTypes/{id}/attributes
Request Payload
Example
<attributes>
<attributeRecord name="Smoking" value="No" start="2021-12-15T09:26:46-05:00" changeId="1010" changeDate="2021-12-15T09:26:46-05:00"/>
</attributes>
Response Payload
This method returns a List of OpStatus elements, one OpStatus per attribute.
Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<opStatuses>
<opStatus id="1023" code="1" message="Updating Attributes"/>
</opStatuses>
deleteRoomType - DELETE /cm/roomTypes/{roomTypeId}
This method will set the deleted date on the roomType that matches the roomTypeId provided, effectively removing this room from the Crew Manager application at that PIT.
Example - https://qa.rostermonster.com/arcos/rest/cm/roomTypes/1023?pit=2021-12-13T14:34:02-04:00
Request Query Parameters
Parameter | Type | Required | Valid Values | Default | Description |
roomTypeId | int | Yes | If given, only hotel room for this lodging will be returned | ||
pit | string | No | If given, only attributes for this point in time will be returned. |
Response Payload
Example
<opStatus id="1023" code="1" message="OK"/>
[GB1]Target does not limit the results of the call to only crews, or only members, etc. Need to review with Engineer as a Bug
Comments
0 comments
Please sign in to leave a comment.