{
"type": "object",
"properties": {
"project_id": {
"type": "string",
"format": "uuid",
"description": "Project identifier associated with this result."
},
"configured": {
"type": "boolean",
"description": "Whether the project states a policy. False returns the defaults the project is served under: EU-only, with an `eu-resident` minimum tier, while the EU default is on; every allowed model once it has ended. A row that constrains nothing is routed exactly like no row; routing changes begin at the first non-null constraint."
},
"enforced": {
"type": "boolean",
"description": "Whether the gateway can apply this stored policy. True for every readable policy: each stated constraint is enforced, and so is the default \"eu-resident\" tier floor while the EU default is on. False only when a stored value (a tier or precision) is one this build cannot read, because the gateway then refuses every request for the project instead of applying it."
},
"created_at": {
"type": [
"string",
"null"
],
"description": "Records policy creation in ISO 8601 format, or null when no policy row exists."
},
"updated_at": {
"type": [
"string",
"null"
],
"description": "Records the last policy update in ISO 8601 format, or null when no policy row exists."
},
"updated_by": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null",
"description": "The updated by returned by the tool."
}
],
"description": "Records the user ID responsible for the last policy update, or null when no actor is recorded."
},
"models": {
"type": "object",
"properties": {
"allowed": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
},
"description": "List of allowed associated with this tool result."
},
{
"type": "null",
"description": "The allowed returned by the tool."
}
],
"description": "Canonical model IDs that may be used. Null means no restriction; an empty list allows nothing."
},
"denied": {
"type": "array",
"items": {
"type": "string"
},
"description": "Canonical model IDs that may not be used. A denial overrides an allowance; an empty list denies nothing."
}
},
"required": [
"allowed",
"denied"
],
"additionalProperties": false,
"description": "Models the project itself allows and denies. They only narrow its account."
},
"default_model": {
"type": [
"string",
"null"
],
"description": "The project's own default model. Null uses the account default, then the built-in default."
},
"account": {
"anyOf": [
{
"type": "object",
"properties": {
"models": {
"type": "object",
"properties": {
"allowed": {
"$ref": "#/properties/models/properties/allowed",
"description": "The allowed returned by the tool."
},
"denied": {
"$ref": "#/properties/models/properties/denied",
"description": "The denied returned by the tool."
}
},
"required": [
"allowed",
"denied"
],
"additionalProperties": false,
"description": "Structured models details associated with this tool result."
},
"default_model": {
"type": [
"string",
"null"
],
"description": "Default model ID. Null uses the built-in default, mistral/mistral-small-2503. A project default wins over the account default."
}
},
"required": [
"models",
"default_model"
],
"additionalProperties": false,
"description": "Structured account details associated with this tool result."
},
{
"type": "null",
"description": "The account returned by the tool."
}
],
"description": "The policy the project inherits from its account: its models and default_model. Null for a project without an account."
},
"effective": {
"type": "object",
"properties": {
"models": {
"$ref": "#/properties/account/anyOf/0/properties/models",
"description": "The models returned by the tool."
},
"default_model": {
"type": [
"string",
"null"
],
"description": "The model a call naming none gets: the project default, then the account default, then the built-in default, the first one allowed and served under the project's whole policy. Null when none is."
}
},
"required": [
"models",
"default_model"
],
"additionalProperties": false,
"description": "What applies to the project: its own and its account's rules composed (allowed lists intersect, denied lists combine), and the default model a call naming none gets."
}
},
"required": [
"project_id",
"configured",
"enforced",
"created_at",
"updated_at",
"updated_by",
"models",
"default_model",
"account",
"effective"
],
"additionalProperties": false,
"description": "Structured result returned by the get_inference_policy tool.",
"$schema": "http://json-schema.org/draft-07/schema#"
}