{
	"$schema" : "http://json-schema.org/draft-04/schema#",
	"title" : "ReleaseBundle",
	"type" : "object",
	"additionalProperties" : false,
	"description" : "Version v1 - This Object represent the Release Bundle for changesets to release as one entity.  All data that is 'released' for client, has to be at this level of abstraction/grouping.",
	"properties" : {
		"id" : {
			"type" : "string",
			"description" : "Unique Identifier of a Release Bundle.  This ID is used for all CRUD operations",
			"minLength" : 24,
			"maxLength" : 32
		},

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

		"program" : {
			"type" : "string",
			"description" : "An identifier for the program this release bundle belongs to.  This is a publisher's supplied attribute and publisher has the responsibility to ensure the uniqueness of this parameter",
			"minLength" : 8,
			"maxLength" : 255
		},

		"visibility" : {
			"$ref" : "/resources/schema/delta/v1/ReleaseBundleVisibility.json",
			"description" : "Visibility defines the current visibility of the release bundle.  visibility cannot be set/update unless and until release bundle is in READONLY MODE (Locked).  Unlocked ReleaseBundle has NO visibility whatsoever."
		},
		
		"description" : {
			"type" : "string",
			"description" : "A free flowing text describing the release bundle.",
			"maxLength" : 1024
		},
		
		"metadata" : {
			"type" : "string",
			"description" : "metadata text associated with release bundle.",
			"maxLength" : 4096
		},
		
		"previous_tag" : {
			"type" : "string",
			"description" : "Transaction Tag of the previous release bundle in the changeset roll-out",
			"minLength" : 8,
			"maxLength" : 255
		},

		"next_tag" : {
			"type" : "string",
			"description" : "Transaction Tag of the next release bundle in the changeset roll-out",
			"minLength" : 8,
			"maxLength" : 255
		},

		"changesets" : {
			"type" : "array",
			"items" : {
				"$ref" : "/resources/schema/delta/v1/Changeset.json",
				"description" : "Every element of the array is of type ChangeSet"
			},

			"description" : "All the Changesets associated with this release bundle"
		},
		
		"filter_config" : {
			"$ref" : "/resources/schema/delta/v1/ReleaseBundleConfig.json",
			"description" : "Filter Configuration associated with this release bundle."
		}
	},

	"required" : 
	[
		"id",
		"transaction_tag",
		"visibility"
	]
}