{
  "service": {
    "actions": {
      "CreateToDo": {
        "request": { "operation": "CreateToDo" },
        "resource": {
          "type": "ToDo",
          "identifiers": [
            { "target": "Id", "source": "response", "path": "Id" }
          ]
        }
      }
    },
    "has": {
      "ToDo": {
        "resource": {
          "type": "ToDo",
          "identifiers": [
            { "target": "Id", "source": "input" }
          ]
        }
      }
    },
    "hasMany": {
      "ToDos": {
        "request": { "operation": "DescribeToDos" },
        "resource": {
          "type": "ToDo",
          "identifiers": [
            { "target": "Id", "source": "response", "path": "ToDoList[].Id" }
          ]
        }
      }
    }
  },
  "resources": {
    "ToDo": {
      "identifiers": [
        { "name": "Id" }
      ],
      "shape": "ToDoItem",
      "actions": {
        "Delete": {
          "request": {
            "operation": "DeleteToDo",
            "params": [
              { "target": "Id", "source": "identifier", "name": "Id" }
            ]
          }
        }
      },
      "waiters": {
        "Ready": {
          "waiterName": "ToDoReady",
          "params": [
            { "target": "Id", "source": "identifier", "name": "Id" }
          ]
        }
      },
      "has": {
        "MySelf": {
          "resource": {
            "type": "ToDo",
            "identifiers": [
              { "target": "Id", "source": "data", "path": "Id" }
            ]
          }
        }
      }
    }
  }
}
