#%RAML 0.8
title: ST Door Control
version: v1.1.0-20161130
schemas:
- DoorControlGet: |
    {
      "id": "http://samsung.com/schemas/x.com.st.doorcontrol.json#",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "description" : "Copyright (c) 2016 Samsung Electronics, Inc. All rights reserved.",
      "title": "ST Door Control",
      "definitions": {
        "x.com.st.doorcontrol": {
          "type": "object",
          "properties": {
            "doorState": {
              "type": "string",
              "enum": ["unknown", "open", "closing", "closed", "opening"],
              "description":"Status of the door"
            },
            "doorControl": {
              "type": "string",
              "enum": ["open", "close"],
              "description":"Operation to be performed on the door"
            }
          }
        }
      },
      "type": "object",
      "allOf": [
        {"$ref": "oic.core.json#/definitions/oic.core"},
        {"$ref": "oic.baseResource.json#/definitions/oic.r.baseresource"},
        {"$ref": "#/definitions/x.com.st.doorcontrol"}
      ],
      "required": ["doorState","doorControl"]
    }
- DoorControlPost: |
    {
      "id": "http://samsung.com/schemas/x.com.st.doorcontrol.json#",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "description" : "Copyright (c) 2016 Samsung Electronics, Inc. All rights reserved.",
      "title": "ST Door Control",
      "definitions": {
        "x.com.st.doorcontrol": {
          "type": "object",
          "properties": {
            "doorControl": {
              "type": "string",
              "enum": ["open", "close"],
              "description":"Operation to be performed on the door"
            }
          }
        }
      },
      "type": "object",
      "allOf": [
        {"$ref": "oic.core.json#/definitions/oic.core"},
        {"$ref": "oic.baseResource.json#/definitions/oic.r.baseresource"},
        {"$ref": "#/definitions/x.com.st.doorcontrol"}
      ],
      "required": ["doorControl"]
    }
traits:
 - interface :
     queryParameters:
       if:
         enum: ["oic.if.baseline","oic.if.a"]

/DoorControl:
  displayName: Door Control
  description: |
    This resource implements Door Control capability from SmartThings.

  is : ['interface']
  get:
    description: |
      Retrieve the current state and operation of the window shade.

    responses :
      200:
        body:
          application/json:
            schema: DoorControlGet
            example: |
              {
                  "id": "unique_example_id",
                  "doorState":"closing",
                  "doorControl":"close"
              }

  post:
    description: |
      Sets the Door Control
    body:
      application/json:
        schema: DoorControlPost
        example: |
          {
            "id":    "unique_example_id",
            "doorControl":"close"
          }
    responses:
      200:
        body:
          application/json:
            schema: DoorControlPost
            example: |
              {
                "id":    "unique_example_id",
                "doorControl":"close"
              }
