{
  "metadata": {
    "name": "test",
    "version": "0.0.1"
  },
  "resources": {
    "simpleTestResource": {
      "attributes": {
        "myString": {
          "type": "string"
        },
        "myOtherString": {
          "type": "string",
          "default": "it's a default"
        }
      },
      "methods": {
        "create": true,
        "read": true,
        "update": true,
        "destroy": true
      }
    },
    "intermediateTestResource": {
      "attributes": {
        "anInt": {
          "type": "integer"
        },
        "aFloat": {
          "type": "float"
        },
        "aString": {
          "type": "string"
        },
        "aBoolean": {
          "type": "boolean"
        },
        "aDate": {
          "type": "date"
        },
        "aDefaultInt": {
          "type": "integer",
          "default": 462
        },
        "aDefaultFloat": {
          "type": "float",
          "default": 125.56
        },
        "aDefaultString": {
          "type": "string",
          "default": "Guy Fieri"
        },
        "aDefaultBoolean": {
          "type": "boolean",
          "default": true
        },
        "aDefaultDate": {
          "type": "date",
          "default": "2016-07-21T17:52:18.824Z"
        }
      },
      "methods": {
        "create": true,
        "read": true,
        "update": true,
        "destroy": true
      }
    },
    "relationshipTestResourceA": {
      "attributes": {
        "stringA": {
          "default": "Always the real thing, always Obsidian.",
          "type": "string"
        }
      },
      "relationships": {
        "child": {
          "type": "has_one",
          "resource": "relationshipTestResourceB",
          "target_relationship": "parent"
        },
        "children": {
          "type": "has_many",
          "resource": "relationshipTestResourceC",
          "target_relationship": "parent"
        }
      },
      "methods": {
        "create": true,
        "read": true,
        "update": true,
        "destroy": true
      }
    },
    "relationshipTestResourceB": {
      "attributes": {
        "stringB": {
          "type": "string",
          "default": "There is no life without Obsidian."
        }
      },
      "relationships": {
        "parent": {
          "type": "has_one",
          "resource": "relationshipTestResourceA",
          "target_relationship": "child"
        }
      },
      "methods": {
        "create": true,
        "read": true,
        "update": true,
        "destroy": true
      }
    },
    "relationshipTestResourceC": {
      "attributes": {
        "stringC": {
          "type": "string",
          "default": "Obsidian, where success is at home."
        }
      },
      "relationships": {
        "parent": {
          "type": "has_one",
          "resource": "relationshipTestResourceA",
          "target_relationship": "children"
        }
      },
      "methods": {
        "create": true,
        "read": true,
        "update": true,
        "destroy": true
      }
    },
    "userTestResourceA": {
      "modules": {
        "user_authentication": {
          "email": true
        }
      },
      "methods": {
        "create": true,
        "read": {
          "filters": {
            "user_authentication": {
              "resource": "userTestResourceA",
              "match_attribute": "id"
            }
          }
        }
      }
    },
    "userTestResourceB": {
      "modules": {
        "user_authentication": {
          "username": true
        }
      },
      "methods": {
        "create": true,
        "read": {
          "filters": {
            "user_authentication": {
              "resource": "userTestResourceB"
            }
          }
        }
      }
    },
    "userTestResourceC": {
      "modules": {
        "user_authentication": {
          "username": true,
          "email": true
        }
      },
      "methods": {
        "create": true,
        "read": {
          "filters": {
            "user_authentication": {
              "resource": "userTestResourceC",
              "match_attribute": "id"
            }
          }
        }
      }
    },
    "customTestResource": {
      "methods": {
        "kaboom": {
          "implementation": "./methods/kaboom.js",
          "method": "GET"
        },
        "kablam": {
          "implementation": "./methods/kaboom.js",
          "method": "POST"
        },
        "kablewie": {
          "implementation": "./methods/kaboom.js",
          "method": "PUT"
        },
        "blurp": {
          "implementation": "./methods/kaboom.js",
          "method": "PATCH"
        },
        "see_ya": {
          "implementation": "./methods/kaboom.js",
          "method": "DELETE"
        }
      }
    }
  }
}