anchor.diff:              "updated_at": "2016-07-12 14:41:48",
           }
           
  -+ Request (application/json)
  -
  -        {
  -            "name": "John Doe"
  -        }
  -        
  -+ Response 400 (application/json)
  -
  -        {
  -            "messages": {
  -                "email": ["The email field is required."],
  -                "password": ["The password field is required."]
  -            }
  -        }
  -        
   ## Templates [/v1/templates]
   
  +Relationships: `user`, `devices`, and `attributes`.
  +
   ### List Templates [GET]
   
  ++ Request
  +
  +    + Headers
  +    
  +            Authorization: Token <token>
  +            
   + Response 200 (application/json)
   
           [
               {
  -                TODO
  +                "id": 2,
  +                "user_id": 1,
  +                "name": "My Template",
  +                "created_at": "2016-07-12 15:21:05",
  +                "updated_at": "2016-07-12 15:21:05"
               },
               ...
           ]
   
   ### Create Template [POST]
   
  -### Update Template [PUT]
  -
  -### Delete Template [DELETE]
  ++ Request (application/json)
  +
  +    + Headers
  +    
  +            Authorization: Token <token>
  +    
  +    + Body
  +    
  +            {
  +                "name": "My Template"
  +            }
  +            
  ++ Response 200 (application/json)
  +
  +        {
  +            "id": 2,
  +            "user_id": 1,
  +            "name": "My Template",
  +            "created_at": "2016-07-12 15:21:05",
  +            "updated_at": "2016-07-12 15:21:05"
  +        }
  +
  +### Update Template [PUT /v1/templates/{id}]
  +
  ++ Request (application/json)
  +
  +    + Headers
  +    
  +            Authorization: Token <token>
  +    
  +    + Body
  +    
  +            {
  +                "name": "Other Name For My Template"
  +            }
  +            
  ++ Response 200 (application/json)
  +
  +        {
  +            "id": 2,
  +            "user_id": 1,
  +            "name": "Other Name For My Template",
  +            "created_at": "2016-07-12 15:21:05",
  +            "updated_at": "2016-07-12 15:21:05"
  +        }
  +        
  +### Delete Template [DELETE /v1/templates/{id}]
   
   Deleting a template also deletes it's attributes.
   
  ++ Request
  +
  +    + Headers
  +    
  +            Authorization: Token <token>
  +            
  ++ Response 200 (application/json)
  +
  +        {
  +            "id": 2,
  +            "user_id": 1,
  +            "name": "My Template",
  +            "created_at": "2016-07-12 15:21:05",
  +            "updated_at": "2016-07-12 15:21:05"
  +        }
  +        
   ## Attributes [/v1/attributes]
   
  +Relationships: `template`, `converters`, `calibrators`, and `validators`.
  +
   ### List Attributes [GET]
   
  ++ Request
  +
  +    + Headers
  +    
  +            Authorization: Token <token>
  +            
   + Response 200 (application/json)
   
           [
               {
  -                TODO
  +                "id": 3,
  +                "template_id": 2,
  +                "name": "temperature",
  +                "order": 0,
  +                "created_at": "2016-07-12 15:27:21",
  +                "updated_at": "2016-07-12 15:27:21"
               },
               ...
           ]
   
   ### Create Attribute [POST]
   
  -### Update Attribute [PUT]
  -
  -### Delete Attribute [DELETE]
  ++ Request (application/json)
  +
  +    + Headers
  +    
  +            Authorization: Token <token>
  +    
  +    + Body
  +    
  +            {
  +                "template_id": 2,
  +                "name": "temperature",
  +                "order": 0,
  +                "converter": "int16le",
  +                "calibrator": "return value / 10",
  +                "validators": "min=-100 max=100"
  +            }
  +            
  ++ Response 200 (application/json)
  +
  +        {
  +            "id": 3,
  +            "template_id": 2,
  +            "name": "temperature",
  +            "order": 0,
  +            "created_at": "2016-07-12 15:27:21",
  +            "updated_at": "2016-07-12 15:27:21"
  +        }
  +
  +### Update Attribute [PUT /v1/attributes/{id}]
  +
  ++ Request (application/json)
  +
  +    + Headers
  +    
  +            Authorization: Token <token>
  +    
  +    + Body
  +    
  +            {
  +                "name": "temp"
  +            }
  +            
  ++ Response 200 (application/json)
  +
  +        {
  +            "id": 3,
  +            "template_id": 2,
  +            "name": "temp",
  +            "order": 0,
  +            "created_at": "2016-07-12 15:27:21",
  +            "updated_at": "2016-07-12 15:27:21"
  +        }
  +        
  +### Delete Attribute [DELETE /v1/attributes/{id}]
  +
  ++ Request
  +
  +    + Headers
  +    
  +            Authorization: Token <token>
  +            
  ++ Response 200 (application/json)
  +
  +        {
  +            "id": 3,
  +            "template_id": 2,
  +            "name": "temperature",
  +            "order": 0,
  +            "created_at": "2016-07-12 15:27:21",
  +            "updated_at": "2016-07-12 15:27:21"
  +        }
   
   ### Reorder Attributes [PUT /v1/attributes/reorder]
   
  -Specify attribute order by providing an array with attribute IDs.
  +Specify attribute order by providing a template ID and array with attribute IDs.
  +
  ++ Request
  +
  +    + Headers
  +    
  +            Authorization: Token <token>
  +            
  +    + Body
  +    
  +            {
  +                "template_id": 2,
  +                "order": [3, 2, 1]
  +            }
  +            
  ++ Response 200 (application/json)
  +
  +        {}
   
   ## Devices [/v1/devices]
   
  +Relationships: `users` and `template`.
  +
   ### List Devices [GET]
   
  ++ Request
  +
  +    + Headers
  +    
  +            Authorization: Token <token>
  +            
   + Response 200 (application/json)
   
           [
               {
  -                TODO
  +                "id": 4,
  +                "template_id": 2,
  +                "name": "My Device",
  +                "udid": "0000000000000001"
  +                "created_at": "2016-07-12 15:29:45",
  +                "updated_at": "2016-07-12 15:29:45"
               },
               ...
           ]
   
   ### Create Device [POST]
   
  -### Update Device [PUT]
  -
  -### Delete Device [DELETE]++ Request (application/json)
  +
  +    + Headers
  +    
  +            Authorization: Token <token>
  +    
  +    + Body
  +    
  +            {
  +                "template_id": 2,
  +                "name": "My Device",
  +                "udid": "0000000000000001"
  +            }
  +            
  ++ Response 200 (application/json)
  +
  +        {
  +            "id": 4,
  +            "template_id": 2,
  +            "name": "My Device",
  +            "udid": "0000000000000001"
  +            "created_at": "2016-07-12 15:29:45",
  +            "updated_at": "2016-07-12 15:29:45"
  +        }
  +
  +### Update Device [PUT /v1/devices/{id}]
  +
  ++ Request (application/json)
  +
  +    + Headers
  +    
  +            Authorization: Token <token>
  +    
  +    + Body
  +    
  +            {
  +                "name": "Other Name For My Device"
  +            }
  +            
  ++ Response 200 (application/json)
  +
  +        {
  +            "id": 4,
  +            "template_id": 2,
  +            "name": "Other Name For My Device",
  +            "udid": "0000000000000001"
  +            "created_at": "2016-07-12 15:29:45",
  +            "updated_at": "2016-07-12 15:29:45"
  +        }
  +
  +### Delete Device [DELETE /v1/devices/{id}]
  +
  ++ Request
  +
  +    + Headers
  +    
  +            Authorization: Token <token>
  +            
  ++ Response 200 (application/json)
  +
  +        {
  +            "id": 4,
  +            "template_id": 2,
  +            "name": "My Device",
  +            "udid": "0000000000000001"
  +            "created_at": "2016-07-12 15:29:45",
  +            "updated_at": "2016-07-12 15:29:45"
  +        }
positive.code: 
  # ConCaVa API
  
  The ConCaVa API allows you to configure ConCaVa metadata.
  
  TODO:
  
  - Users
      - GET /v1/users/login
          - ~~200~~
          - 401
      - ~~POST~~
          - ~~200~~
          - ~~400~~
  - Templates
      - GET
      - POST
      - PUT
      - DELETE
  - Attributes
      - GET
      - POST
      - PUT
      - DELETE
      - PUT /v1/attributes/reorder
  - Devices
      - GET
      - POST
      - PUT
      - DELETE
  - Filters
  - Orders
  - Includes
  
  ## Users [/v1/users]
  
  ### Log In User [GET /v1/users/login]
  
  
negative.code: + Response 200 (application/json)
  
          {
              "id": 1,
              "name": "John Doe",
              "email": "john@example.com",
              "is_active": true,
  