This page is generated from the unmodified JSON schema generated from c2pa-rs
on 02/26/2025. It does not currently have anything redacted per the Review comments and questions.
ManifestDefinition
Use a ManifestDefinition to define a manifest and to build a ManifestStore
. A manifest is a collection of ingredients and assertions used to define a claim that can be signed and embedded into a file..
Properties
Property | Type | Description | Required? |
---|---|---|---|
assertions | An array of AssertionDefinition | A list of assertions |
NO |
claim_generator_info | An array of ClaimGeneratorInfo | Claim Generator Info is always required with at least one entry |
NO |
claim_version |
Integer
(uint8) Minimum: 0.0 |
The version of the claim. Defaults to 1. |
NO |
format | String | The format of the source file as a MIME type. |
NO |
ingredients | An array of Ingredient | A List of ingredients |
NO |
instance_id | String | Instance ID from |
NO |
label | String | Allows you to pre-define the manifest label, which must be unique. Not intended for general use. If not set, it will be assigned automatically. |
NO |
metadata | Array of Metadata | Optional manifest metadata. This will be deprecated in the future; not recommended to use. |
NO |
redactions | Array of string | A list of redactions - URIs to redacted assertions. |
NO |
thumbnail | ResourceRef | An optional ResourceRef to a thumbnail image that represents the asset that was signed. Must be available when the manifest is signed. |
NO |
title | String | A human-readable title, generally source filename. |
NO |
vendor | String | Optional prefix added to the generated Manifest Label This is typically a reverse domain name. |
NO |
Definitions
Actor
Identifies a person responsible for an action.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
credentials | Array of HashedUri | List of references to W3C Verifiable Credentials. |
NO | N/A |
identifier | String | An identifier for a human actor, used when the “type” is |
NO | N/A |
AssertionData
Description TBD.
Any of the following:
- true
AssertionDefinition
Defines an assertion that consists of a label that can be either a C2PA-defined assertion label or a custom label in reverse domain format.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
data | Description TBD. |
YES | N/A | |
label | String | Description TBD. |
YES | N/A |
AssetType
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
type | String | Description TBD. |
YES | N/A |
version | String | Description TBD. |
NO | N/A |
ClaimGeneratorInfo
Description of the claim generator, or the software used in generating the claim. This structure is also used for actions softwareAgent
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
icon | UriOrResource | hashed URI to the icon (either embedded or remote) |
NO | N/A |
name | String | A human readable string naming the claim_generator |
YES | N/A |
operating_system | String | A human readable string of the OS the claim generator is running on |
NO | N/A |
version | String | A human readable string of the product’s version |
NO | N/A |
NOTE: This object can have any number of additional user-defined properties.
Coordinate
An x, y coordinate used for specifying vertices in polygons.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
x | Number / double | The coordinate along the x-axis. |
YES | N/A |
y | Number / double | The coordinate along the y-axis. |
YES | N/A |
DataSource
A description of the source for assertion data
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
actors | Array of Actor | A list of [ |
NO | N/A |
details | String | A human-readable string giving details about the source of the assertion data. |
NO | N/A |
type | String | A value from among the enumerated list indicating the source of the assertion. |
YES | N/A |
DateT
A string.
Frame
A frame range representing starting and ending frames or pages.
If both start
and end
are missing, the frame will span the entire asset.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
end | Integer (int32) | The end of the frame inclusive or the end of the asset if not present. |
NO | N/A |
start | Integer (int32) | The start of the frame or the end of the asset if not present. The first frame/page starts at 0. |
NO | N/A |
HashedUri
A HashedUri
provides a reference to content available within the same manifest store.
This is described in [§8.3, URI References], of the C2PA Technical Specification.
[§8.3, URI References]: https://c2pa.org/specifications/specifications/2.1/specs/C2PA_Specification.html#_uri_references
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
alg | String | A string identifying the cryptographic hash algorithm used to compute the hash |
NO | N/A |
hash | An array of integer | Byte string containing the hash value |
YES | N/A |
url | String | JUMBF URI reference |
YES | N/A |
Ingredient
An Ingredient
is any external asset that has been used in the creation of an asset.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
active_manifest | String | The active manifest label (if one exists). If this ingredient has a [ |
NO | N/A |
data | ResourceRef | A reference to the actual data of the ingredient. |
NO | N/A |
data_types | Array of AssetType | Additional information about the data’s type to the ingredient V2 structure. |
NO | N/A |
description | String | Additional description of the ingredient. |
NO | N/A |
document_id | String | Document ID from |
NO | N/A |
format | String | The format of the source file as a MIME type. |
NO | N/A |
hash | String | An optional hash of the asset to prevent duplicates. |
NO | N/A |
informational_URI | String | URI to an informational page about the ingredient or its data. |
NO | N/A |
instance_id | String | Instance ID from |
NO | N/A |
manifest_data | ResourceRef | A |
NO | N/A |
metadata | Metadata | Any additional |
NO | N/A |
provenance | String | URI from |
NO | N/A |
relationship | Relationship | Set to There can only be one parent ingredient in the ingredients. |
NO | componentOf |
resources | ResourceStore | Description TBD. |
NO | N/A |
thumbnail | ResourceRef | A thumbnail image capturing the visual state at the time of import. A tuple of thumbnail MIME format (for example |
NO | N/A |
title | String | A human-readable title, generally source filename. |
NO | N/A |
validation_results | ValidationResults | Validation results (Ingredient.V3) |
NO | N/A |
validation_status | Array of ValidationStatus | Validation status (Ingredient v1 & v2) |
NO | N/A |
IngredientDeltaValidationResult
Represents any changes or deltas between the current and previous validation results for an ingredient’s manifest.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
ingredientAssertionURI | String | JUMBF URI reference to the ingredient assertion |
YES | N/A |
validationDeltas | StatusCodes | Validation results for the ingredient’s active manifest |
YES | N/A |
Item
Description of the boundaries of an identified range.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
identifier | String | The container-specific term used to identify items, such as “track_id” for MP4 or “item_ID” for HEIF. |
YES | N/A |
value | String | The value of the identifier, e.g. a value of “2” for an identifier of “track_id” would imply track 2 of the asset. |
YES | N/A |
Metadata
The Metadata structure can be used as part of other assertions or on its own to reference others
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
dataSource | DataSource | Description TBD. |
NO | N/A |
dateTime | DateT | Description TBD. |
NO | N/A |
reference | HashedUri | Description TBD. |
NO | N/A |
regionOfInterest | RegionOfInterest | Description TBD. |
NO | N/A |
reviewRatings | Array of ReviewRating | Description TBD. |
NO | N/A |
NOTE: This object can have any number of additional user-defined properties.
Range
A spatial, temporal, frame, or textual range describing the region of interest.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
frame | Frame | A frame range. |
NO | N/A |
item | Item | A item identifier. |
NO | N/A |
shape | Shape | A spatial range. |
NO | N/A |
text | Text | A textual range. |
NO | N/A |
time | Time | A temporal range. |
NO | N/A |
type | RangeType | The type of range of interest. |
YES | N/A |
RangeType
The type of range for the region of interest.
RangeType | Type | Description |
---|---|---|
spatial | string | A spatial range, see [ |
temporal | string | A temporal range, see [ |
frame | string | A spatial range, see [ |
textual | string | A textual range, see [ |
identified | string | A range identified by a specific identifier and value, see [ |
RegionOfInterest
A region of interest within an asset describing the change.
This struct can be used from [Action::changes
][crate::assertions::Action::changes] or [Metadata::region_of_interest
][crate::assertions::Metadata::region_of_interest].
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
description | String | A free-text string. |
NO | N/A |
identifier | String | A free-text string representing a machine-readable, unique to this assertion, identifier for the region. |
NO | N/A |
metadata | Metadata | Additional information about the asset. |
NO | N/A |
name | String | A free-text string representing a human-readable name for the region which might be used in a user interface. |
NO | N/A |
region | An array of Range | A range describing the region of interest for the specific asset. |
YES | N/A |
role | Role | A value from our controlled vocabulary or an entity-specific value (e.g., com.litware.coolArea) that represents the role of a region among other regions. |
NO | N/A |
type | String | A value from a controlled vocabulary such as https://cv.iptc.org/newscodes/imageregiontype/ or an entity-specific value (e.g., com.litware.newType) that represents the type of thing(s) depicted by a region. Note this field serializes/deserializes into the name |
NO | N/A |
Relationship
A string that is one of the following:
- “parentOf”
- “componentOf”
- “inputTo”
ResourceRef
A reference to a resource to be used in JSON serialization.
The underlying data can be read as a stream via [Reader::resource_to_stream
][crate::Reader::resource_to_stream].
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
alg | String | The algorithm used to hash the resource (if applicable). |
NO | N/A |
data_types | Array of AssetType | More detailed data types as defined in the C2PA spec. |
NO | N/A |
format | String | The mime type of the referenced resource. |
YES | N/A |
hash | String | The hash of the resource (if applicable). |
NO | N/A |
identifier | String | A URI that identifies the resource as referenced from the manifest. This may be a JUMBF URI, a file path, a URL or any other string. Relative JUMBF URIs will be resolved with the manifest label. Relative file paths will be resolved with the base path if provided. |
YES | N/A |
ResourceStore
Resource store to contain binary objects referenced from JSON serializable structures
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
base_path | String | Description TBD. |
NO | N/A |
label | String | Description TBD. |
NO | N/A |
resources | (Object) | Description TBD. |
YES | N/A |
ReviewRating
A rating on an Assertion. See https://c2pa.org/specifications/specifications/1.0/specs/C2PA_Specification.html#_claim_review.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
code | String | Description TBD. |
NO | N/A |
explanation | String | Description TBD. |
YES | N/A |
value |
Integer
(uint8)
Minimum: 0.0 |
Description TBD. |
YES | N/A |
Role
A role describing the region.
Role | Type | Description |
---|---|---|
c2pa.areaOfInterest | string | Arbitrary area worth identifying. |
c2pa.cropped | string | This area is all that is left after a crop action. |
c2pa.edited | string | This area has had edits applied to it. |
c2pa.placed | string | The area where an ingredient was placed/added. |
c2pa.redacted | string | Something in this area was redacted. |
c2pa.subjectArea | string | Area specific to a subject (human or not). |
c2pa.deleted | string | A range of information was removed/deleted. |
c2pa.styled | string | Styling was applied to this area. |
c2pa.watermarked | string | Invisible watermarking was applied to this area for the purpose of soft binding. |
Shape
A spatial range representing rectangle, circle, or a polygon.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
height | Number (double) | The height of a rectnagle. This field can be ignored for circles and polygons. |
NO | N/A |
inside | Boolean | If the range is inside the shape. The default value is true. |
NO | N/A |
origin | Coordinate | THe origin of the coordinate in the shape. |
YES | N/A |
type | ShapeType | The type of shape. |
YES | N/A |
unit | UnitType | The type of unit for the shape range. |
YES | N/A |
vertices | Array of Coordinate | The vertices of the polygon. This field can be ignored for rectangles and circles. |
NO | N/A |
width | Number (double) | The width for rectangles or diameter for circles. This field can be ignored for polygons. |
NO | N/A |
ShapeType
The type of shape for the range.
ShapeType | Type | Description |
---|---|---|
rectangle | string | A rectangle. |
circle | string | A circle. |
polygon | string | A polygon. |
StatusCodes
Contains a set of success, informational, and failure validation status codes.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
failure | An array of ValidationStatus | Description TBD. |
YES | N/A |
informational | An array of ValidationStatus | Description TBD. |
YES | N/A |
success | An array of ValidationStatus | Description TBD. |
YES | N/A |
Text
A textual range representing multiple (possibly discontinuous) ranges of text.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
selectors | An array of TextSelectorRange | The ranges of text to select. |
YES | N/A |
TextSelector
Selects a range of text via a fragment identifier. This is modeled after the W3C Web Annotation selector model.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
end | Integer (int32) | The end character offset or the end of the fragment if not present. |
NO | N/A |
fragment | String | Fragment identifier as per RFC3023 (XML) or ISO 32000-2 (PDF), Annex O. |
YES | N/A |
start | Integer (int32) | The start character offset or the start of the fragment if not present. |
NO | N/A |
TextSelectorRange
One or two [TextSelector
][TextSelector] identifiying the range to select.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
end | TextSelector | The end of the text range. |
NO | N/A |
selector | TextSelector | The start (or entire) text range. |
YES | N/A |
Time
A temporal range representing a starting time to an ending time.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
end | String | The end time or the end of the asset if not present. |
NO | N/A |
start | String | The start time or the start of the asset if not present. |
NO | N/A |
type | TimeType | The type of time. |
NO | npt |
TimeType
The type of time.
TimeType | Type | Description |
---|---|---|
npt | string | Times are described using Normal Play Time (npt) as described in RFC 2326. |
UnitType
The type of unit for the range.
UnitType | Type | Description |
---|---|---|
pixel | string | Use pixels. |
percent | string | Use percentage. |
UriOrResource
Description TBD.
Any of the following:
ValidationResults
A map of validation results for a manifest store. The map contains the validation results for the active manifest and any ingredient deltas. It is normal for there to be many
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
activeManifest | StatusCodes | Description TBD. |
NO | N/A |
ingredientDeltas | Array of IngredientDeltaValidationResult | Description TBD. |
NO | N/A |
ValidationStatus
A ValidationStatus
struct describes the validation status of a specific part of a manifest.
See https://c2pa.org/specifications/specifications/1.0/specs/C2PA_Specification.html#_existing_manifests.
Property | Type | Description | Required? | Default Value |
---|---|---|---|---|
code | String | Description TBD. |
YES | N/A |
explanation | String | Description TBD. |
NO | N/A |
success | Boolean | Description TBD. |
NO | N/A |
url | String | Description TBD. |
NO | N/A |