blob: b41f12fa95ecd0aa89199b8f58cf419219233731 [file]
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
edition = "2024";
package credentio;
import "cbor/tags.proto";
// Result of a single validation check.
// See `status-map` at
// https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html#_returning_validation_results
// for more details.
message ValidationStatus {
// A label-formatted string that describes the status.
// A list of all possible status codes can be found at
// https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html#_standard_status_codes.
string code = 1 [(cbor.tags) = { is_required: true }];
// JPEG Universal Metadata Box Format (JUMBF) URI reference to the relevant
// element of the manifest store, including `self#jumbf=/c2pa/` prefix.
// See https://www.iso.org/standard/84635.html for more details about JUMBF
// standard.
string url = 2;
// A human readable string explaining the status.
string explanation = 3;
}
// Results of a manifest validation.
// Validation is successful if `failures` is empty.
// See `status-codes-map` at
// https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html#_returning_validation_results.
message ValidationStatusSet {
repeated ValidationStatus failures = 1
[(cbor.tags) = { name: "failure", is_required: true }];
repeated ValidationStatus successes = 2
[(cbor.tags) = { name: "success", is_required: true }];
repeated ValidationStatus informationals = 3
[(cbor.tags) = { name: "informational", is_required: true }];
}