{
	"$schema" : "http://json-schema.org/draft-04/schema#",
	"title" : "Changeset",
	"type" : "object",
	"additionalProperties" : false,
	"description" : "Version v1 - This Object represent the Changeset for files to release as one entity.",
	"properties" : {
		"id" : {
			"type" : "string",
			"description" : "Unique Identifier of a Change Set.  This ID is used for all CRUD operations",
			"minLength" : 24,
			"maxLength" : 32
		},

		"release_bundle_id" : {
			"type" : "string",
			"description" : "The Release Bundle identifier of this changeset.",
			"minLength" : 24,
			"maxLength" : 32
		},

		"transaction_tag" : {
			"type" : "string",
			"description" : "Release Bundle Transaction Tag associated with this changeset",
			"minLength" : 8,
			"maxLength" : 255
		},

		"space" : {
			"type" : "string",
			"description" : "An identifier to distinguish one Space from another one.  This is a publisher's supplied attribute and publisher has the responsibility to ensure the uniqueness of this parameter",
			"minLength" : 3,
			"maxLength" : 32
		},

		"layer" : {
			"type" : "string",
			"description" : "An identifier to distinguish one layer from another one.  This is a publisher's supplied attribute and publisher has the responsibility to ensure the uniqueness of this parameter",
			"minLength" : 3,
			"maxLength" : 32
		},

		"description" : {
			"type" : "string",
			"description" : "A free flowing text describing the changeset.",
			"maxLength" : 1024
		},

		"number_of_files" : {
			"type" : "integer",
			"description" : "This parameter indicates the number of files in the changeset.  This number is a positive integer.",
			"minimum" : 0
		},

		"size_in_bytes" : {
			"type" : "integer",
			"description" : "This parameter indicates the accumulative total size of files in the changeset",
			"minimum" : 0
		},

		"free_space_estimate_in_mb" : {
			"type" : "integer",
			"description" : "Estimate of free space required on the client side to process this changeSet.  This parameter is optional and may not exist for every changeSet.",
			"minimum" : 1
		},

		"files" : {
			"type" : "array",
			"items" : {
				"$ref" : "/resources/schema/delta/v1/ChangesetFile.json",
				"description" : "Every element of the array is of type ChangeSetFile"
			},

			"description" : "All the files associated with this Changeset"
		}
	},

	"required" : 
	[
		"id",
		"release_bundle_id",
		"transaction_tag",
		"space",
		"layer"
	]
}