Skip to content

Instantly share code, notes, and snippets.

@israelshirk
Created June 28, 2015 02:45
Show Gist options
  • Save israelshirk/c6742778ab5c3e1c14ec to your computer and use it in GitHub Desktop.
Save israelshirk/c6742778ab5c3e1c14ec to your computer and use it in GitHub Desktop.
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "/definitions",
"type": "object",
"title": "Type Definitions",
"description": "Type Definitions",
"name": "definitions",
"definitions": {
"id": {
"id": "#/definitions/id",
"type": "integer",
"multipleOf": 1,
"minimum": 1,
"title": "Object ID",
"description": "Unique ID for an object",
"name": "id"
},
"polymorphic_type": {
"id": "#/definitions/polymorphic_type",
"type": "string",
"title": "Polymporphic object type",
"name": "polymorphic_type",
"description": "Polymorphic type base"
},
"user_id": {
"id": "#/definitions/user_id",
"allOf": [{"$ref": "/definitions#/definitions/id"}],
"title": "User ID",
"description": "User ID",
"name": "user_id"
},
"group_id": {
"id": "#/definitions/group_id",
"allOf": [{"$ref": "/definitions#/definitions/id"}],
"title": "Group ID",
"description": "Group ID",
"name": "group_id"
},
"group_member_id": {
"id": "#/definitions/group_member_id",
"allOf": [{"$ref": "/definitions#/definitions/id"}],
"title": "Group Member ID",
"description": "Group Member ID",
"name": "group_member_id"
}
},
"there is more": "here in reality"
}
{
"$schema": "http://json-schema.org/draft-04/hyper-schema",
"title": "FIXME - Group",
"id": "/group",
"definitions": {
"id": { "$ref": "/definitions#/definitions/group_id" },
"created_at": { "$ref": "/definitions#/definitions/created_at" },
"updated_at": { "$ref": "/definitions#/definitions/updated_at" },
"deleted_at": { "$ref": "/definitions#/definitions/deleted_at" },
"name": { "$ref": "/definitions#/definitions/name" },
"slug": { "$ref": "/definitions#/definitions/slug" },
"group_type": { "$ref": "/definitions#/definitions/group_type" },
"spam": { "$ref": "/definitions#/definitions/spam" },
"leader": { "$ref": "/definitions#/definitions/leader" },
"members": {
"type": "array",
"items": {
"$ref": "/definitions#/definitions/group_member"
}
}
},
"required": [],
"description": "FIXME",
"links": [
{
"description": "Create a new group.",
"href": "/group",
"method": "POST",
"rel": "create",
"schema": {
"properties": {
"name": { "$ref": "/group/#/definitions/name" },
"slug": { "$ref": "/group/#/definitions/slug" },
"group_type": { "$ref": "/group/#/definitions/group_type" }
},
"type": "object"
},
"title": "Create"
},
{
"description": "Delete an existing group.",
"href": "/group/{id}",
"method": "DELETE",
"rel": "destroy",
"title": "Delete"
},
{
"description": "Info for existing group.",
"href": "/group/{id}",
"method": "GET",
"rel": "self",
"title": "Info"
},
{
"description": "List existing groups.",
"href": "/groups",
"method": "GET",
"rel": "instances",
"title": "List"
},
{
"description": "Update an existing group.",
"href": "/group/{id}",
"method": "PATCH",
"rel": "update",
"schema": {
"properties": {
"id": { "$ref": "#/definitions/id" },
"name": { "$ref": "#/definitions/name" }
},
"type": "object"
},
"title": "Update"
}
],
"properties": {
"id": { "$ref": "#/definitions/id" },
"created_at": { "$ref": "#/definitions/created_at" },
"updated_at": { "$ref": "#/definitions/updated_at" },
"deleted_at": { "$ref": "#/definitions/deleted_at" },
"name": { "$ref": "#/definitions/name" },
"slug": { "$ref": "#/definitions/slug" },
"group_type": { "$ref": "#/definitions/group_type" },
"spam": { "$ref": "#/definitions/spam" },
"leader": { "$ref": "#/definitions/leader" },
"members": { "$ref": "#/definitions/members" }
},
"type": "object",
"id": "/models/group"
}
{
"$schema": "http://json-schema.org/draft-04/hyper-schema",
"title": "FIXME - Group_member",
"id": "/group_member",
"definitions": {
"id": { "$ref": "/definitions#/definitions/group_member_id" },
"created_at": { "$ref": "/definitions#/definitions/created_at" },
"updated_at": { "$ref": "/definitions#/definitions/updated_at" },
"deleted_at": { "$ref": "/definitions#/definitions/deleted_at" },
"user_id": { "$ref": "/definitions#/definitions/user_id" },
"group_id": { "$ref": "/definitions#/definitions/group_id" },
"role_id": { "$ref": "/definitions#/definitions/role_id" }
},
"required": [],
"description": "FIXME",
"links": [
{
"description": "Create a new group_member.",
"href": "/group/{group_id}/member",
"method": "POST",
"rel": "create",
"schema": {
"properties": {
"user_id": { "$ref": "/group_member#/definitions//user_id" },
"group_id": { "$ref": "/group_member#/definitions//group_id" },
"role_id": { "$ref": "/group_member#/definitions//role_id" }
},
"type": "object"
},
"title": "Create"
},
{
"description": "Delete an existing group_member.",
"href": "/group/{group_id}/member/{id}",
"method": "DELETE",
"rel": "destroy",
"title": "Delete"
},
{
"description": "Info for existing group_member.",
"href": "/group/{group_id}/member/{id}",
"method": "GET",
"rel": "self",
"title": "Info"
},
{
"description": "List existing group_members.",
"href": "/group/{group_id}/member",
"method": "GET",
"rel": "instances",
"title": "List"
}
],
"properties": {
"id": { "$ref": "/group_member#/definitions//id" },
"created_at": { "$ref": "/group_member#/definitions//created_at" },
"updated_at": { "$ref": "/group_member#/definitions//updated_at" },
"deleted_at": { "$ref": "/group_member#/definitions//deleted_at" },
"user_id": { "$ref": "/group_member#/definitions//user_id" },
"group_id": { "$ref": "/group_member#/definitions//group_id" },
"role_id": { "$ref": "/group_member#/definitions//role_id" }
},
"type": "object",
"id": "/models/group_member"
}
{
"$schema": "http://json-schema.org/draft-04/hyper-schema",
"title": "FIXME - User",
"id": "/user",
"definitions": {
"id": { "$ref": "/definitions#/definitions/user_id" },
"created_at": { "$ref": "/definitions#/definitions/created_at" },
"updated_at": { "$ref": "/definitions#/definitions/updated_at" },
"deleted_at": { "$ref": "/definitions#/definitions/deleted_at" },
"first_name": { "$ref": "/definitions#/definitions/first_name" },
"last_name": { "$ref": "/definitions#/definitions/last_name" },
"slug": { "$ref": "/definitions#/definitions/slug" },
"password": { "$ref": "/definitions#/definitions/password" },
"spam": { "$ref": "/definitions#/definitions/spam" },
"two_factor_token": { "$ref": "/definitions#/definitions/two_factor_token" },
"email": { "$ref": "/definitions#/definitions/email" }
},
"required": [
"id",
"created_at",
"modified_at",
"deleted_at",
"first_name",
"last_name",
"slug",
"password",
"spam",
"two_factor_token",
"email"
],
"description": "FIXME",
"links": [
{
"description": "Create a new user.",
"href": "/user/",
"method": "POST",
"rel": "create",
"schema": {
"properties": {
"first_name": { "$ref": "/user#/definitions/first_name" },
"last_name": { "$ref": "/user#/definitions/last_name" },
"slug": { "$ref": "/user#/definitions/slug" },
"password": { "$ref": "/user#/definitions/password" },
"spam": { "$ref": "/user#/definitions/spam" },
"two_factor_token": { "$ref": "/user#/definitions/two_factor_token" },
"email": { "$ref": "/user#/definitions/email" }
},
"type": "object"
},
"title": "Create"
},
{
"description": "Delete an existing user.",
"href": "/user/{id}",
"method": "DELETE",
"rel": "destroy",
"title": "Delete"
},
{
"description": "Info for existing user.",
"href": "/user/{id}",
"method": "GET",
"rel": "self",
"title": "Info"
},
{
"description": "List existing users.",
"href": "/user/",
"method": "GET",
"rel": "instances",
"title": "List"
},
{
"description": "Update an existing user.",
"href": "/user/{id}",
"method": "PATCH",
"rel": "update",
"schema": {
"properties": {
"first_name": { "$ref": "/user#/definitions/first_name" },
"last_name": { "$ref": "/user#/definitions/last_name" },
"slug": { "$ref": "/user#/definitions/slug" },
"password": { "$ref": "/user#/definitions/password" },
"spam": { "$ref": "/user#/definitions/spam" },
"two_factor_token": { "$ref": "/user#/definitions/two_factor_token" },
"email": { "$ref": "/user#/definitions/email" }
},
"type": "object"
},
"title": "Update"
}
],
"properties": {
"id": { "$ref": "/user#/definitions/id" },
"created_at": { "$ref": "/user#/definitions/created_at" },
"updated_at": { "$ref": "/user#/definitions/updated_at" },
"deleted_at": { "$ref": "/user#/definitions/deleted_at" },
"first_name": { "$ref": "/user#/definitions/first_name" },
"last_name": { "$ref": "/user#/definitions/last_name" },
"slug": { "$ref": "/user#/definitions/slug" },
"password": { "$ref": "/user#/definitions/password" },
"spam": { "$ref": "/user#/definitions/spam" },
"two_factor_token": { "$ref": "/user#/definitions/two_factor_token" },
"email": { "$ref": "/user#/definitions/email" }
},
"type": "object",
"id": "/models/user"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment