| 
					    This page last changed on Mar 11, 2009 by aunger.
				     DIY REST APIThe DIY supports an XML-based RESTful interface for creating, updating, retrieving and deleting the various objects which it keeps track of. This page describes the API. Things you can manipulateActivitiesURL Summary
| Result | Method | URL |  
| List | GET | /activities.xml |  
| Show | GET | /activities/:id.xml |  
| Create | POST | /activities.xml |  
| Update | PUT | /activities/:id.xml |  
| Delete | DELETE | /activities/:id.xml |  XML model summaryList
<?xml version="1.0" encoding="UTF-8"?>
<activities type="array">
  <activity>
    ...
  </activity>
  ...
</activities>
GET
<?xml version="1.0" encoding="UTF-8"?>
<activity>
  <analysis>Analysis text</analysis>
  <analysis-drawing-response type="boolean" nil="true"></analysis-drawing-response>
  <analysis-text-response type="boolean" nil="true"></analysis-text-response>
  <collectdata>Data collection text</collectdata>
  <collectdata1-calibration-active type="boolean" nil="true"></collectdata1-calibration-active>
  <collectdata1-calibration-id type="integer" nil="true"></collectdata1-calibration-id>
  <collectdata2 nil="true"></collectdata2>
  <collectdata2-calibration-active type="boolean" nil="true"></collectdata2-calibration-active>
  <collectdata2-calibration-id type="integer" nil="true"></collectdata2-calibration-id>
  <collectdata2-drawing-response type="boolean" nil="true"></collectdata2-drawing-response>
  <collectdata2-model-active type="boolean" nil="true"></collectdata2-model-active>
  <collectdata2-model-id type="integer" nil="true"></collectdata2-model-id>
  <collectdata2-probe-active type="boolean" nil="true"></collectdata2-probe-active>
  <collectdata2-probe-multi type="boolean" nil="true"></collectdata2-probe-multi>
  <collectdata2-probetype-id type="integer">1</collectdata2-probetype-id>
  <collectdata2-text-response type="boolean" nil="true"></collectdata2-text-response>
  <collectdata3 nil="true"></collectdata3>
  <collectdata3-calibration-active type="boolean" nil="true"></collectdata3-calibration-active>
  <collectdata3-calibration-id type="integer" nil="true"></collectdata3-calibration-id>
  <collectdata3-drawing-response type="boolean" nil="true"></collectdata3-drawing-response>
  <collectdata3-model-active type="boolean" nil="true"></collectdata3-model-active>
  <collectdata3-model-id type="integer" nil="true"></collectdata3-model-id>
  <collectdata3-probe-active type="boolean" nil="true"></collectdata3-probe-active>
  <collectdata3-probe-multi type="boolean" nil="true"></collectdata3-probe-multi>
  <collectdata3-probetype-id type="integer">1</collectdata3-probetype-id>
  <collectdata3-text-response type="boolean" nil="true"></collectdata3-text-response>
  <collectdata-drawing-response type="boolean" nil="true"></collectdata-drawing-response>
  <collectdata-graph-response type="boolean" nil="true"></collectdata-graph-response>
  <collectdata-model-active type="boolean" nil="true"></collectdata-model-active>
  <collectdata-probe-active type="boolean" nil="true"></collectdata-probe-active>
  <collectdata-probe-multi type="boolean" nil="true"></collectdata-probe-multi>
  <collectdata-text-response type="boolean" nil="true"></collectdata-text-response>
  <conclusion>Conclusion text</conclusion>
  <conclusion-drawing-response type="boolean" nil="true"></conclusion-drawing-response>
  <conclusion-text-response type="boolean" nil="true"></conclusion-text-response>
  <content-digest>WD2Zh8inobO2OK9lRbqUAg==</content-digest>
  <custom-otml nil="true"></custom-otml>
  <description>Description text</description>
  <draft type="boolean">true</draft>
  <further>Further investigate text</further>
  <further-drawing-response type="boolean" nil="true"></further-drawing-response>
  <further-model-active type="boolean" nil="true"></further-model-active>
  <further-model-id type="integer" nil="true"></further-model-id>
  <further-probe-active type="boolean" nil="true"></further-probe-active>
  <further-probe-multi type="boolean" nil="true"></further-probe-multi>
  <further-probetype-id type="integer">1</further-probetype-id>
  <further-text-response type="boolean" nil="true"></further-text-response>
  <furtherprobe-calibration-active type="boolean" nil="true"></furtherprobe-calibration-active>
  <furtherprobe-calibration-id type="integer" nil="true"></furtherprobe-calibration-id>
  <id type="integer">1</id>
  <introduction>Introduction text</introduction>
  <introduction-drawing-response type="boolean" nil="true"></introduction-drawing-response>
  <introduction-text-response type="boolean" nil="true"></introduction-text-response>
  <materials>Materials text</materials>
  <model-id type="integer" nil="true"></model-id>
  <name>Mixing Different Temperature Water</name>
  <nobundles type="boolean" nil="true"></nobundles>
  <parent-id type="integer" nil="true"></parent-id>
  <parent-version type="integer" nil="true"></parent-version>
  <predict>Prediction text</predict>
  <prediction-drawing-response type="boolean" nil="true"></prediction-drawing-response>
  <prediction-graph-response type="boolean" nil="true"></prediction-graph-response>
  <prediction-text-response type="boolean" nil="true"></prediction-text-response>
  <previous-user-id type="integer" nil="true"></previous-user-id>
  <probe-type-id type="integer">1</probe-type-id>
  <proced>procedure text</proced>
  <proced-drawing-response type="boolean" nil="true"></proced-drawing-response>
  <proced-text-response type="boolean" nil="true"></proced-text-response>
  <public type="boolean">true</public>
  <safety>Safety text</safety>
  <sds-offering-id type="integer">8490</sds-offering-id>
  <short-name>mixing_different_temperature_water</short-name>
  <standards>standards text (optional)</standards>
  <textile type="boolean">true</textile>
  <user-id type="integer">3</user-id>
  <uuid>1a0b7926-4dd2-11dd-8f9a-0014c2c34555</uuid>
  <version type="integer">1</version>
</activity>
POST/PUTThe XML format is the same as a GET, however you should omit the following XML elements: 
	content-digestcustom-otmldraftidparent-idparent-versionprevious-user-idsds-offering-iduser-iduuidversion ModelsURL Summary
| Result | Method | URL |  
| List | GET | /models.xml |  
| Show | GET | /models/:id.xml |  
| Create | POST | /models.xml |  
| Update | PUT | /models/:id.xml |  
| Delete | DELETE | /models/:id.xml |  XML model summaryList
<?xml version="1.0" encoding="UTF-8"?>
<models type="array">
  <model>
    ...
  </model>
  ...
</models>
GET
<?xml version="1.0" encoding="UTF-8"?>
<model>
  <credits nil="true"></credits>
  <description>Adapted from Step 1 of Bob Tinker's Heat Flow activity.</description>
  <height type="integer" nil="true"></height>
  <id type="integer">1</id>
  <instructions>*Start* the model, *Click* inside the model, and *Press* the arrow keys on the *keyboard*.</instructions>
  <model-type-id type="integer">1</model-type-id>
  <name>Heat Flow Step 1</name>
  <nobundles type="boolean" nil="true"></nobundles>
  <parent-id type="integer" nil="true"></parent-id>
  <parent-version type="integer" nil="true"></parent-version>
  <previous-user-id type="integer" nil="true"></previous-user-id>
  <public type="boolean">true</public>
  <sds-offering-id type="integer">8488</sds-offering-id>
  <short-name>heat_flow_step_1</short-name>
  <snapshot-active type="boolean" nil="true"></snapshot-active>
  <textile type="boolean">true</textile>
  <url>/model_files/Step1.cml</url>
  <user-id type="integer">2</user-id>
  <uuid>19ccbda8-4dd2-11dd-8f9a-0014c2c34555</uuid>
  <version type="integer">1</version>
  <width type="integer" nil="true"></width>
</model>
POST/PUTThe XML format is the same as a GET, however you should omit the following XML elements: 
	idparent-idparent-versionprevious-user-idsds-offering-iduser-iduuidversion External OTrunk ActivitiesURL Summary
| Result | Method | URL |  
| List | GET | /external_otrunk_activities.xml |  
| Show | GET | /external_otrunk_activities/:id.xml |  
| Create | POST | /external_otrunk_activities.xml |  
| Update | PUT | /external_otrunk_activities/:id.xml |  
| Delete | DELETE | /external_otrunk_activities/:id.xml |  XML model summaryList
<?xml version="1.0" encoding="UTF-8"?>
<external_otrunk_activities type="array">
  <external_otrunk_activity>
    ...
  </external_otrunk_activity>
  ...
</external_otrunk_activities>
GET
<?xml version="1.0" encoding="UTF-8"?>
<external-otrunk-activity>
  <custom-reporting-mode>report_mode</custom-reporting-mode>
  <description>How to interpret graphs of position and speed versus time for one-dimensional motion. </description>
  <external-otml-always-update type="boolean">true</external-otml-always-update>
  <external-otml-filename>loops-document-edit-sections-and-pages.otml</external-otml-filename>
  <external-otml-last-modified type="datetime">2008-07-16T17:14:44-04:00</external-otml-last-modified>
  <external-otml-url>http://continuum.concord.org/otrunk/examples/LOOPS/loops-document-edit-sections-and-pages.otml</external-otml-url>
  <id type="integer">1</id>
  <name>One Dimensional Motion</name>
  <nobundles type="boolean" nil="true"></nobundles>
  <otml>... otml here ...</otml>
  <parent-id type="integer" nil="true"></parent-id>
  <parent-version type="integer" nil="true"></parent-version>
  <previous-user-id type="integer" nil="true"></previous-user-id>
  <public type="boolean">true</public>
  <sds-offering-id type="integer">8493</sds-offering-id>
  <short-name>one_dimensional_motion</short-name>
  <user-id type="integer">3</user-id>
  <uuid>05df84e6-5373-11dd-b5af-0014c2c34555</uuid>
  <version type="integer">3</version>
</external-otrunk-activity>
POST/PUTThe XML format is the same as a GET, however you should omit the following XML elements: 
	external-otml-filenameexternal-otml-last-modifiedidparent-idparent-versionprevious-user-idsds-offering-iduser-iduuidversion If you specify 'external-otml-url', you may omit 'otml', and vice-versa. UsersURL Summary
| Result | Method | URL |  
| List | GET | /users.xml |  
| Show | GET | /users/:id.xml |  
| Create | POST | /users.xml |  
| Update | PUT | /users/:id.xml |  
| Delete | DELETE | /users/:id.xml |  XML model summaryList
<?xml version="1.0" encoding="UTF-8"?>
<users type="array">
  <user>
    ...
  </user>
  ...
</users>
GET
<?xml version="1.0" encoding="UTF-8"?>
<user>
  <created-at type="datetime">2008-07-09T12:14:25-04:00</created-at>
  <crypted-password nil="true"></crypted-password>
  <disable-javascript type="boolean" nil="true"></disable-javascript>
  <email>anonymous</email>
  <first-name>Anonymous</first-name>
  <id type="integer">1</id>
  <last-name>User</last-name>
  <login>anonymous</login>
  <password-hash>294de3557d9d00b3d2d8a1e6aab028cf</password-hash>
  <remember-token nil="true"></remember-token>
  <remember-token-expires-at type="datetime" nil="true"></remember-token-expires-at>
  <salt nil="true"></salt>
  <sds-sail-user-id type="integer">24946</sds-sail-user-id>
  <updated-at type="datetime">2008-07-09T12:14:25-04:00</updated-at>
  <uuid nil="true"></uuid>
  <vendor-interface-id type="integer">6</vendor-interface-id>
</user>
POST/PUTThe XML format is the same as a GET, however you should omit the following XML elements: 
	created-atcrypted-passwordidpassword-hashremember-tokenremember-token-expires-atsaltsds-sail-user-iduuid ReportsURL Summary
| Result | Method | URL |  
| List | GET | /reports.xml |  
| Show | GET | /reports/:id.xml |  
| Create | POST | /reports.xml |  
| Update | PUT | /reports/:id.xml |  
| Delete | DELETE | /reports/:id.xml |  XML model summaryList
<?xml version="1.0" encoding="UTF-8"?>
<reports type="array">
  <report>
    ...
  </report>
  ...
</reports>
GET
<?xml version="1.0" encoding="UTF-8"?>
<report>
  <created-at type="datetime">2008-07-30T10:01:41-04:00</created-at>
  <custom-offering-id type="integer" nil="true"></custom-offering-id>
  <custom-workgroup-id type="integer" nil="true"></custom-workgroup-id>
  <description></description>
  <id type="integer">1</id>
  <name>Carolyn_OneD_group_report</name>
  <otrunk-report-template-id type="integer">2</otrunk-report-template-id>
  <previous-user-id type="integer" nil="true"></previous-user-id>
  <public type="boolean">true</public>
  <reportable-id type="integer">4</reportable-id>
  <reportable-type>ExternalOtrunkActivity</reportable-type>
  <updated-at type="datetime">2009-01-21T14:29:50-05:00</updated-at>
  <user-id type="integer">16</user-id>
  <uuid>0926ab52-5e40-11dd-af77-001ec94098a1</uuid>
</report>
POST/PUTThe XML format is the same as a GET, however you should omit the following XML elements: 
	created-atcustom-offering-idcustom-workgroup-ididprevious-user-idupdated-atuuid Report TypesURL Summary
| Result | Method | URL |  
| List | GET | /report_types.xml |  
| Show | GET | /report_types/:id.xml |  
| Create | POST | /report_types.xml |  
| Update | PUT | /report_types/:id.xml |  
| Delete | DELETE | /report_types/:id.xml |  XML model summaryList
<?xml version="1.0" encoding="UTF-8"?>
<report-types type="array">
  <report-type>
    ...
  </report-type>
  ...
</report-types>
GET
<?xml version="1.0" encoding="UTF-8"?>
<report-type>
  <created-at type="datetime">2009-01-21T14:29:33-05:00</created-at>
  <id type="integer">1</id>
  <limit-to-one type="boolean">false</limit-to-one>
  <name>name</name>
  <updated-at type="datetime">2009-01-21T14:29:33-05:00</updated-at>
  <uri>foo:bar</uri>
  <user-id type="integer">6</user-id>
  <uuid>d4d15294-e7f1-11dd-af4e-001ec94098a1</uuid>
</report-type>
POST/PUTThe XML format is the same as a GET, however you should omit the following XML elements: 
	created-atidupdated-atuuid Report TemplatesURL Summary
| Result | Method | URL |  
| List | GET | /otrunk_report_templates.xml |  
| Show | GET | /otrunk_report_templates/:id.xml |  
| Create | POST | /otrunk_report_templates.xml |  
| Update | PUT | /otrunk_report_templates/:id.xml |  
| Delete | DELETE | /otrunk_report_templates/:id.xml |  XML model summaryList
<?xml version="1.0" encoding="UTF-8"?>
<otrunk-report-templates type="array">
  <otrunk-report-template>
    ...
  </otrunk-report-template>
  ...
</otrunk-report-templates>
GET
<?xml version="1.0" encoding="UTF-8"?>
<otrunk-report-template>
  <created-at type="datetime">2008-07-30T10:01:01-04:00</created-at>
  <description></description>
  <external-otml-always-update type="boolean">true</external-otml-always-update>
  <external-otml-filename>loops-one-dimension-report.otml</external-otml-filename>
  <external-otml-last-modified type="datetime">2008-07-31T17:48:52-04:00</external-otml-last-modified>
  <external-otml-url>http://continuum.concord.org/otrunk/examples/LOOPS/loops-one-dimension-report.otml</external-otml-url>
  <id type="integer">1</id>
  <name>group_report</name>
  <otml></otml>
  <parent-id type="integer" nil="true"></parent-id>
  <previous-user-id type="integer" nil="true"></previous-user-id>
  <public type="boolean">false</public>
  <sds-offering-id type="integer" nil="true"></sds-offering-id>
  <short-name>group_report</short-name>
  <updated-at type="datetime">2008-08-06T12:40:39-04:00</updated-at>
  <user-id type="integer">16</user-id>
  <uuid>f106b56c-5e3f-11dd-a54a-001ec94098a1</uuid>
  <version type="integer">24</version>
</otrunk-report-template>
POST/PUTThe XML format is the same as a GET, however you should omit the following XML elements: 
	created-atexternal-otml-filenameexternal-otml-last-modifiedexternal-otml-url (if otml is not supplied)idotml (if external-otml-url is not supplied)parent-idprevious-user-idsds-offering-idshort-nameupdated-atuuidversion |