blob: 5fa99e9c54351b8753e3d135d465566815479a3b [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";
import "google/protobuf/struct.proto";
// Schema for AI Model Disclosure Metadata (c2pa.ai-disclosure)
// Matches C2PA 2.4 technical specification.
message AiDisclosureAssertion {
// Required. Enumerated string identifying the AI model type.
// Examples: "c2pa.types.model.onnx", "c2pa.types.model.flax"
string model_type = 1 [(cbor.tags) = { name: "modelType" }];
// Optional. Human-readable name of the model.
string model_name = 2 [(cbor.tags) = { name: "modelName" }];
// Optional. Unique identifier for the model (e.g. a URI or PURL).
string model_identifier = 3 [(cbor.tags) = { name: "modelIdentifier" }];
// Optional. Structured content profile.
ContentProfile content_profile = 4 [(cbor.tags) = { name: "contentProfile" }];
message ContentProfile {
// Optional. Degree of human intervention.
// Spec values: "fully_autonomous", "prompt_guided", "human_validated"
string human_oversight_level = 1
[(cbor.tags) = { name: "humanOversightLevel" }];
// Optional. Scientific domain of the content (e.g. arXiv taxonomy "cs.AI").
repeated string scientific_domain = 2
[(cbor.tags) = { name: "scientificDomain" }];
// Optional. Extensible metadata.
google.protobuf.Struct metadata = 3 [(cbor.tags) = { mode: MODE_SKIP }];
}
}