{
	"type": "object",
	"description": "Stream object",
	"required": [
		"id",
		"created_on",
		"modified_on",
		"owner_user_id",
		"incoming_port",
		"forwarding_host",
		"forwarding_port",
		"tcp_forwarding",
		"udp_forwarding",
		"enabled",
		"meta"
	],
	"additionalProperties": false,
	"properties": {
		"id": {
			"$ref": "../common.json#/properties/id"
		},
		"created_on": {
			"$ref": "../common.json#/properties/created_on"
		},
		"modified_on": {
			"$ref": "../common.json#/properties/modified_on"
		},
		"owner_user_id": {
			"$ref": "../common.json#/properties/user_id"
		},
		"incoming_port": {
			"type": "integer",
			"minimum": 1,
			"maximum": 65535,
			"example": 9090
		},
		"forwarding_host": {
			"anyOf": [
				{
					"description": "Domain Name",
					"type": "string",
					"pattern": "^(?:[^.*]+\\.?)+[^.]$",
					"example": "example.com"
				},
				{
					"type": "string",
					"format": "^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$"
				},
				{
					"type": "string",
					"format": "ipv6"
				}
			],
			"example": "example.com"
		},
		"forwarding_port": {
			"type": "integer",
			"minimum": 1,
			"maximum": 65535,
			"example": 80
		},
		"tcp_forwarding": {
			"type": "boolean",
			"example": true
		},
		"udp_forwarding": {
			"type": "boolean",
			"example": false
		},
		"enabled": {
			"$ref": "../common.json#/properties/enabled"
		},
		"certificate_id": {
			"$ref": "../common.json#/properties/certificate_id"
		},
		"meta": {
			"type": "object",
			"example": {}
		},
		"certificate": {
			"oneOf": [
				{
					"type": "null"
				},
				{
					"$ref": "./certificate-object.json"
				}
			],
			"example": null
		},
		"owner": {
			"$ref": "./user-object.json"
		}
	}
}
