From 122d1885dbff6d14225dd829b7de36cf290deca2 Mon Sep 17 00:00:00 2001 From: AbhiPrasad <18689448+AbhiPrasad@users.noreply.github.com> Date: Mon, 12 Oct 2026 08:34:40 +0000 Subject: [PATCH] chore(api): update pinned OpenAPI spec --- openapi/config.json | 4 +- openapi/spec.json | 285 +++++++++++++++++- py/src/braintrust/api/_generated/__init__.py | 4 +- py/src/braintrust/api/_generated/acls.py | 4 +- py/src/braintrust/api/_generated/agents.py | 4 +- .../braintrust/api/_generated/ai_secrets.py | 4 +- py/src/braintrust/api/_generated/api_keys.py | 4 +- .../api/_generated/dataset_snapshots.py | 4 +- py/src/braintrust/api/_generated/datasets.py | 4 +- py/src/braintrust/api/_generated/env_vars.py | 4 +- .../braintrust/api/_generated/environments.py | 4 +- .../braintrust/api/_generated/experiments.py | 4 +- py/src/braintrust/api/_generated/functions.py | 4 +- py/src/braintrust/api/_generated/groups.py | 4 +- .../braintrust/api/_generated/mcp_servers.py | 4 +- .../api/_generated/models/__init__.py | 30 +- .../braintrust/api/_generated/models/acls.py | 4 +- .../api/_generated/models/agents.py | 4 +- .../api/_generated/models/ai_secrets.py | 4 +- .../api/_generated/models/api_keys.py | 4 +- .../api/_generated/models/common.py | 4 +- .../_generated/models/dataset_snapshots.py | 4 +- .../api/_generated/models/datasets.py | 4 +- .../api/_generated/models/env_vars.py | 8 +- .../api/_generated/models/environments.py | 4 +- .../api/_generated/models/experiments.py | 4 +- .../api/_generated/models/functions.py | 4 +- .../api/_generated/models/groups.py | 4 +- .../api/_generated/models/mcp_servers.py | 4 +- .../api/_generated/models/org_automations.py | 4 +- .../api/_generated/models/organizations.py | 4 +- .../_generated/models/project_automations.py | 208 +++++++++++-- .../api/_generated/models/project_groups.py | 4 +- .../api/_generated/models/project_scores.py | 4 +- .../api/_generated/models/project_tags.py | 4 +- .../api/_generated/models/projects.py | 4 +- .../api/_generated/models/prompts.py | 4 +- .../braintrust/api/_generated/models/roles.py | 4 +- .../api/_generated/models/service_tokens.py | 4 +- .../api/_generated/models/span_iframes.py | 4 +- .../braintrust/api/_generated/models/users.py | 4 +- .../braintrust/api/_generated/models/views.py | 4 +- .../api/_generated/org_automations.py | 4 +- .../api/_generated/organizations.py | 4 +- .../api/_generated/project_automations.py | 4 +- .../api/_generated/project_groups.py | 4 +- .../api/_generated/project_scores.py | 4 +- .../braintrust/api/_generated/project_tags.py | 4 +- py/src/braintrust/api/_generated/projects.py | 4 +- py/src/braintrust/api/_generated/prompts.py | 4 +- py/src/braintrust/api/_generated/roles.py | 4 +- .../api/_generated/service_tokens.py | 4 +- .../braintrust/api/_generated/span_iframes.py | 4 +- py/src/braintrust/api/_generated/users.py | 4 +- py/src/braintrust/api/_generated/views.py | 4 +- 55 files changed, 600 insertions(+), 135 deletions(-) diff --git a/openapi/config.json b/openapi/config.json index 72940e0b4..e327ba00b 100644 --- a/openapi/config.json +++ b/openapi/config.json @@ -3,8 +3,8 @@ "spec": { "repository": "braintrustdata/braintrust-openapi", "path": "openapi/spec.json", - "commit": "66eed24b98cd0f5609c9f524230a61497f7fd77d", - "sha256": "877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221" + "commit": "e53363ed2c1530a53b68872433f68844dceaad1b", + "sha256": "e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478" }, "tools": { "datamodel-code-generator": "0.81.0", diff --git a/openapi/spec.json b/openapi/spec.json index 65c2cb6c7..893dcb1ab 100644 --- a/openapi/spec.json +++ b/openapi/spec.json @@ -6060,14 +6060,16 @@ "harness": { "type": "string", "enum": [ - "native", "codex", + "native", "claude-code" - ] + ], + "description": "Required when saving a Loop automation. Currently only Codex is supported." }, "model": { "type": "string", - "minLength": 1 + "minLength": 1, + "description": "Required when saving a Loop automation." }, "endpoint_name": { "type": "string", @@ -6156,6 +6158,43 @@ "workspace_id", "channel" ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "pagerduty" + ], + "description": "The type of action to take" + }, + "routing_key_secret_name": { + "type": "string", + "format": "uuid", + "description": "The data-plane secret containing the PagerDuty routing key" + }, + "severity": { + "type": "string", + "enum": [ + "critical", + "error", + "warning", + "info" + ] + }, + "formatting_prompt": { + "type": "string", + "minLength": 1, + "maxLength": 10000, + "description": "Instructions for Loop to format content sent to this destination" + } + }, + "required": [ + "type", + "routing_key_secret_name", + "severity" + ] } ], "description": "A delivery action available to an automation" @@ -6663,6 +6702,43 @@ "workspace_id", "channel" ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "pagerduty" + ], + "description": "The type of action to take" + }, + "routing_key_secret_name": { + "type": "string", + "format": "uuid", + "description": "The data-plane secret containing the PagerDuty routing key" + }, + "severity": { + "type": "string", + "enum": [ + "critical", + "error", + "warning", + "info" + ] + }, + "formatting_prompt": { + "type": "string", + "minLength": 1, + "maxLength": 10000, + "description": "Instructions for Loop to format content sent to this destination" + } + }, + "required": [ + "type", + "routing_key_secret_name", + "severity" + ] } ], "description": "The action to take when the automation rule is triggered" @@ -6813,6 +6889,11 @@ "service_account_email": { "type": "string", "description": "The GCP service account email to impersonate" + }, + "credential_name": { + "type": "string", + "minLength": 1, + "description": "The name of a Google workload identity federation credential configured in this organization's AI providers. Supported data planes can use it regardless of hosting environment. If omitted, the data plane's GCP identity is used." } }, "required": [ @@ -7005,6 +7086,43 @@ "workspace_id", "channel" ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "pagerduty" + ], + "description": "The type of action to take" + }, + "routing_key_secret_name": { + "type": "string", + "format": "uuid", + "description": "The data-plane secret containing the PagerDuty routing key" + }, + "severity": { + "type": "string", + "enum": [ + "critical", + "error", + "warning", + "info" + ] + }, + "formatting_prompt": { + "type": "string", + "minLength": 1, + "maxLength": 10000, + "description": "Instructions for Loop to format content sent to this destination" + } + }, + "required": [ + "type", + "routing_key_secret_name", + "severity" + ] } ], "description": "The action to take when the automation rule is triggered" @@ -7154,6 +7272,43 @@ "workspace_id", "channel" ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "pagerduty" + ], + "description": "The type of action to take" + }, + "routing_key_secret_name": { + "type": "string", + "format": "uuid", + "description": "The data-plane secret containing the PagerDuty routing key" + }, + "severity": { + "type": "string", + "enum": [ + "critical", + "error", + "warning", + "info" + ] + }, + "formatting_prompt": { + "type": "string", + "minLength": 1, + "maxLength": 10000, + "description": "Instructions for Loop to format content sent to this destination" + } + }, + "required": [ + "type", + "routing_key_secret_name", + "severity" + ] } ], "description": "The action to take when the automation rule is triggered" @@ -7304,6 +7459,11 @@ "service_account_email": { "type": "string", "description": "The GCP service account email to impersonate" + }, + "credential_name": { + "type": "string", + "minLength": 1, + "description": "The name of a Google workload identity federation credential configured in this organization's AI providers. Supported data planes can use it regardless of hosting environment. If omitted, the data plane's GCP identity is used." } }, "required": [ @@ -7496,6 +7656,43 @@ "workspace_id", "channel" ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "pagerduty" + ], + "description": "The type of action to take" + }, + "routing_key_secret_name": { + "type": "string", + "format": "uuid", + "description": "The data-plane secret containing the PagerDuty routing key" + }, + "severity": { + "type": "string", + "enum": [ + "critical", + "error", + "warning", + "info" + ] + }, + "formatting_prompt": { + "type": "string", + "minLength": 1, + "maxLength": 10000, + "description": "Instructions for Loop to format content sent to this destination" + } + }, + "required": [ + "type", + "routing_key_secret_name", + "severity" + ] } ], "description": "The action to take when the automation rule is triggered" @@ -7625,6 +7822,43 @@ "workspace_id", "channel" ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "pagerduty" + ], + "description": "The type of action to take" + }, + "routing_key_secret_name": { + "type": "string", + "format": "uuid", + "description": "The data-plane secret containing the PagerDuty routing key" + }, + "severity": { + "type": "string", + "enum": [ + "critical", + "error", + "warning", + "info" + ] + }, + "formatting_prompt": { + "type": "string", + "minLength": 1, + "maxLength": 10000, + "description": "Instructions for Loop to format content sent to this destination" + } + }, + "required": [ + "type", + "routing_key_secret_name", + "severity" + ] } ], "description": "The action to take when the automation rule is triggered" @@ -7775,6 +8009,11 @@ "service_account_email": { "type": "string", "description": "The GCP service account email to impersonate" + }, + "credential_name": { + "type": "string", + "minLength": 1, + "description": "The name of a Google workload identity federation credential configured in this organization's AI providers. Supported data planes can use it regardless of hosting environment. If omitted, the data plane's GCP identity is used." } }, "required": [ @@ -7967,6 +8206,43 @@ "workspace_id", "channel" ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "pagerduty" + ], + "description": "The type of action to take" + }, + "routing_key_secret_name": { + "type": "string", + "format": "uuid", + "description": "The data-plane secret containing the PagerDuty routing key" + }, + "severity": { + "type": "string", + "enum": [ + "critical", + "error", + "warning", + "info" + ] + }, + "formatting_prompt": { + "type": "string", + "minLength": 1, + "maxLength": 10000, + "description": "Instructions for Loop to format content sent to this destination" + } + }, + "required": [ + "type", + "routing_key_secret_name", + "severity" + ] } ], "description": "The action to take when the automation rule is triggered" @@ -11986,7 +12262,8 @@ "enum": [ "env_var", "ai_provider", - "sandbox_provider" + "sandbox_provider", + "automation_integration" ], "default": "env_var", "description": "The category of the secret: env_var for regular environment variables, ai_provider for AI provider API keys" diff --git a/py/src/braintrust/api/_generated/__init__.py b/py/src/braintrust/api/_generated/__init__.py index 9d2446eda..37bc8992a 100644 --- a/py/src/braintrust/api/_generated/__init__.py +++ b/py/src/braintrust/api/_generated/__init__.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/acls.py b/py/src/braintrust/api/_generated/acls.py index 4ccd26227..2271b55ba 100644 --- a/py/src/braintrust/api/_generated/acls.py +++ b/py/src/braintrust/api/_generated/acls.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/agents.py b/py/src/braintrust/api/_generated/agents.py index 310745ad0..e8894bde0 100644 --- a/py/src/braintrust/api/_generated/agents.py +++ b/py/src/braintrust/api/_generated/agents.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/ai_secrets.py b/py/src/braintrust/api/_generated/ai_secrets.py index d5442ebf4..efd4ce7aa 100644 --- a/py/src/braintrust/api/_generated/ai_secrets.py +++ b/py/src/braintrust/api/_generated/ai_secrets.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/api_keys.py b/py/src/braintrust/api/_generated/api_keys.py index f377a4b31..c58e8d366 100644 --- a/py/src/braintrust/api/_generated/api_keys.py +++ b/py/src/braintrust/api/_generated/api_keys.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/dataset_snapshots.py b/py/src/braintrust/api/_generated/dataset_snapshots.py index 6657a140a..d60e3a846 100644 --- a/py/src/braintrust/api/_generated/dataset_snapshots.py +++ b/py/src/braintrust/api/_generated/dataset_snapshots.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/datasets.py b/py/src/braintrust/api/_generated/datasets.py index eefc58ac9..870a7b64f 100644 --- a/py/src/braintrust/api/_generated/datasets.py +++ b/py/src/braintrust/api/_generated/datasets.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/env_vars.py b/py/src/braintrust/api/_generated/env_vars.py index 2fa6c1beb..48febf3b1 100644 --- a/py/src/braintrust/api/_generated/env_vars.py +++ b/py/src/braintrust/api/_generated/env_vars.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/environments.py b/py/src/braintrust/api/_generated/environments.py index cc00fb6b2..2b8778557 100644 --- a/py/src/braintrust/api/_generated/environments.py +++ b/py/src/braintrust/api/_generated/environments.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/experiments.py b/py/src/braintrust/api/_generated/experiments.py index 57a420be7..68d588042 100644 --- a/py/src/braintrust/api/_generated/experiments.py +++ b/py/src/braintrust/api/_generated/experiments.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/functions.py b/py/src/braintrust/api/_generated/functions.py index 120aa36cb..59b0c300d 100644 --- a/py/src/braintrust/api/_generated/functions.py +++ b/py/src/braintrust/api/_generated/functions.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/groups.py b/py/src/braintrust/api/_generated/groups.py index 84c8d3d3b..769415cd1 100644 --- a/py/src/braintrust/api/_generated/groups.py +++ b/py/src/braintrust/api/_generated/groups.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/mcp_servers.py b/py/src/braintrust/api/_generated/mcp_servers.py index bb3f33708..fd70e3d32 100644 --- a/py/src/braintrust/api/_generated/mcp_servers.py +++ b/py/src/braintrust/api/_generated/mcp_servers.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/__init__.py b/py/src/braintrust/api/_generated/models/__init__.py index e664f0876..6bf9045e2 100644 --- a/py/src/braintrust/api/_generated/models/__init__.py +++ b/py/src/braintrust/api/_generated/models/__init__.py @@ -1,10 +1,10 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 -# Content SHA-256: 73a8669c9617b271546cb7075275201ee79958a0d253b0771ce23c7661117247 +# Content SHA-256: dcafdbf2659d531e25aea236d7c114e37d3534e7e1c7fb8c9cdbc4880b01cf37 """Generated private model types with lazy package-level imports.""" @@ -300,6 +300,13 @@ Action1, Action10, Action11, + Action12, + Action13, + Action14, + Action15, + Action16, + Action17, + Action18, Action2, Action3, Action4, @@ -310,6 +317,7 @@ Action9, Actions, Actions1, + Actions2, BackfillTimeRange, Calculation, Condition, @@ -511,6 +519,13 @@ "Action1": "project_automations", "Action10": "project_automations", "Action11": "project_automations", + "Action12": "project_automations", + "Action13": "project_automations", + "Action14": "project_automations", + "Action15": "project_automations", + "Action16": "project_automations", + "Action17": "project_automations", + "Action18": "project_automations", "Action2": "project_automations", "Action3": "project_automations", "Action4": "project_automations", @@ -521,6 +536,7 @@ "Action9": "project_automations", "Actions": "project_automations", "Actions1": "project_automations", + "Actions2": "project_automations", "AddMemberPermission": "roles", "AddedUser": "organizations", "Agent": "agents", @@ -982,6 +998,13 @@ "Action1", "Action10", "Action11", + "Action12", + "Action13", + "Action14", + "Action15", + "Action16", + "Action17", + "Action18", "Action2", "Action3", "Action4", @@ -992,6 +1015,7 @@ "Action9", "Actions", "Actions1", + "Actions2", "AddMemberPermission", "AddedUser", "Agent", diff --git a/py/src/braintrust/api/_generated/models/acls.py b/py/src/braintrust/api/_generated/models/acls.py index 58693259b..4e5ba2c2e 100644 --- a/py/src/braintrust/api/_generated/models/acls.py +++ b/py/src/braintrust/api/_generated/models/acls.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/agents.py b/py/src/braintrust/api/_generated/models/agents.py index 9b45702cf..53191b8c1 100644 --- a/py/src/braintrust/api/_generated/models/agents.py +++ b/py/src/braintrust/api/_generated/models/agents.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/ai_secrets.py b/py/src/braintrust/api/_generated/models/ai_secrets.py index 2697cf6c1..757d2cb2e 100644 --- a/py/src/braintrust/api/_generated/models/ai_secrets.py +++ b/py/src/braintrust/api/_generated/models/ai_secrets.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/api_keys.py b/py/src/braintrust/api/_generated/models/api_keys.py index e510db5c0..f9ab63b0f 100644 --- a/py/src/braintrust/api/_generated/models/api_keys.py +++ b/py/src/braintrust/api/_generated/models/api_keys.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/common.py b/py/src/braintrust/api/_generated/models/common.py index df079b8b9..1f0252410 100644 --- a/py/src/braintrust/api/_generated/models/common.py +++ b/py/src/braintrust/api/_generated/models/common.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/dataset_snapshots.py b/py/src/braintrust/api/_generated/models/dataset_snapshots.py index 90f3f4bbc..d2f4d07b1 100644 --- a/py/src/braintrust/api/_generated/models/dataset_snapshots.py +++ b/py/src/braintrust/api/_generated/models/dataset_snapshots.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/datasets.py b/py/src/braintrust/api/_generated/models/datasets.py index 17dcd9733..b2024c335 100644 --- a/py/src/braintrust/api/_generated/models/datasets.py +++ b/py/src/braintrust/api/_generated/models/datasets.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/env_vars.py b/py/src/braintrust/api/_generated/models/env_vars.py index 641ebc9ed..5054eae94 100644 --- a/py/src/braintrust/api/_generated/models/env_vars.py +++ b/py/src/braintrust/api/_generated/models/env_vars.py @@ -1,10 +1,10 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 -# Content SHA-256: 12c91d9e0b397ae1a547094c05bb016bdf4fe2bd09683493f972b5c8d470fcea +# Content SHA-256: 7a98ef3d26afff3affbb9e58100398e9f508d1c5eae1e7ea11c6e6e902f3c484 from typing_extensions import NotRequired from typing import Any, Literal, TypeAlias, TypedDict @@ -40,7 +40,7 @@ class EnvVar(TypedDict): """ Redacted preview of the stored secret value """ - secret_category: NotRequired[Literal["env_var", "ai_provider", "sandbox_provider"]] + secret_category: NotRequired[Literal["env_var", "ai_provider", "sandbox_provider", "automation_integration"]] """ The category of the secret: env_var for regular environment variables, ai_provider for AI provider API keys """ diff --git a/py/src/braintrust/api/_generated/models/environments.py b/py/src/braintrust/api/_generated/models/environments.py index 4855f62b4..106f128cf 100644 --- a/py/src/braintrust/api/_generated/models/environments.py +++ b/py/src/braintrust/api/_generated/models/environments.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/experiments.py b/py/src/braintrust/api/_generated/models/experiments.py index 1b8c5140c..00c4d3cab 100644 --- a/py/src/braintrust/api/_generated/models/experiments.py +++ b/py/src/braintrust/api/_generated/models/experiments.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/functions.py b/py/src/braintrust/api/_generated/models/functions.py index e99c6e0b0..3850540b2 100644 --- a/py/src/braintrust/api/_generated/models/functions.py +++ b/py/src/braintrust/api/_generated/models/functions.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/groups.py b/py/src/braintrust/api/_generated/models/groups.py index c20751a11..3e7992c71 100644 --- a/py/src/braintrust/api/_generated/models/groups.py +++ b/py/src/braintrust/api/_generated/models/groups.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/mcp_servers.py b/py/src/braintrust/api/_generated/models/mcp_servers.py index c0a568454..d341b95bd 100644 --- a/py/src/braintrust/api/_generated/models/mcp_servers.py +++ b/py/src/braintrust/api/_generated/models/mcp_servers.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/org_automations.py b/py/src/braintrust/api/_generated/models/org_automations.py index 204028346..a055effd6 100644 --- a/py/src/braintrust/api/_generated/models/org_automations.py +++ b/py/src/braintrust/api/_generated/models/org_automations.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/organizations.py b/py/src/braintrust/api/_generated/models/organizations.py index db5c60095..efb4f51e1 100644 --- a/py/src/braintrust/api/_generated/models/organizations.py +++ b/py/src/braintrust/api/_generated/models/organizations.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/project_automations.py b/py/src/braintrust/api/_generated/models/project_automations.py index 899cfa81e..186d88936 100644 --- a/py/src/braintrust/api/_generated/models/project_automations.py +++ b/py/src/braintrust/api/_generated/models/project_automations.py @@ -1,10 +1,10 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 -# Content SHA-256: cb744edc81ded593912292ecace76cb6efefb90a56cc8a2ea036b807722135b9 +# Content SHA-256: 3d8afc143d2352c62f13d90de1bfd2642e92e0231559c4d086a170ae6d8b3bc6 from typing_extensions import NotRequired from typing import Any, Literal, TypeAlias, TypedDict @@ -62,8 +62,24 @@ class Action1(TypedDict): """ +class Action2(TypedDict): + formatting_prompt: NotRequired[str] + """ + Instructions for Loop to format content sent to this destination + """ + routing_key_secret_name: str + """ + The data-plane secret containing the PagerDuty routing key + """ + severity: Literal["critical", "error", "warning", "info"] + type: Literal["pagerduty"] + """ + The type of action to take + """ + + class Config1(TypedDict): - action: Action | Action1 + action: Action | Action1 | Action2 """ The action to take when the automation rule is triggered """ @@ -95,6 +111,10 @@ class Credentials(TypedDict): class Credentials1(TypedDict): + credential_name: NotRequired[str] + """ + The name of a Google workload identity federation credential configured in this organization's AI providers. Supported data planes can use it regardless of hosting environment. If omitted, the data plane's GCP identity is used. + """ service_account_email: str """ The GCP service account email to impersonate @@ -150,7 +170,7 @@ class Config3(TypedDict): status: NotRequired[AutomationStatus] -class Action2(TypedDict): +class Action3(TypedDict): formatting_prompt: NotRequired[str] """ Instructions for Loop to format content sent to this destination @@ -165,7 +185,7 @@ class Action2(TypedDict): """ -class Action3(TypedDict): +class Action4(TypedDict): channel: str """ The Slack channel ID to post to @@ -199,8 +219,24 @@ class Action3(TypedDict): """ +class Action5(TypedDict): + formatting_prompt: NotRequired[str] + """ + Instructions for Loop to format content sent to this destination + """ + routing_key_secret_name: str + """ + The data-plane secret containing the PagerDuty routing key + """ + severity: Literal["critical", "error", "warning", "info"] + type: Literal["pagerduty"] + """ + The type of action to take + """ + + class Config5(TypedDict): - action: Action2 | Action3 + action: Action3 | Action4 | Action5 """ The action to take when the automation rule is triggered """ @@ -215,7 +251,7 @@ class Config5(TypedDict): status: NotRequired[AutomationStatus] -class Action4(TypedDict): +class Action6(TypedDict): formatting_prompt: NotRequired[str] """ Instructions for Loop to format content sent to this destination @@ -230,7 +266,7 @@ class Action4(TypedDict): """ -class Action5(TypedDict): +class Action7(TypedDict): channel: str """ The Slack channel ID to post to @@ -264,8 +300,24 @@ class Action5(TypedDict): """ +class Action8(TypedDict): + formatting_prompt: NotRequired[str] + """ + Instructions for Loop to format content sent to this destination + """ + routing_key_secret_name: str + """ + The data-plane secret containing the PagerDuty routing key + """ + severity: Literal["critical", "error", "warning", "info"] + type: Literal["pagerduty"] + """ + The type of action to take + """ + + class Config8(TypedDict): - action: Action4 | Action5 + action: Action6 | Action7 | Action8 """ The action to take when the automation rule is triggered """ @@ -297,6 +349,10 @@ class Credentials2(TypedDict): class Credentials3(TypedDict): + credential_name: NotRequired[str] + """ + The name of a Google workload identity federation credential configured in this organization's AI providers. Supported data planes can use it regardless of hosting environment. If omitted, the data plane's GCP identity is used. + """ service_account_email: str """ The GCP service account email to impersonate @@ -352,7 +408,7 @@ class Config10(TypedDict): status: NotRequired[AutomationStatus] -class Action6(TypedDict): +class Action9(TypedDict): formatting_prompt: NotRequired[str] """ Instructions for Loop to format content sent to this destination @@ -367,7 +423,7 @@ class Action6(TypedDict): """ -class Action7(TypedDict): +class Action10(TypedDict): channel: str """ The Slack channel ID to post to @@ -401,8 +457,24 @@ class Action7(TypedDict): """ +class Action11(TypedDict): + formatting_prompt: NotRequired[str] + """ + Instructions for Loop to format content sent to this destination + """ + routing_key_secret_name: str + """ + The data-plane secret containing the PagerDuty routing key + """ + severity: Literal["critical", "error", "warning", "info"] + type: Literal["pagerduty"] + """ + The type of action to take + """ + + class Config12(TypedDict): - action: Action6 | Action7 + action: Action9 | Action10 | Action11 """ The action to take when the automation rule is triggered """ @@ -417,7 +489,7 @@ class Config12(TypedDict): status: NotRequired[AutomationStatus] -class Action8(TypedDict): +class Action12(TypedDict): formatting_prompt: NotRequired[str] """ Instructions for Loop to format content sent to this destination @@ -432,7 +504,7 @@ class Action8(TypedDict): """ -class Action9(TypedDict): +class Action13(TypedDict): channel: str """ The Slack channel ID to post to @@ -466,8 +538,24 @@ class Action9(TypedDict): """ +class Action14(TypedDict): + formatting_prompt: NotRequired[str] + """ + Instructions for Loop to format content sent to this destination + """ + routing_key_secret_name: str + """ + The data-plane secret containing the PagerDuty routing key + """ + severity: Literal["critical", "error", "warning", "info"] + type: Literal["pagerduty"] + """ + The type of action to take + """ + + class Config13(TypedDict): - action: Action8 | Action9 + action: Action12 | Action13 | Action14 """ The action to take when the automation rule is triggered """ @@ -499,6 +587,10 @@ class Credentials4(TypedDict): class Credentials5(TypedDict): + credential_name: NotRequired[str] + """ + The name of a Google workload identity federation credential configured in this organization's AI providers. Supported data planes can use it regardless of hosting environment. If omitted, the data plane's GCP identity is used. + """ service_account_email: str """ The GCP service account email to impersonate @@ -554,7 +646,7 @@ class Config15(TypedDict): status: NotRequired[AutomationStatus] -class Action10(TypedDict): +class Action15(TypedDict): formatting_prompt: NotRequired[str] """ Instructions for Loop to format content sent to this destination @@ -569,7 +661,7 @@ class Action10(TypedDict): """ -class Action11(TypedDict): +class Action16(TypedDict): channel: str """ The Slack channel ID to post to @@ -603,8 +695,24 @@ class Action11(TypedDict): """ +class Action17(TypedDict): + formatting_prompt: NotRequired[str] + """ + Instructions for Loop to format content sent to this destination + """ + routing_key_secret_name: str + """ + The data-plane secret containing the PagerDuty routing key + """ + severity: Literal["critical", "error", "warning", "info"] + type: Literal["pagerduty"] + """ + The type of action to take + """ + + class Config17(TypedDict): - action: Action10 | Action11 + action: Action15 | Action16 | Action17 """ The action to take when the automation rule is triggered """ @@ -707,8 +815,42 @@ class TopicAutomationDataScope3(TypedDict): """ +class Action18(TypedDict): + channel: str + """ + The Slack channel ID to post to + """ + formatting_prompt: NotRequired[str] + """ + Publish a Slack mrkdwn digest. + + Pattern selection requirement: include every selected Pattern whose final status is active at the end of this automation run, plus every selected Pattern that changed from active to inactive during this run (a newly inactive outcome). Exclude Patterns that were already inactive before this run and remained inactive. Do not mention excluded Patterns anywhere in the digest, including Highlights. If no selected Patterns meet these criteria, say "No current pattern outcomes." This requirement overrides conflicting formatting guidance. + + Include a complete "*Pattern outcomes*" section with one row for every included Pattern. + + Use this row format exactly: + • — `outcome` + + If a Pattern has no URL, use the plain title instead. Do not use GitHub Markdown tables or code-block tables, because links must remain clickable. Do not omit any active selected Pattern. + + After the outcome list, include a "*Highlights*" section with one very short paragraph, 2-3 sentences maximum. Summarize what changed or what broadly stands out among the included active Patterns. Do not introduce new claims beyond the run report. + """ + message_template: NotRequired[str] + """ + Custom message template for the alert + """ + type: Literal["slack"] + """ + The type of action to take + """ + workspace_id: str + """ + The Slack workspace ID to post to + """ + + class TopicDigestAutomationConfig(TypedDict): - action: Action11 + action: Action18 """ The Slack action to take when the digest is sent """ @@ -826,6 +968,22 @@ class Actions1(TypedDict): """ +class Actions2(TypedDict): + formatting_prompt: NotRequired[str] + """ + Instructions for Loop to format content sent to this destination + """ + routing_key_secret_name: str + """ + The data-plane secret containing the PagerDuty routing key + """ + severity: Literal["critical", "error", "warning", "info"] + type: Literal["pagerduty"] + """ + The type of action to take + """ + + class Loop(TypedDict): agent_slug: str """ @@ -836,12 +994,18 @@ class Loop(TypedDict): Write tools that may run without interactive approval """ endpoint_name: NotRequired[str] - harness: NotRequired[Literal["native", "codex", "claude-code"]] + harness: NotRequired[Literal["codex", "native", "claude-code"]] + """ + Required when saving a Loop automation. Currently only Codex is supported. + """ include_trigger_input: NotRequired[bool] """ Whether to include the automation trigger payload as input """ model: NotRequired[str] + """ + Required when saving a Loop automation. + """ prompt: str """ Instructions for the Loop agent @@ -939,7 +1103,7 @@ class Window(TypedDict): class WindowedAutomationConfig(TypedDict): - actions: NotRequired[Sequence[Actions | Actions1]] + actions: NotRequired[Sequence[Actions | Actions1 | Actions2]] """ Delivery actions exposed to Loop as tools, or run directly when Loop is not configured """ diff --git a/py/src/braintrust/api/_generated/models/project_groups.py b/py/src/braintrust/api/_generated/models/project_groups.py index 128cea8b4..dcab9cfb6 100644 --- a/py/src/braintrust/api/_generated/models/project_groups.py +++ b/py/src/braintrust/api/_generated/models/project_groups.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/project_scores.py b/py/src/braintrust/api/_generated/models/project_scores.py index b8fdf6e7b..35626c8a3 100644 --- a/py/src/braintrust/api/_generated/models/project_scores.py +++ b/py/src/braintrust/api/_generated/models/project_scores.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/project_tags.py b/py/src/braintrust/api/_generated/models/project_tags.py index 7e7c83708..b5a7e328b 100644 --- a/py/src/braintrust/api/_generated/models/project_tags.py +++ b/py/src/braintrust/api/_generated/models/project_tags.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/projects.py b/py/src/braintrust/api/_generated/models/projects.py index 02968cf51..790667227 100644 --- a/py/src/braintrust/api/_generated/models/projects.py +++ b/py/src/braintrust/api/_generated/models/projects.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/prompts.py b/py/src/braintrust/api/_generated/models/prompts.py index c3e8b28f0..c5342e93b 100644 --- a/py/src/braintrust/api/_generated/models/prompts.py +++ b/py/src/braintrust/api/_generated/models/prompts.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/roles.py b/py/src/braintrust/api/_generated/models/roles.py index f55f27088..1a5940f1c 100644 --- a/py/src/braintrust/api/_generated/models/roles.py +++ b/py/src/braintrust/api/_generated/models/roles.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/service_tokens.py b/py/src/braintrust/api/_generated/models/service_tokens.py index e9176acdb..5e73052b0 100644 --- a/py/src/braintrust/api/_generated/models/service_tokens.py +++ b/py/src/braintrust/api/_generated/models/service_tokens.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/span_iframes.py b/py/src/braintrust/api/_generated/models/span_iframes.py index a12dbd182..cee760a84 100644 --- a/py/src/braintrust/api/_generated/models/span_iframes.py +++ b/py/src/braintrust/api/_generated/models/span_iframes.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/users.py b/py/src/braintrust/api/_generated/models/users.py index ea5e4e97e..6d4e0b775 100644 --- a/py/src/braintrust/api/_generated/models/users.py +++ b/py/src/braintrust/api/_generated/models/users.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/models/views.py b/py/src/braintrust/api/_generated/models/views.py index 17284d12f..2c20d3228 100644 --- a/py/src/braintrust/api/_generated/models/views.py +++ b/py/src/braintrust/api/_generated/models/views.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/org_automations.py b/py/src/braintrust/api/_generated/org_automations.py index 631ffd905..8593dcef1 100644 --- a/py/src/braintrust/api/_generated/org_automations.py +++ b/py/src/braintrust/api/_generated/org_automations.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/organizations.py b/py/src/braintrust/api/_generated/organizations.py index 7026187d3..8c16efc85 100644 --- a/py/src/braintrust/api/_generated/organizations.py +++ b/py/src/braintrust/api/_generated/organizations.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/project_automations.py b/py/src/braintrust/api/_generated/project_automations.py index 70cf4a911..f6378efac 100644 --- a/py/src/braintrust/api/_generated/project_automations.py +++ b/py/src/braintrust/api/_generated/project_automations.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/project_groups.py b/py/src/braintrust/api/_generated/project_groups.py index cd0b44e4f..56241d0d8 100644 --- a/py/src/braintrust/api/_generated/project_groups.py +++ b/py/src/braintrust/api/_generated/project_groups.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/project_scores.py b/py/src/braintrust/api/_generated/project_scores.py index 0f0edf304..73f900348 100644 --- a/py/src/braintrust/api/_generated/project_scores.py +++ b/py/src/braintrust/api/_generated/project_scores.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/project_tags.py b/py/src/braintrust/api/_generated/project_tags.py index 7e1f677ba..5f1b6315c 100644 --- a/py/src/braintrust/api/_generated/project_tags.py +++ b/py/src/braintrust/api/_generated/project_tags.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/projects.py b/py/src/braintrust/api/_generated/projects.py index c2f1324f7..e6f525488 100644 --- a/py/src/braintrust/api/_generated/projects.py +++ b/py/src/braintrust/api/_generated/projects.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/prompts.py b/py/src/braintrust/api/_generated/prompts.py index 958ef4c34..e8d623eb8 100644 --- a/py/src/braintrust/api/_generated/prompts.py +++ b/py/src/braintrust/api/_generated/prompts.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/roles.py b/py/src/braintrust/api/_generated/roles.py index 631a79dbe..2625bc515 100644 --- a/py/src/braintrust/api/_generated/roles.py +++ b/py/src/braintrust/api/_generated/roles.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/service_tokens.py b/py/src/braintrust/api/_generated/service_tokens.py index 5577c709e..e8410b7b8 100644 --- a/py/src/braintrust/api/_generated/service_tokens.py +++ b/py/src/braintrust/api/_generated/service_tokens.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/span_iframes.py b/py/src/braintrust/api/_generated/span_iframes.py index 4e6cfaff2..c1f8b318f 100644 --- a/py/src/braintrust/api/_generated/span_iframes.py +++ b/py/src/braintrust/api/_generated/span_iframes.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/users.py b/py/src/braintrust/api/_generated/users.py index 9278f7a79..fb09a6b0a 100644 --- a/py/src/braintrust/api/_generated/users.py +++ b/py/src/braintrust/api/_generated/users.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14 diff --git a/py/src/braintrust/api/_generated/views.py b/py/src/braintrust/api/_generated/views.py index 0f7049c3d..8ef6f1292 100644 --- a/py/src/braintrust/api/_generated/views.py +++ b/py/src/braintrust/api/_generated/views.py @@ -1,6 +1,6 @@ # Generated by scripts/generate-api-client.py. DO NOT EDIT. -# OpenAPI commit: 66eed24b98cd0f5609c9f524230a61497f7fd77d -# OpenAPI spec SHA-256: 877ab1fd2a22c407af1975a2f880170fb5dc2d31f550c1ce611b407037e4f221 +# OpenAPI commit: e53363ed2c1530a53b68872433f68844dceaad1b +# OpenAPI spec SHA-256: e5be7d758587038ebe330354f7a5337645f9bd3b2c7bffa46b5f6dcaea056478 # datamodel-code-generator: 0.81.0 # ruff: 0.15.21 # Generator Python: 3.14