Project Versions

Projects are versioned. This is to support editing a Project after it has been ordered and allow reordering an older version (for example, from Order History). A Project Version can be thought of as a "snapshop" of the Project at at a point in time. That "snapshot" can then be printed.

Versions are identified by an incrementing unsigned integer i.e. version "1", version "2" etc. When a project is created, an initial version, "1" is automatically created.

Versions are made up of one or more Project Artifacts. A version is considered complete when it has more than one Artifact and all Artifacts are themselves complete (i.e. no incomplete Required Artifacts).

Requires:

Actions

URLVerbInformation
/project/{Guid}/versionPOSTCreates a new version for the Project identified by Guid
/project/{Guid}/version/{Number}PUTUpdates the details for an existing version.
/project/{Guid}/version/{Number}GETRetrieves the details for the version

Attributes

When creating a new version or updating an existing version, the following fields can be supplied:

FieldData TypeRequiredInformation
MetadataDictionary of String keys to String valuesN

Store arbitrary information against the project version.

Keys and Values are limited in length to 1024 characters.

For example: a URL for a preview image of the cover.

The following fields are returned when requesting the details of a Version:

FieldData TypeRequiredInformation
NumberIntegerYThe version number. Auto-incrementing for the project.
IsCompleteBooleanY

Whether this version can be ordered.

IsReadOnlyBooleanYWhether this version is read only. After it has been ordered, a version can't be changed.
MetadataDictionary of String keys to String valuesN

Arbitrary information stored against the project version.

Keys and Values are limited in length to 1024 characters.

For example: a URL for a preview image of the cover.

ArtifactsArray Of Project ArtifactsYArtifacts that make up the version.
CreatedDateTimeUtcDateTimeYThe date time the version was created, in UTC
LastSavedDateTimeUtcDateTimeYThe date time the version was last saved, in UTC