> ## Documentation Index
> Fetch the complete documentation index at: https://www.adaline.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# LogSpanFunctionContent

# LogSpanFunctionContent

Content type for custom application logic and function call spans.

## Overview

`LogSpanFunctionContent` captures arbitrary function invocations in your application. It is wrapped in a [LogSpanContent](/docs/reference/sdk/v2/python/types/LogSpanContent) union via the `actual_instance` pattern.

```python theme={null}
from adaline_api.models.log_span_function_content import LogSpanFunctionContent
```

***

## Fields

<ParamField body="type" type="str" required>
  Must be `"Function"`.
</ParamField>

<ParamField body="input" type="str" required>
  The input payload as a JSON string. Must be valid, parseable JSON (the result of `json.dumps()`).
</ParamField>

<ParamField body="output" type="str" required>
  The output payload as a JSON string. Must be valid, parseable JSON (the result of `json.dumps()`).
</ParamField>

***

## Construction Pattern

All span content is wrapped in [LogSpanContent](/docs/reference/sdk/v2/python/types/LogSpanContent) using the `actual_instance` parameter:

```python theme={null}
from adaline_api.models.log_span_content import LogSpanContent
from adaline_api.models.log_span_function_content import LogSpanFunctionContent

content = LogSpanContent(
    actual_instance=LogSpanFunctionContent(
        type="Function",
        input=json.dumps({"arg": "value"}),
        output=json.dumps({"result": "done"}),
    )
)
```

***

## Example

```python theme={null}
import json
from adaline_api.models.log_span_content import LogSpanContent
from adaline_api.models.log_span_function_content import LogSpanFunctionContent

fn_input = {"user_id": "u_123", "action": "compute_score"}
fn_output = {"score": 87.5, "tier": "gold"}

span.update({
    "status": "success",
    "content": LogSpanContent(
        actual_instance=LogSpanFunctionContent(
            type="Function",
            input=json.dumps(fn_input),
            output=json.dumps(fn_output),
        )
    ),
})
```
