Skip to main content
Version: 2.0.x (Latest)

GovernanceBundle Schema Reference

This reference reproduces the current bundle model declarations. JSON/YAML property names use camel case; C# declarations below retain their source spelling. Nullable markers and initializers describe the model, while validation and runtime enforcement are documented separately.

Read Governance bundles and Policies before treating a declared property as an enforced capability.

BindingModel​

public sealed class BindingModel

{

public string Id { get; set; } = "";

public string Version { get; set; } = "1";

public string OperationId { get; set; } = "";

public string TargetRef { get; set; } = "";

public Dictionary<string, object> Configuration { get; set; } = new();

public Dictionary<string, MappingEntryModel>? CanonicalToTarget { get; set; }

public Dictionary<string, MappingEntryModel>? TargetToCanonical { get; set; }

}

BundleMetadata​

public sealed class BundleMetadata

{

public string Name { get; set; } = "";

public string Version { get; set; } = "";

}

BundleSpec​

public sealed class BundleSpec

{

public List<ProfileModel> Profiles { get; set; } = new();

public List<TargetModel> Targets { get; set; } = new();

public List<OperationModel> Operations { get; set; } = new();

public List<BindingModel> Bindings { get; set; } = new();

public List<RestrictionModel> Restrictions { get; set; } = new();

public List<PolicyModel> Policies { get; set; } = new();

}

EffectResolverModel​

public sealed class EffectResolverModel

{

public string ResolverRef { get; set; } = "";

public string Version { get; set; } = "1";

public Dictionary<string, object> Configuration { get; set; } = new();

}

ExecutionModelModel​

public sealed class ExecutionModelModel

{

public string Model { get; set; } = "request_response";

}

GovernanceBundleModel​

public sealed class GovernanceBundleModel

{

public string ApiVersion { get; set; } = "";

public string Kind { get; set; } = "";

public BundleMetadata Metadata { get; set; } = new();

public BundleSpec Spec { get; set; } = new();

}

IntentProfileModel​

public sealed class IntentProfileModel

{

public string? ProviderRef { get; set; }

public bool Required { get; set; }

public double MinimumConfidence { get; set; } = 0.8;

public string OnUnavailable { get; set; } = "review";

public string OnLowConfidence { get; set; } = "review";

}

MappingEntryModel​

using System.Text.Json;



public sealed class MappingEntryModel

{

public string? InputPointer { get; set; }

public string? TargetPointer { get; set; }

public string? ResourceField { get; set; }

public string? Role { get; set; }

public JsonElement? Constant { get; set; }

}

OperationModel​

using System.Text.Json;



public sealed class OperationModel

{

public string Id { get; set; } = "";

public string Version { get; set; } = "1";

public string Family { get; set; } = "";

public string Action { get; set; } = "";

public string Mutability { get; set; } = "read_only";

public ExecutionModelModel Execution { get; set; } = new();

public string? ProfileRef { get; set; }

public List<string> PolicyRefs { get; set; } = new();

public bool TaskGrantRequired { get; set; }

public JsonElement InputSchema { get; set; }

public List<ResolverModel> Resources { get; set; } = new();

public EffectResolverModel? Effect { get; set; }

public VerificationModel? Verification { get; set; }

}

PolicyMatchModel​

using System.Text.Json;



public sealed class PolicyMatchModel

{

public List<string>? AgentIds { get; set; }

public List<string>? OperationIds { get; set; }

public List<string>? OperationFamilies { get; set; }

public List<ResourceMatchModel>? ResourceMatches { get; set; }

public Dictionary<string, JsonElement>? ArgumentEquals { get; set; }

public Dictionary<string, long>? ArgumentIntegerGreaterThan { get; set; }

}

PolicyModel​

public sealed class PolicyModel

{

public string Id { get; set; } = "";

public string? OperationFamily { get; set; }

public List<PolicyRuleModel> Rules { get; set; } = new();

}

PolicyProfileModel​

public sealed class PolicyProfileModel

{

public string CombiningAlgorithm { get; set; } = "deny_overrides";

public string DefaultOutcome { get; set; } = "deny";

}

PolicyRuleModel​

public sealed class PolicyRuleModel

{

public PolicyMatchModel Match { get; set; } = new();

public string Effect { get; set; } = "deny";

}

ProfileModel​

public sealed class ProfileModel

{

public string Id { get; set; } = "";

public IntentProfileModel? Intent { get; set; }

public TrustProfileModel? Trust { get; set; }

public RiskProfileModel? Risk { get; set; }

public PolicyProfileModel? Policy { get; set; }

}

ResolverModel​

public sealed class ResolverModel

{

public string Role { get; set; } = "";

public string ResolverRef { get; set; } = "";

public string Version { get; set; } = "1";

public Dictionary<string, object> Configuration { get; set; } = new();

}

ResourceMatchModel​

public sealed class ResourceMatchModel

{

public string Role { get; set; } = "";

public string Type { get; set; } = "";

public List<string>? Ids { get; set; }

public string? Quantifier { get; set; }

}

ResponseRetentionModel​

public sealed class ResponseRetentionModel

{

public string Mode { get; set; } = "omit";

public string[] AllowedProperties { get; set; } = [];



public void Validate()

{

if (Mode is not ("omit" or "json-allowlist")

|| (Mode == "json-allowlist" && AllowedProperties.Length == 0)

|| AllowedProperties.Any(string.IsNullOrWhiteSpace))

throw new InvalidOperationException("Invalid authenticated response retention policy.");

}

}

RestrictionMatchModel​

public sealed class RestrictionMatchModel

{

public List<string>? AgentIds { get; set; }

public List<string>? OperationFamilies { get; set; }

public List<string>? OperationIds { get; set; }

}

RestrictionModel​

public sealed class RestrictionModel

{

public string Id { get; set; } = "";

public RestrictionMatchModel Match { get; set; } = new();

public string Effect { get; set; } = "deny";

}

RiskProfileModel​

public sealed class RiskProfileModel

{

public string? ProfileRef { get; set; }

public string OnUnavailable { get; set; } = "review";

}

TargetModel​

public sealed class TargetModel

{

public string Id { get; set; } = "";

public string AdapterRef { get; set; } = "";

public Dictionary<string, object> Configuration { get; set; } = new();

public ResponseRetentionModel? ResponseRetention { get; set; }

public string? CredentialBindingRef { get; set; }

public string? CapabilityProfileRef { get; set; }

}

TrustProfileModel​

public sealed class TrustProfileModel

{

public string? ProfileRef { get; set; }

public string OnUnavailable { get; set; } = "deny";

}

VerificationModel​

public sealed class VerificationModel

{

public string VerifierRef { get; set; } = "";

public string Version { get; set; } = "1";

public Dictionary<string, object> Configuration { get; set; } = new();

}

Was this helpful?