microsoft.opentelemetry.a365.core.models.tool_call_schema module

Typed Agent365 execute-tool argument and result schema models.

The models mirror the Agent365 JSON contract used by the .NET distro. Payloads are serialized with serialize_tool_call_payload(), which never raises: any failure is replaced by TOOL_CALL_SERIALIZATION_ERROR_JSON so a span is never orphaned and no caller exception escapes the telemetry path.

microsoft.opentelemetry.a365.core.models.tool_call_schema.TOOL_CALL_SCHEMA_VERSION = '1.0'

Schema version emitted on every typed execute-tool payload.

microsoft.opentelemetry.a365.core.models.tool_call_schema.TOOL_CALL_SERIALIZATION_ERROR_JSON = '{"serialization_error":"Failed to serialize execute tool payload."}'

Diagnostic payload emitted when a typed execute-tool payload cannot be serialized.

class microsoft.opentelemetry.a365.core.models.tool_call_schema.ToolCallAction(value)[source]

Bases: str, Enum

Well-known actions taken by an execute-tool call.

CREATE = 'create'

Creates a resource.

READ = 'read'

Reads a resource.

UPDATE = 'update'

Updates a resource.

DELETE = 'delete'

Deletes a resource.

class microsoft.opentelemetry.a365.core.models.tool_call_schema.ToolCallOutcomeStatus(value)[source]

Bases: str, Enum

Well-known statuses for an execute-tool outcome.

SUCCESS = 'success'

The tool call completed successfully.

FAILURE = 'failure'

The tool call failed.

class microsoft.opentelemetry.a365.core.models.tool_call_schema.ToolPolicyDecision(value)[source]

Bases: str, Enum

Well-known policy decisions for an execute-tool result resource.

ALLOW = 'allow'

The policy allows the tool call.

DENY = 'deny'

The policy denies the tool call.

class microsoft.opentelemetry.a365.core.models.tool_call_schema.ToolCallIdentifier(identifier_type=None, value=None, extension_data=<factory>)[source]

Bases: object

Resource identifier for an execute-tool payload.

identifier_type: str | None = None
value: str | None = None
extension_data: dict[str, object]
class microsoft.opentelemetry.a365.core.models.tool_call_schema.ToolCallContainer(container_id=None, uri=None, container_type=None, extension_data=<factory>)[source]

Bases: object

Container that owns or scopes an execute-tool resource.

container_id: str | None = None
uri: str | None = None
container_type: str | None = None
extension_data: dict[str, object]
class microsoft.opentelemetry.a365.core.models.tool_call_schema.ToolCallResource(resource_id=None, uri=None, name=None, resource_type=None, provider=None, identifiers=None, container=None, extension_data=<factory>)[source]

Bases: object

Resource referenced by an execute-tool arguments payload.

resource_id: str | None = None
uri: str | None = None
name: str | None = None
resource_type: str | None = None
provider: str | None = None
identifiers: list[ToolCallIdentifier] | None = None
container: ToolCallContainer | None = None
extension_data: dict[str, object]
class microsoft.opentelemetry.a365.core.models.tool_call_schema.ExecuteToolCallArguments(action=None, resources=None, parameters=None, schema_version='1.0', extension_data=<factory>)[source]

Bases: object

Structured arguments for an execute-tool call.

action: ToolCallAction | str | None = None
resources: list[ToolCallResource] | None = None
parameters: dict[str, object] | None = None
schema_version: str = '1.0'
extension_data: dict[str, object]
class microsoft.opentelemetry.a365.core.models.tool_call_schema.ToolCallResultOutcome(status=None, code=None, provider_code=None, message=None, extension_data=<factory>)[source]

Bases: object

Outcome metadata for an execute-tool result.

status: ToolCallOutcomeStatus | str | None = None
code: str | None = None
provider_code: str | None = None
message: str | None = None
extension_data: dict[str, object]
class microsoft.opentelemetry.a365.core.models.tool_call_schema.ToolCallResultSensitivity(label_id=None, extension_data=<factory>)[source]

Bases: object

Sensitivity metadata for an execute-tool result resource.

label_id: str | None = None
extension_data: dict[str, object]
class microsoft.opentelemetry.a365.core.models.tool_call_schema.ToolCallResultPolicy(decision=None, policy_id=None, name=None, extension_data=<factory>)[source]

Bases: object

Policy metadata for an execute-tool result resource.

decision: ToolPolicyDecision | str | None = None
policy_id: str | None = None
name: str | None = None
extension_data: dict[str, object]
class microsoft.opentelemetry.a365.core.models.tool_call_schema.ToolCallResultSecurity(xpia_detected=None, extension_data=<factory>)[source]

Bases: object

Security metadata for an execute-tool result resource.

xpia_detected: bool | None = None
extension_data: dict[str, object]
class microsoft.opentelemetry.a365.core.models.tool_call_schema.ToolCallResultPagination(has_more=None, next_cursor=None, total_count=None, extension_data=<factory>)[source]

Bases: object

Pagination metadata for an execute-tool result.

has_more: bool | None = None
next_cursor: str | None = None
total_count: int | None = None
extension_data: dict[str, object]
class microsoft.opentelemetry.a365.core.models.tool_call_schema.ToolCallResultResource(resource_id=None, uri=None, name=None, resource_type=None, provider=None, identifiers=None, container=None, outcome=None, sensitivity=None, policy=None, security=None, data=None, extension_data=<factory>)[source]

Bases: object

Resource included in an execute-tool result payload.

resource_id: str | None = None
uri: str | None = None
name: str | None = None
resource_type: str | None = None
provider: str | None = None
identifiers: list[ToolCallIdentifier] | None = None
container: ToolCallContainer | None = None
outcome: ToolCallResultOutcome | None = None
sensitivity: ToolCallResultSensitivity | None = None
policy: ToolCallResultPolicy | None = None
security: ToolCallResultSecurity | None = None
data: dict[str, object] | None = None
extension_data: dict[str, object]
class microsoft.opentelemetry.a365.core.models.tool_call_schema.ExecuteToolCallResult(outcome=None, resources=None, data=None, pagination=None, schema_version='1.0', extension_data=<factory>)[source]

Bases: object

Structured result for an execute-tool call.

outcome: ToolCallResultOutcome | None = None
resources: list[ToolCallResultResource] | None = None
data: dict[str, object] | None = None
pagination: ToolCallResultPagination | None = None
schema_version: str = '1.0'
extension_data: dict[str, object]
microsoft.opentelemetry.a365.core.models.tool_call_schema.serialize_tool_call_payload(value)[source]

Serialize a typed execute-tool payload using the Agent365 JSON contract.

The call never raises. When any value in the payload cannot be represented in the schema — an unsupported type, a reference cycle, a non-finite float, an undefined enum value, or invalid extension data — the whole payload is replaced by TOOL_CALL_SERIALIZATION_ERROR_JSON.

Parameters:

value (ExecuteToolCallArguments | ExecuteToolCallResult | None) – The typed payload to serialize, or None.

Return type:

str | None

Returns:

The JSON payload, the diagnostic payload on failure, or None when value is None.