{
	"id": "EntryPoint.json",
	"title": "Entry Point",
	"description": "An entry point, within some Web-based protocol.",
	"media": {"type": "application/json;profile=http://schema.org/EntryPoint"},
	"allOf": [{"$ref": "Thing.json"}, {"$ref": "Intangible.json"}],
	"type": "object",
	"properties": {
		"actionApplication": {"$ref": "SoftwareApplication.json#/definitions/possibleRefArray"},
		"actionPlatform": {"$ref": "#/definitions/actionPlatform"},
		"contentType": {"$ref": "#/definitions/contentType"},
		"encodingType": {"$ref": "#/definitions/encodingType"},
		"httpMethod": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/httpMethod"}
				},
				{"$ref": "#/definitions/httpMethod"}
			]
		},
		"urlTemplate": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/urlTemplate"}
				},
				{"$ref": "#/definitions/urlTemplate"}
			]
		}
	},
	"definitions": {
		"array": {
			"type": "array",
			"items": {"$ref": "#"}
		},
		"possibleRef": {
			"oneOf": [
				{"$ref": "#"},
				{
					"type": "string",
					"format": "uri",
					"links": [{
						"rel": "full",
						"href": "{+$}"
					}]
				}
			]
		},
		"possibleRefArray": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/possibleRef"}
				},
				{
					"type": "string",
					"format": "uri",
					"links": [{
						"rel": "full",
						"href": "{+$}"
					}]
				}
			]
		},
		"actionPlatform": {
			"title": "Action Platform",
			"description": "The high level platform(s) where the Action can be performed for the given URL. To specify a specific application or operating system instance, use actionApplication.",
			"anyOf": [
				{"type": "string"},
				{
					"type": "string",
					"format": "uri"
				}
			]
		},
		"contentType": {
			"title": "Content Type",
			"description": "The supported content type(s) for an EntryPoint response.",
			"type": "string"
		},
		"encodingType": {
			"title": "Encoding Type",
			"description": "The supported encoding type(s) for an EntryPoint request.",
			"type": "string"
		},
		"httpMethod": {
			"title": "Http Method",
			"description": "An HTTP method that specifies the appropriate HTTP method for a request to an HTTP EntryPoint. Values are capitalized strings as used in HTTP.",
			"type": "string"
		},
		"urlTemplate": {
			"title": "Url Template",
			"description": "An url template (RFC6570) that will be used to construct the target of the execution of the action.",
			"type": "string"
		}
	}
}