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

# SDK Types

> Reference for all types and data models used across the TrueFoundry Python SDK.

## A2AFramework

<ParamField body="type" type="typing.Literal[Any]" default="a2a" required>
  Type
</ParamField>

<ParamField body="agent_card_path" type="str" default="/.well-known/agent-card.json" required>
  Path to the agent card JSON, relative to the base URL
</ParamField>

## Account

<ParamField body="id" type="typing.Optional[str]" />

<ParamField body="tenant_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="fqn" type="str" required />

<ParamField body="manifest" type="typing.Dict[(str, typing.Any)]" required>
  Account manifest
</ParamField>

<ParamField body="created_by_subject" type="typing_extensions.Annotated[(Subject, Any, Any)]" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="created_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="updated_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="is_editable" type="typing_extensions.Annotated[(bool, Any, Any)]" required />

## AccountInfo

<ParamField body="account_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="name" type="str" required />

## ActivateUserResponse

**Union, One Of:**

* [🔗 UniversalBaseModel](#universalbasemodel)

## AddonComponent

<ParamField body="name" type="AddonComponentName" required>
  [🔗 AddonComponentName](/docs/truefoundry_sdk/enums#addoncomponentname)
</ParamField>

<ParamField body="app_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="namespace" type="typing.Optional[str]" />

<ParamField body="application_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="description" type="typing.Optional[str]" />

<ParamField body="path" type="typing.Optional[str]" />

<ParamField body="addon_folder" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="installed" type="typing.Optional[bool]" />

<ParamField body="status" type="typing.Optional[AddonComponentStatus]">
  [🔗 AddonComponentStatus](/docs/truefoundry_sdk/types#addoncomponentstatus)
</ParamField>

<ParamField body="version" type="typing.Optional[str]" />

<ParamField body="manifest" type="typing.Optional[typing.Dict[(str, typing.Any)]]" />

<ParamField body="installation_source" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="unsupported_cluster_types" type="typing_extensions.Annotated[(typing.Optional[typing.List[ClusterType]], Any, Any)]">
  [🔗 ClusterType](/docs/truefoundry_sdk/enums#clustertype)
</ParamField>

<ParamField body="required" type="typing.Optional[bool]" />

<ParamField body="known_cr_ds" type="typing_extensions.Annotated[(typing.Optional[typing.List[str]], Any, Any)]" />

<ParamField body="source" type="typing.Optional[AddOnComponentSource]">
  [🔗 AddOnComponentSource](/docs/truefoundry_sdk/types#addoncomponentsource)
</ParamField>

<ParamField body="upgrades" type="typing.Optional[UpgradeData]">
  [🔗 UpgradeData](/docs/truefoundry_sdk/types#upgradedata)
</ParamField>

<ParamField body="labels" type="typing.Optional[typing.List[str]]" />

<ParamField body="recommendations" type="typing.Optional[typing.List[Recommendation]]">
  [🔗 Recommendation](/docs/truefoundry_sdk/types#recommendation)

  Recommendations
</ParamField>

<ParamField body="workspace_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="metadata" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Addon metadata. autopilotEnabled is true when the backing addon application has autopilot enabled; otherwise false.
</ParamField>

## AddOnComponentSource

<ParamField body="repo_url" type="str" required>
  Repository URL of the source
</ParamField>

<ParamField body="chart" type="str" required>
  Chart of the source
</ParamField>

## AddonComponentStatus

<ParamField body="health_status" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="sync_status" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="installed" type="bool" required>
  Indicates whether the addon is installed
</ParamField>

## AgentFramework

**Union, One Of:**

* [🔗 A2AFramework](#a2aframework)
* [🔗 CustomFramework](#customframework)

## AgentManifest

**Union, One Of:**

* [🔗 TrueFoundryAgentManifest](#truefoundryagentmanifest)
* [🔗 RemoteAgent](#remoteagent)
* [🔗 LegacyAgentManifest](#legacyagentmanifest)

## AgentSkill

<ParamField body="id" type="str" required />

<ParamField body="name" type="str" required />

<ParamField body="description" type="str" required />

<ParamField body="tags" type="typing.Optional[typing.List[str]]" />

<ParamField body="examples" type="typing.Optional[typing.List[str]]" />

<ParamField body="input_modes" type="typing_extensions.Annotated[(typing.Optional[typing.List[str]], Any, Any)]" />

<ParamField body="output_modes" type="typing_extensions.Annotated[(typing.Optional[typing.List[str]], Any, Any)]" />

## AgentSkillManifest

<ParamField body="name" type="str" required>
  Name of the skill.
</ParamField>

<ParamField body="metadata" type="typing.Dict[(str, typing.Any)]" required>
  Key value metadata. Should be valid JSON. For e.g. `\{"business-unit": "sales", "quality": "good", "rating": 4.5\}`
</ParamField>

<ParamField body="ml_repo" type="str" required>
  Name of the ML Repo
</ParamField>

<ParamField body="version" type="typing.Optional[int]">
  Version of the entity
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="agent-skill" required />

<ParamField body="source" type="AgentSkillManifestSource" required>
  [🔗 AgentSkillManifestSource](/docs/truefoundry_sdk/types#agentskillmanifestsource)
</ParamField>

## AgentSkillManifestSource

**Union, One Of:**

* [🔗 AgentSkillSourceInline](#agentskillsourceinline)
* [🔗 AgentSkillSourceBlobStorage](#agentskillsourceblobstorage)
* [🔗 AgentSkillSourceLocal](#agentskillsourcelocal)

## AgentSkillSourceBlobStorage

<ParamField body="type" type="typing.Literal[Any]" default="blob-storage" required />

<ParamField body="description" type="str" required>
  1–1024 chars.
</ParamField>

<ParamField body="uri" type="str" required>
  Storage URI of the blob storage object where the skill is stored.
</ParamField>

## AgentSkillSourceInline

<ParamField body="type" type="typing.Literal[Any]" default="inline" required />

<ParamField body="skill_md" type="str" required>
  Main body of SKILL.md file.
</ParamField>

## AgentSkillSourceLocal

<ParamField body="type" type="typing.Literal[Any]" default="local" required />

<ParamField body="skill_dir" type="str" required>
  Path to the skill root directory, including SKILL.md and related assets.
</ParamField>

## AgentSkillVersion

<ParamField body="id" type="str" required>
  Unique identifier for the artifact version
</ParamField>

<ParamField body="fqn" type="str" required>
  Fully qualified name of the artifact version in the format '\{artifact\_type}:\{tenant\_name}/\{ml\_repo\_name}/\{artifact\_name}:\{version}'
</ParamField>

<ParamField body="created_by_subject" type="Subject" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)

  Subject (user, team, or service account) that created this artifact version
</ParamField>

<ParamField body="created_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was created
</ParamField>

<ParamField body="updated_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was last updated
</ParamField>

<ParamField body="manifest" type="AgentSkillManifest" required>
  [🔗 AgentSkillManifest](/docs/truefoundry_sdk/types#agentskillmanifest)

  Manifest containing metadata specific to this agent skill version
</ParamField>

<ParamField body="ml_repo_id" type="str" required>
  ID of the ML Repo that this artifact version belongs to
</ParamField>

<ParamField body="agent_skill_id" type="str" required>
  ID of the parent agent skill artifact that this version belongs to
</ParamField>

## AgentSource

**Union, One Of:**

* [🔗 PromptSource](#promptsource)
* [🔗 HostedA2AAgent](#hosteda2aagent)

## Ai21KeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for AI21 authentication
</ParamField>

## Ai21Model

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/ai21" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The AI21 model identifier (e.g., jamba-large, jamba-mini). This is the model name from AI21's model catalog.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the AI21 model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## Ai21ProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/ai21" required />

<ParamField body="name" type="str" required>
  The name of the AI21 provider account
</ParamField>

<ParamField body="auth_data" type="Ai21KeyAuth" required>
  [🔗 Ai21KeyAuth](/docs/truefoundry_sdk/types#ai21keyauth)
</ParamField>

<ParamField body="integrations" type="typing.Optional[typing.List[Ai21Integrations]]">
  List of integrations that are associated with the AI21 provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## AiFeaturesSettings

<ParamField body="type" type="typing.Literal[Any]" default="settings/ai-features" required />

<ParamField body="enabled" type="bool" required>
  Enable/Disable AI features. Other fields only apply when this is true
</ParamField>

<ParamField body="ai_provider" type="typing.Literal[Any]" default="truefoundry" required>
  AI provider to use for AI features When TrueFoundry is selected, TrueFoundry will manage and provide the AI models for the features.
</ParamField>

## AktoGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Akto guardrail for LLM security, prompt injection detection, and policy violation monitoring">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/akto" required />

<ParamField body="auth_data" type="AktoTokenAuth" required>
  [🔗 AktoTokenAuth](/docs/truefoundry_sdk/types#aktotokenauth)
</ParamField>

<ParamField body="operation" type="typing.Literal[Any]" default="validate" required>
  The operation type for this guardrail. Akto guardrails can only be used for validation.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="AktoGuardrailConfigConfig" required>
  [🔗 AktoGuardrailConfigConfig](/docs/truefoundry_sdk/types#aktoguardrailconfigconfig)
</ParamField>

## AktoGuardrailConfigConfig

<ParamField body="base_url" type="str" required>
  The base URL of the Akto guardrails service (e.g. `https://your-akto-host:port`)
</ParamField>

## AktoTokenAuth

<ParamField body="type" type="typing.Literal[Any]" default="token" required />

<ParamField body="token" type="str" required>
  JWT token for authenticating with the Akto guardrails service
</ParamField>

## Alert

<ParamField body="id" type="typing.Optional[str]" />

<ParamField body="name" type="str" required />

<ParamField body="timestamps" type="typing.List[dt.datetime]" required />

<ParamField body="start_time" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="resolved_time" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="application_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="cluster_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="tenant_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="fingerprint" type="str" required />

<ParamField body="updated_at" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="created_at" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="application_debug_info_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## AlertConfig

<ParamField body="type" type="typing.Literal[Any]" default="alert-config" required>
  Type
</ParamField>

<ParamField body="name" type="str" required>
  Name - 3 to 35 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
</ParamField>

<ParamField body="resource" type="AlertConfigResource" required>
  [🔗 AlertConfigResource](/docs/truefoundry_sdk/types#alertconfigresource)
</ParamField>

<ParamField body="notification_targets" type="typing.List[NotificationTargetForAlertRule]" required>
  [🔗 NotificationTargetForAlertRule](/docs/truefoundry_sdk/types#notificationtargetforalertrule)

  Configure one or more notification targets where alerts will be sent. Each target specifies a notification channel (email or slack).
</ParamField>

<ParamField body="rules" type="typing.List[PrometheusAlertRule]" required>
  [🔗 PrometheusAlertRule](/docs/truefoundry_sdk/types#prometheusalertrule)

  Define one or more alert rules that specify the conditions to monitor, when to trigger alerts, and how they should be handled.
</ParamField>

## AlertConfigResource

<ParamField body="type" type="AlertConfigResourceType" required>
  [🔗 AlertConfigResourceType](/docs/truefoundry_sdk/enums#alertconfigresourcetype)

  The type of resource this alert config belongs to. Can be either an application or a cluster.
</ParamField>

<ParamField body="fqn" type="str" required>
  FQN of the resource this alert config belongs to.
</ParamField>

## AllDataAccessRule

<ParamField body="scope" type="typing.Literal[Any]" default="all_data" required>
  Data access scope - access to all data with optional filters
</ParamField>

<ParamField body="filters" type="typing.Optional[typing.List[AllDataAccessRuleFiltersItem]]">
  [🔗 AllDataAccessRuleFiltersItem](/docs/truefoundry_sdk/types#alldataaccessrulefiltersitem)

  Optional filters to restrict data access (only applicable for all\_data scope)
</ParamField>

## AllDataAccessRuleFiltersItem

**Union, One Of:**

* [🔗 GatewayDataMetadataFilter](#gatewaydatametadatafilter)
* [🔗 GatewayDataCreatedByFilter](#gatewaydatacreatedbyfilter)

## AmqpInputConfig

<ParamField body="type" type="typing.Literal[Any]" default="amqp" required />

<ParamField body="url" type="str" required>
  AMQP Queue URL of Subscriber
</ParamField>

<ParamField body="queue_name" type="str" required>
  AMQP Queue Name
</ParamField>

<ParamField body="wait_time_seconds" type="int" default="5" required>
  Wait timeout for long polling.
</ParamField>

## AmqpMetricConfig

<ParamField body="type" type="typing.Literal[Any]" default="amqp" required />

<ParamField body="queue_length" type="int" required>
  Upper limit of the number of backlog messages the auto-scaler will try to maintain per replica. If you set this number to 10 and have 30 messages in the stream and one replica, the auto-scaler will scale the number of replicas to 3.
</ParamField>

## AmqpOutputConfig

<ParamField body="type" type="typing.Literal[Any]" default="amqp" required />

<ParamField body="url" type="str" required>
  AMQP Queue URL of Publisher
</ParamField>

<ParamField body="routing_key" type="str" required>
  AMQP Routing Key to publish to.
</ParamField>

<ParamField body="exchange_name" type="typing.Optional[str]">
  AMQP Exchange Name
</ParamField>

## AnthropicKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for Anthropic authentication
</ParamField>

## AnthropicModel

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The Anthropic model identifier (e.g., claude-3-5-sonnet-20241022, claude-3-opus-20240229, claude-3-haiku-20240307). This is the standard model name from Anthropic's API documentation.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/anthropic" required />

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Anthropic model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## AnthropicProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/anthropic" required />

<ParamField body="name" type="str" required>
  The name of the Anthropic provider account
</ParamField>

<ParamField body="auth_data" type="typing.Optional[AnthropicKeyAuth]">
  [🔗 AnthropicKeyAuth](/docs/truefoundry_sdk/types#anthropickeyauth)
</ParamField>

<ParamField body="integrations" type="typing.Optional[typing.List[AnthropicIntegrations]]">
  List of integrations that are associated with the Anthropic provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## Application

<ParamField body="id" type="typing.Optional[str]" />

<ParamField body="fqn" type="typing.Optional[str]" />

<ParamField body="name" type="typing.Optional[str]" />

<ParamField body="type" type="typing.Optional[ApplicationType]">
  [🔗 ApplicationType](/docs/truefoundry_sdk/enums#applicationtype)
</ParamField>

<ParamField body="created_by_subject" type="typing_extensions.Annotated[(Subject, Any, Any)]" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="tenant_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="metadata" type="typing.Optional[ApplicationMetadata]">
  [🔗 ApplicationMetadata](/docs/truefoundry_sdk/types#applicationmetadata)
</ParamField>

<ParamField body="lifecycle_stage" type="typing_extensions.Annotated[(ApplicationLifecycleStage, Any, Any)]" required>
  [🔗 ApplicationLifecycleStage](/docs/truefoundry_sdk/enums#applicationlifecyclestage)
</ParamField>

<ParamField body="workspace_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="last_version" type="typing_extensions.Annotated[(typing.Optional[int], Any, Any)]" />

<ParamField body="active_version" type="typing_extensions.Annotated[(typing.Optional[int], Any, Any)]" />

<ParamField body="created_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="updated_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="recommendations" type="typing.Optional[typing.List[Recommendation]]">
  [🔗 Recommendation](/docs/truefoundry_sdk/types#recommendation)

  Recommendations for this application
</ParamField>

<ParamField body="alerts" type="typing.Optional[typing.List[Alert]]">
  [🔗 Alert](/docs/truefoundry_sdk/types#alert)

  Alerts for this application
</ParamField>

<ParamField body="alerts_summary" type="typing_extensions.Annotated[(typing.Optional[typing.Dict[(str, typing.Any)]], Any, Any)]" />

<ParamField body="application_debug_infos" type="typing_extensions.Annotated[(typing.Optional[typing.List[Any]], Any, Any)]" />

<ParamField body="potential_problems" type="typing_extensions.Annotated[(typing.Optional[typing.List[ApplicationProblem]], Any, Any)]">
  [🔗 ApplicationProblem](/docs/truefoundry_sdk/types#applicationproblem)
</ParamField>

<ParamField body="autopilot" type="typing.Dict[(str, typing.Any)]" required />

<ParamField body="workspace_fqn" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="created_by" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="deployment" type="typing.Optional[Any]" />

<ParamField body="active_deployment_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="last_deployment_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## ApplicationDebugInfo

<ParamField body="id" type="typing.Optional[str]" />

<ParamField body="application_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="application" type="typing.Optional[Any]" />

<ParamField body="debug_info" type="typing_extensions.Annotated[(typing.Dict[(str, typing.Any)], Any, Any)]" required />

<ParamField body="created_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="updated_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

## ApplicationMetadata

<ParamField body="paused" type="typing.Optional[bool]" />

## ApplicationProblem

<ParamField body="name" type="str" required />

<ParamField body="description" type="str" required />

## ApplicationsCancelDeploymentResponse

<ParamField body="message" type="typing.Optional[str]">
  Deployment cancelled
</ParamField>

## ApplicationSet

<ParamField body="type" type="typing.Literal[Any]" default="application-set" required />

<ParamField body="name" type="str" required>
  Name of the application set.
</ParamField>

<ParamField body="components" type="typing.Optional[typing.List[ApplicationSetComponentsItem]]">
  [🔗 ApplicationSetComponentsItem](/docs/truefoundry_sdk/types#applicationsetcomponentsitem)

  Array of components with their specifications.
</ParamField>

<ParamField body="template" type="typing.Optional[str]">
  Template to be used for the application set.
</ParamField>

<ParamField body="values" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Values to be used to render components for the application set.
</ParamField>

<ParamField body="workspace_fqn" type="typing.Optional[str]">
  Fully qualified name of the workspace
</ParamField>

<ParamField body="convert_template_manifest" type="typing.Optional[bool]">
  Flag to indicate if the template manifest should be converted to TrueFoundry manifest
</ParamField>

## ApplicationSetComponentsItem

**Union, One Of:**

* [🔗 Service](#service)
* [🔗 AsyncService](#asyncservice)
* [🔗 Job](#job)
* [🔗 Helm](#helm)

## ApplyMlEntityResponse

<ParamField body="data" type="ApplyMlEntityResponseData" required>
  [🔗 ApplyMlEntityResponseData](/docs/truefoundry_sdk/types#applymlentityresponsedata)

  The created or updated ML entity (model version, prompt version, agent skill version, artifact version, or data directory)
</ParamField>

## ApplyMlEntityResponseData

**Union, One Of:**

* [🔗 ModelVersion](#modelversion)
* [🔗 PromptVersion](#promptversion)
* [🔗 AgentSkillVersion](#agentskillversion)
* [🔗 ArtifactVersion](#artifactversion)
* [🔗 DataDirectory](#datadirectory)

## Artifact

<ParamField body="id" type="str" required>
  Unique identifier for the artifact
</ParamField>

<ParamField body="ml_repo_id" type="str" required>
  ID of the ML Repo that this artifact belongs to
</ParamField>

<ParamField body="type" type="ArtifactType" required>
  [🔗 ArtifactType](/docs/truefoundry_sdk/enums#artifacttype)

  Type of the artifact (e.g., 'artifact', 'model', 'chat\_prompt', 'agent-skill', 'plot', 'image')
</ParamField>

<ParamField body="name" type="str" required>
  Name of the artifact (alphanumeric characters, hyphens, and underscores only, max 256 characters)
</ParamField>

<ParamField body="fqn" type="str" required>
  Fully qualified name of the artifact in the format '\{artifact\_type}:\{tenant\_name}/\{ml\_repo\_name}/\{artifact\_name}'
</ParamField>

<ParamField body="created_by_subject" type="Subject" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)

  Subject (user, team, or service account) that created this artifact
</ParamField>

<ParamField body="created_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact was created
</ParamField>

<ParamField body="updated_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact was last updated
</ParamField>

<ParamField body="latest_version" type="typing.Optional[BaseArtifactVersion]">
  [🔗 BaseArtifactVersion](/docs/truefoundry_sdk/types#baseartifactversion)

  The most recent version of this artifact
</ParamField>

<ParamField body="run_steps" type="typing.Optional[typing.List[int]]">
  List of run step numbers where this artifact was created or updated
</ParamField>

## ArtifactManifest

<ParamField body="name" type="str" required>
  Name of the artifact (alphanumeric characters, hyphens, and underscores only, max 256 characters)
</ParamField>

<ParamField body="metadata" type="typing.Dict[(str, typing.Any)]" required>
  Key value metadata. Should be valid JSON. For e.g. `\{"business-unit": "sales", "quality": "good", "rating": 4.5\}`
</ParamField>

<ParamField body="ml_repo" type="str" required>
  Name of the ML Repo that this artifact belongs to (must start and end with alphanumeric, 2-100 characters)
</ParamField>

<ParamField body="version" type="typing.Optional[int]">
  Version of the entity
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="artifact-version" required />

<ParamField body="description" type="typing.Optional[str]" />

<ParamField body="version_alias" type="typing.Optional[str]">
  Version alias is alternate, ideally human readable, version string to reference an artifact version. It should start with `v` followed by alphanumeric and it can include `.` and `-` in between (e.g. `v1.0.0`, `v1-prod`, `v3-dev`, etc)
</ParamField>

<ParamField body="source" type="ArtifactManifestSource" required>
  [🔗 ArtifactManifestSource](/docs/truefoundry_sdk/types#artifactmanifestsource)
</ParamField>

<ParamField body="step" type="typing.Optional[int]">
  Step/Epoch number in an iterative training loop the artifact version was created. Generally useful when logging a model version from a MLRepo Run
</ParamField>

<ParamField body="run_id" type="typing.Optional[str]">
  ID of the MLRepo Run that generated the artifact version
</ParamField>

## ArtifactManifestSource

**Union, One Of:**

* [🔗 TrueFoundryManagedSource](#truefoundrymanagedsource)
* [🔗 ExternalBlobStorageSource](#externalblobstoragesource)
* [🔗 LocalArtifactSource](#localartifactsource)

## ArtifactPath

<ParamField body="src" type="str" required>
  Local file or folder path
</ParamField>

<ParamField body="dest" type="typing.Optional[str]">
  Relative path where the file or folder will be uploaded to in the artifact
</ParamField>

## ArtifactsCacheVolume

<ParamField body="storage_class" type="str" required>
  Storage class of the Volume where artifacts will be cached
</ParamField>

<ParamField body="cache_size" type="int" default="200" required>
  Size of the Volume (in GB) where artifacts will be cached. Should be greater than twice the size of artifacts getting cached
</ParamField>

## ArtifactsDownload

<ParamField body="cache_volume" type="typing.Optional[ArtifactsCacheVolume]">
  [🔗 ArtifactsCacheVolume](/docs/truefoundry_sdk/types#artifactscachevolume)
</ParamField>

<ParamField body="artifacts" type="typing.List[ArtifactsDownloadArtifactsItem]" required>
  [🔗 ArtifactsDownloadArtifactsItem](/docs/truefoundry_sdk/types#artifactsdownloadartifactsitem)

  List of artifacts to be cached
</ParamField>

## ArtifactsDownloadArtifactsItem

**Union, One Of:**

* [🔗 TrueFoundryArtifactSource](#truefoundryartifactsource)
* [🔗 HuggingfaceArtifactSource](#huggingfaceartifactsource)

## ArtifactVersion

<ParamField body="id" type="str" required>
  Unique identifier for the artifact version
</ParamField>

<ParamField body="fqn" type="str" required>
  Fully qualified name of the artifact version in the format '\{artifact\_type}:\{tenant\_name}/\{ml\_repo\_name}/\{artifact\_name}:\{version}'
</ParamField>

<ParamField body="created_by_subject" type="Subject" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)

  Subject (user, team, or service account) that created this artifact version
</ParamField>

<ParamField body="created_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was created
</ParamField>

<ParamField body="updated_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was last updated
</ParamField>

<ParamField body="manifest" type="ArtifactManifest" required>
  [🔗 ArtifactManifest](/docs/truefoundry_sdk/types#artifactmanifest)

  Manifest containing metadata for a generic artifact version
</ParamField>

<ParamField body="ml_repo_id" type="str" required>
  ID of the ML Repo that this artifact version belongs to
</ParamField>

<ParamField body="tags" type="typing.Optional[typing.List[str]]">
  List of tags associated with this artifact version for filtering and organization
</ParamField>

<ParamField body="version_alias" type="typing.Optional[str]">
  Optional human-readable version alias (e.g. v1.0.0)
</ParamField>

<ParamField body="usage_code_snippet" type="typing.Optional[str]">
  Code snippet demonstrating how to use this artifact version
</ParamField>

<ParamField body="artifact_id" type="str" required>
  ID of the parent artifact that this version belongs to
</ParamField>

## AssistantMessage

<ParamField body="role" type="typing.Literal[Any]" default="assistant" required>
  Role of the message
</ParamField>

<ParamField body="content" type="typing.Optional[AssistantMessageContent]">
  [🔗 AssistantMessageContent](/docs/truefoundry_sdk/types#assistantmessagecontent)

  Text content for the assistant message
</ParamField>

<ParamField body="tool_calls" type="typing.Optional[typing.List[ToolCall]]">
  [🔗 ToolCall](/docs/truefoundry_sdk/types#toolcall)

  List of tool calls made by the assistant
</ParamField>

<ParamField body="name" type="typing.Optional[str]">
  Name of the assistant this message is from
</ParamField>

## AssistantMessageContent

**Union, One Of:**

* [🔗 str](#str)
* [🔗 BlobStorageReference](#blobstoragereference)

## AssistantMessageContentOneItem

**Union, One Of:**

* [🔗 TextContentPart](#textcontentpart)
* [🔗 RefusalContentPart](#refusalcontentpart)

## AsyncProcessorSidecar

<ParamField body="destination_url" type="str" required>
  URL for the processor to invoke
</ParamField>

<ParamField body="request_timeout" type="typing.Optional[int]" default="10">
  Timeout for the invoke request in seconds
</ParamField>

<ParamField body="sidecar_image" type="typing.Optional[str]">
  Image for the processor sidecar (This field will be deprecated in the future)
</ParamField>

## AsyncService

<ParamField body="type" type="typing.Literal[Any]" default="async-service" required />

<ParamField body="replicas" type="AsyncServiceReplicas" required>
  [🔗 AsyncServiceReplicas](/docs/truefoundry_sdk/types#asyncservicereplicas)

  Deploy multiple instances of your pods to distribute incoming traffic across them, ensuring effective load balancing.
</ParamField>

<ParamField body="rollout_strategy" type="typing.Optional[Rolling]">
  [🔗 Rolling](/docs/truefoundry_sdk/types#rolling)
</ParamField>

<ParamField body="worker_config" type="WorkerConfig" required>
  [🔗 WorkerConfig](/docs/truefoundry_sdk/types#workerconfig)
</ParamField>

<ParamField body="sidecar" type="typing.Optional[AsyncProcessorSidecar]">
  [🔗 AsyncProcessorSidecar](/docs/truefoundry_sdk/types#asyncprocessorsidecar)
</ParamField>

## AsyncServiceAutoscaling

<ParamField body="metrics" type="AsyncServiceAutoscalingMetrics" required>
  [🔗 AsyncServiceAutoscalingMetrics](/docs/truefoundry_sdk/types#asyncserviceautoscalingmetrics)

  Metrics to use for the autoscaler
</ParamField>

## AsyncServiceAutoscalingMetrics

**Union, One Of:**

* [🔗 SqsQueueMetricConfig](#sqsqueuemetricconfig)
* [🔗 NatsMetricConfig](#natsmetricconfig)
* [🔗 KafkaMetricConfig](#kafkametricconfig)
* [🔗 CronMetric](#cronmetric)
* [🔗 AmqpMetricConfig](#amqpmetricconfig)

## AsyncServiceReplicas

**Union, One Of:**

* [🔗 float](#float)
* [🔗 AsyncServiceAutoscaling](#asyncserviceautoscaling)

## AutoRotate

<ParamField body="auto_rotate_interval" type="int" default="360" required>
  Rotation Interval in days after which the token will be rotated. Minimum value is 30.
</ParamField>

<ParamField body="grace_period" type="int" default="30" required>
  Grace Period in days for which the token will be valid after rotation interval. Minimum value is 1.
</ParamField>

## Autoshutdown

<ParamField body="wait_time" type="int" default="900" required>
  The period to wait after the last received request before scaling the replicas to 0. This value should be high enough to allow for the replicas of the service to come up to avoid premature scaling down.
</ParamField>

## AwsAccessKeyAuth

<ParamField body="aws_access_key_id" type="str" required>
  AWS Access Key ID
</ParamField>

<ParamField body="aws_secret_access_key" type="str" required>
  AWS Secret Access Key for the user to authenticate with
</ParamField>

<ParamField body="aws_session_token" type="typing.Optional[str]">
  AWS Session Token, only required when using temporary credentials
</ParamField>

## AwsAccessKeyBasedAuth

<ParamField body="type" type="typing.Literal[Any]" default="access-key-based" required />

<ParamField body="access_key_id" type="str" required>
  AWS access key ID that you want to use for authentication.
</ParamField>

<ParamField body="secret_access_key" type="str" required>
  AWS access key secret that you want to use for authentication.
</ParamField>

## AwsAssumedRoleBasedAuth

<ParamField body="type" type="typing.Literal[Any]" default="assumed-role-based" required />

<ParamField body="assumed_role_arn" type="str" required>
  ARN of the role you want to assume.
</ParamField>

## AwsBedrockApiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  Your AWS Bedrock API key for authentication
</ParamField>

## AwsBedrockAssumedRoleBasedAuth

<ParamField body="external_id" type="typing.Optional[str]">
  Optional external ID to use when assuming the role. This provides an added layer of security by ensuring only parties with the correct external ID can assume the role.
</ParamField>

## AwsBedrockGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="AWS Bedrock Guardrails for content filtering and safety policies">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/aws-bedrock" required />

<ParamField body="auth_data" type="typing.Optional[AwsBedrockGuardrailConfigAuthData]">
  [🔗 AwsBedrockGuardrailConfigAuthData](/docs/truefoundry_sdk/types#awsbedrockguardrailconfigauthdata)

  Authentication data for the AWS account
</ParamField>

<ParamField body="operation" type="AwsBedrockGuardrailConfigOperation" required>
  [🔗 AwsBedrockGuardrailConfigOperation](/docs/truefoundry_sdk/enums#awsbedrockguardrailconfigoperation)

  The operation type to use for the Guardrail. Validate guardrails are used to validate requests and mutate can validate as well as mutate requests. Validate guardrails are run in parallel while mutate guardrails are run sequentially.
</ParamField>

<ParamField body="priority" type="typing.Optional[int]" default="1">
  Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="AwsBedrockGuardrailConfigConfig" required>
  [🔗 AwsBedrockGuardrailConfigConfig](/docs/truefoundry_sdk/types#awsbedrockguardrailconfigconfig)
</ParamField>

## AwsBedrockGuardrailConfigAuthData

**Union, One Of:**

* [🔗 AwsAccessKeyBasedAuth](#awsaccesskeybasedauth)
* [🔗 AwsBedrockAssumedRoleBasedAuth](#awsbedrockassumedrolebasedauth)
* [🔗 AwsBedrockApiKeyAuth](#awsbedrockapikeyauth)

## AwsBedrockGuardrailConfigConfig

<ParamField body="guardrail_id" type="str" required>
  The unique identifier of the Bedrock Guardrail created in AWS console
</ParamField>

<ParamField body="guardrail_version" type="str" required>
  Version number of the guardrail to use (e.g., 2 for version 2)
</ParamField>

<ParamField body="region" type="AwsRegion" required>
  [🔗 AwsRegion](/docs/truefoundry_sdk/enums#awsregion)
</ParamField>

## AwsBedrockProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/aws-bedrock" required />

<ParamField body="name" type="str" required>
  The name of the AWS Bedrock provider account
</ParamField>

<ParamField body="region" type="AwsRegion" required>
  [🔗 AwsRegion](/docs/truefoundry_sdk/enums#awsregion)
</ParamField>

<ParamField body="auth_data" type="typing.Optional[AwsBedrockProviderAccountAuthData]">
  [🔗 AwsBedrockProviderAccountAuthData](/docs/truefoundry_sdk/types#awsbedrockprovideraccountauthdata)

  Authentication data for the AWS account
</ParamField>

<ParamField body="integrations" type="typing.List[BedrockModel]" required>
  [🔗 BedrockModel](/docs/truefoundry_sdk/types#bedrockmodel)

  List of integrations that are associated with the AWS Bedrock provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## AwsBedrockProviderAccountAuthData

**Union, One Of:**

* [🔗 AwsAccessKeyBasedAuth](#awsaccesskeybasedauth)
* [🔗 AwsBedrockAssumedRoleBasedAuth](#awsbedrockassumedrolebasedauth)
* [🔗 AwsBedrockApiKeyAuth](#awsbedrockapikeyauth)

## AwsEcr

<ParamField body="type" type="typing.Literal[Any]" default="integration/docker-registry/aws/ecr" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="registry_url" type="str" required>
  The URL of the registry.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[AwsEcrAuthData]">
  [🔗 AwsEcrAuthData](/docs/truefoundry_sdk/types#awsecrauthdata)

  Custom authentication data for the integration.
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## AwsEcrAuthData

**Union, One Of:**

* [🔗 AwsAccessKeyBasedAuth](#awsaccesskeybasedauth)
* [🔗 AwsAssumedRoleBasedAuth](#awsassumedrolebasedauth)

## AwsEksIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/cluster/aws/eks" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="region" type="AwsRegion" required>
  [🔗 AwsRegion](/docs/truefoundry_sdk/enums#awsregion)
</ParamField>

<ParamField body="cluster_name" type="str" required>
  Name of the cluster given in the cloud account.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[AwsEksIntegrationAuthData]">
  [🔗 AwsEksIntegrationAuthData](/docs/truefoundry_sdk/types#awseksintegrationauthdata)

  Custom authentication data for the integration.
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## AwsEksIntegrationAuthData

**Union, One Of:**

* [🔗 AwsAccessKeyBasedAuth](#awsaccesskeybasedauth)
* [🔗 AwsAssumedRoleBasedAuth](#awsassumedrolebasedauth)

## AwsInferentia

<ParamField body="type" type="typing.Literal[Any]" default="aws_inferentia" required />

<ParamField body="name" type="typing.Optional[str]">
  Name of the AWS Inferentia Accccelerator. One of \[INF1, INF2]. This field is required for Node Selector and can be ignored in Nodepool Selector.
</ParamField>

<ParamField body="count" type="int" required>
  Count of Inferentia accelerator chips to provide to the application
</ParamField>

## AwsIntegrations

**Union, One Of:**

* [🔗 AwsEcr](#awsecr)
* [🔗 AwsS3](#awss3)
* [🔗 AwsParameterStore](#awsparameterstore)
* [🔗 AwsSecretsManager](#awssecretsmanager)
* [🔗 AwsEksIntegration](#awseksintegration)

## AwsParameterStore

<ParamField body="type" type="typing.Literal[Any]" default="integration/secret-store/aws/parameter-store" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="region" type="AwsRegion" required>
  [🔗 AwsRegion](/docs/truefoundry_sdk/enums#awsregion)
</ParamField>

<ParamField body="auth_data" type="typing.Optional[AwsParameterStoreAuthData]">
  [🔗 AwsParameterStoreAuthData](/docs/truefoundry_sdk/types#awsparameterstoreauthdata)

  Custom authentication data for the integration.
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

<ParamField body="kms_arn" type="typing.Optional[str]">
  The ARN of the KMS key to use for encryption.
</ParamField>

## AwsParameterStoreAuthData

**Union, One Of:**

* [🔗 AwsAccessKeyBasedAuth](#awsaccesskeybasedauth)
* [🔗 AwsAssumedRoleBasedAuth](#awsassumedrolebasedauth)

## AwsProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/aws" required />

<ParamField body="name" type="str" required>
  The name of the AWS provider account.
</ParamField>

<ParamField body="aws_account_id" type="str" required>
  The AWS account ID.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[AwsProviderAccountAuthData]">
  [🔗 AwsProviderAccountAuthData](/docs/truefoundry_sdk/types#awsprovideraccountauthdata)

  Authentication data for the AWS account.
</ParamField>

<ParamField body="integrations" type="typing.List[AwsIntegrations]" required>
  [🔗 AwsIntegrations](/docs/truefoundry_sdk/types#awsintegrations)

  List of integrations that are associated with the AWS provider account.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## AwsProviderAccountAuthData

**Union, One Of:**

* [🔗 AwsAccessKeyBasedAuth](#awsaccesskeybasedauth)
* [🔗 AwsAssumedRoleBasedAuth](#awsassumedrolebasedauth)

## AwsS3

<ParamField body="type" type="typing.Literal[Any]" default="integration/blob-storage/aws/s3" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="storage_root" type="str" required>
  The S3 storage path in the format 's3://\<bucket-name>/\<optional-path-prefix>'. Works with S3-compatible storage providers like MinIO, Ceph, and DigitalOcean Spaces. Example: 's3://mybucket' or 's3://mybucket/artifacts/production'.
</ParamField>

<ParamField body="region" type="AwsRegion" required>
  [🔗 AwsRegion](/docs/truefoundry_sdk/enums#awsregion)
</ParamField>

<ParamField body="auth_data" type="typing.Optional[AwsS3AuthData]">
  [🔗 AwsS3AuthData](/docs/truefoundry_sdk/types#awss3authdata)

  Custom authentication data for the integration.
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## AwsS3AuthData

**Union, One Of:**

* [🔗 AwsAccessKeyBasedAuth](#awsaccesskeybasedauth)
* [🔗 AwsAssumedRoleBasedAuth](#awsassumedrolebasedauth)

## AwsSagemakerProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/aws-sagemaker" required />

<ParamField body="name" type="str" required>
  The name of the Sagemaker provider account
</ParamField>

<ParamField body="region" type="AwsRegion" required>
  [🔗 AwsRegion](/docs/truefoundry_sdk/enums#awsregion)
</ParamField>

<ParamField body="auth_data" type="typing.Optional[AwsSagemakerProviderAccountAuthData]">
  [🔗 AwsSagemakerProviderAccountAuthData](/docs/truefoundry_sdk/types#awssagemakerprovideraccountauthdata)

  Authentication data for the AWS account
</ParamField>

<ParamField body="integrations" type="typing.List[SagemakerModel]" required>
  [🔗 SagemakerModel](/docs/truefoundry_sdk/types#sagemakermodel)

  List of integrations that are associated with the Sagemaker provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## AwsSagemakerProviderAccountAuthData

**Union, One Of:**

* [🔗 AwsAccessKeyBasedAuth](#awsaccesskeybasedauth)
* [🔗 SagemakerAssumedRoleBasedAuth](#sagemakerassumedrolebasedauth)

## AwsSecretsManager

<ParamField body="type" type="typing.Literal[Any]" default="integration/secret-store/aws/secrets-manager" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="region" type="AwsRegion" required>
  [🔗 AwsRegion](/docs/truefoundry_sdk/enums#awsregion)
</ParamField>

<ParamField body="auth_data" type="typing.Optional[AwsSecretsManagerAuthData]">
  [🔗 AwsSecretsManagerAuthData](/docs/truefoundry_sdk/types#awssecretsmanagerauthdata)

  Custom authentication data for the integration.
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

<ParamField body="kms_arn" type="typing.Optional[str]">
  The ARN of the KMS key to use for encryption.
</ParamField>

## AwsSecretsManagerAuthData

**Union, One Of:**

* [🔗 AwsAccessKeyBasedAuth](#awsaccesskeybasedauth)
* [🔗 AwsAssumedRoleBasedAuth](#awsassumedrolebasedauth)

## AwsSqsAccessKeyBasedAuth

<ParamField body="type" type="typing.Literal[Any]" default="access-key-based" required />

<ParamField body="access_key_id" type="str" required>
  AWS access key ID that you want to use for authentication.
</ParamField>

<ParamField body="secret_access_key" type="str" required>
  AWS access key secret that you want to use for authentication.
</ParamField>

## AwsSqsAssumedRoleBasedAuth

<ParamField body="type" type="typing.Literal[Any]" default="assumed-role-based" required />

<ParamField body="assumed_role_arn" type="str" required>
  ARN of the role you want to assume.
</ParamField>

## AzureAksIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/cluster/azure/aks" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="resource_group" type="str" required>
  The resource group of the cluster in the cloud account.
</ParamField>

<ParamField body="cluster_name" type="str" required>
  Name of the cluster given in the cloud account.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[AzureOAuth]">
  [🔗 AzureOAuth](/docs/truefoundry_sdk/types#azureoauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## AzureBasicAuth

<ParamField body="type" type="typing.Literal[Any]" default="basic-auth" required />

<ParamField body="username" type="str" required>
  The username for the Azure managed identity.
</ParamField>

<ParamField body="password" type="str" required>
  The password for the Azure managed identity.
</ParamField>

## AzureBlobStorage

<ParamField body="type" type="typing.Literal[Any]" default="integration/blob-storage/azure/blob" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="storage_root" type="str" required>
  The full Azure Blob Storage URL in the format 'https\://\<storage-account-name>.blob.core.windows.net/\<container-name>/\<optional-path-prefix>'. Example: '[https://mystorageaccount.blob.core.windows.net/mycontainer](https://mystorageaccount.blob.core.windows.net/mycontainer)' or '[https://mystorageaccount.blob.core.windows.net/mycontainer/artifacts/production](https://mystorageaccount.blob.core.windows.net/mycontainer/artifacts/production)'.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[AzureConnectionStringAuth]">
  [🔗 AzureConnectionStringAuth](/docs/truefoundry_sdk/types#azureconnectionstringauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## AzureCertificateAuth

<ParamField body="type" type="typing.Literal[Any]" default="certificate" required />

<ParamField body="tenant_id" type="str" required>
  The Azure AD tenant ID where the application is registered
</ParamField>

<ParamField body="client_id" type="str" required>
  The Azure AD application (client) ID for service principal authentication
</ParamField>

<ParamField body="certificate" type="str" required>
  Certificate in PEM format (e.g., -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----)
</ParamField>

<ParamField body="certificate_thumbprint" type="str" required>
  The base64url-encoded SHA-1 thumbprint of the certificate (x5t claim)
</ParamField>

## AzureConnectionStringAuth

<ParamField body="type" type="typing.Literal[Any]" default="connection-string" required />

<ParamField body="connection_string" type="str" required>
  The connection string for the Azure managed identity.
</ParamField>

## AzureContainerRegistry

<ParamField body="type" type="typing.Literal[Any]" default="integration/docker-registry/azure/acr" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="registry_url" type="str" required>
  The URL of the registry.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[AzureBasicAuth]">
  [🔗 AzureBasicAuth](/docs/truefoundry_sdk/types#azurebasicauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## AzureContentSafetyGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Azure Content Safety for hate, self-harm, sexual, and violence detection">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/azure-content-safety" required />

<ParamField body="auth_data" type="AzureContentSafetyGuardrailConfigAuthData" required>
  [🔗 AzureContentSafetyGuardrailConfigAuthData](/docs/truefoundry_sdk/types#azurecontentsafetyguardrailconfigauthdata)

  Authentication data for the Azure account
</ParamField>

<ParamField body="operation" type="typing.Literal[Any]" default="validate" required>
  The operation type for this guardrail. Azure Content Safety guardrails can only be used for validation.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="AzureContentSafetyGuardrailConfigConfig" required>
  [🔗 AzureContentSafetyGuardrailConfigConfig](/docs/truefoundry_sdk/types#azurecontentsafetyguardrailconfigconfig)
</ParamField>

## AzureContentSafetyGuardrailConfigAuthData

**Union, One Of:**

* [🔗 AzureKeyAuth](#azurekeyauth)
* [🔗 AzureCertificateAuth](#azurecertificateauth)

## AzureContentSafetyGuardrailConfigConfig

<ParamField body="resource_name" type="str" required>
  Name of your Azure Content Safety resource where the service is deployed (e.g., my-content-safety)
</ParamField>

<ParamField body="api_version" type="str" default="2024-09-01" required>
  API version for the Content Safety API
</ParamField>

<ParamField body="custom_host" type="typing.Optional[str]">
  Custom endpoint URL for the Content Safety API (optional, uses default Azure endpoint if not specified)
</ParamField>

<ParamField body="blocklist_names" type="typing.Optional[typing.List[str]]">
  Names of custom blocklists created in Azure Content Safety to check text against. Leave empty if not using custom blocklists
</ParamField>

<ParamField body="severity_threshold" type="float" default="2.0" required>
  Minimum severity level (0-6) to flag content. Higher values are more restrictive. 0=Safe, 2=Low risk, 4=Medium risk, 6=High risk
</ParamField>

<ParamField body="categories" type="typing.List[AzureContentSafetyCategory]" required>
  [🔗 AzureContentSafetyCategory](/docs/truefoundry_sdk/enums#azurecontentsafetycategory)

  Types of harmful content to detect: Hate (hate speech), SelfHarm (self-injury), Sexual (sexual content), Violence (violent content)
</ParamField>

## AzureFoundryModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/azure-foundry" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="auth_data" type="AzureFoundryModelAuthData" required>
  [🔗 AzureFoundryModelAuthData](/docs/truefoundry_sdk/types#azurefoundrymodelauthdata)

  Azure AI Foundry authentication credentials
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Types of models supported by this Azure AI Foundry deployment
</ParamField>

<ParamField body="model_id" type="str" required>
  The model deployment name created in your Azure AI Foundry project. This is the deployment name you configured in Azure AI Foundry, not the base model name.
</ParamField>

<ParamField body="azure_endpoint" type="str" required>
  The Azure AI Foundry endpoint URL. Should look like https\://\{deployment}.\{region}.models.ai.azure.com
</ParamField>

<ParamField body="api_version" type="typing.Optional[str]">
  The API version for the Azure Foundry model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## AzureFoundryModelAuthData

**Union, One Of:**

* [🔗 AzureKeyAuth](#azurekeyauth)
* [🔗 AzureCertificateAuth](#azurecertificateauth)

## AzureFoundryProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/azure-foundry" required />

<ParamField body="name" type="str" required>
  The name of the Azure AI Foundry provider account
</ParamField>

<ParamField body="integrations" type="typing.List[AzureFoundryModel]" required>
  [🔗 AzureFoundryModel](/docs/truefoundry_sdk/types#azurefoundrymodel)

  List of integrations that are associated with the Azure Foundry provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## AzureIntegrations

**Union, One Of:**

* [🔗 AzureAksIntegration](#azureaksintegration)
* [🔗 AzureContainerRegistry](#azurecontainerregistry)
* [🔗 AzureBlobStorage](#azureblobstorage)
* [🔗 AzureVault](#azurevault)
* [🔗 AzureReposIntegration](#azurereposintegration)

## AzureKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for Azure AI Foundry authentication
</ParamField>

## AzureOAuth

<ParamField body="type" type="typing.Literal[Any]" default="oauth" required />

<ParamField body="tenant_id" type="str" required>
  The Azure Active Directory tenant (directory) ID.
</ParamField>

<ParamField body="client_id" type="str" required>
  The client (application) ID of an App Registration in the tenant.
</ParamField>

<ParamField body="client_secret" type="str" required>
  A client secret that was generated for the App Registration.
</ParamField>

<ParamField body="subscription_id" type="str" required>
  The ID of the target subscription. The value must be an UUID.
</ParamField>

## AzureOpenAiModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/azure-openai" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The model deployment name created in your Azure OpenAI resource (e.g., gpt-4-deployment, gpt-35-turbo-deployment). This is NOT the base model name but the deployment name you configured in Azure.
</ParamField>

<ParamField body="api_version" type="str" required>
  The Azure OpenAI API version to use
</ParamField>

<ParamField body="foundation_model" type="typing.Optional[str]">
  The foundation model identifier (e.g., gpt-4o-2024-11-20)
</ParamField>

<ParamField body="deployment_type" type="AzureOpenAiModelDeploymentType" required>
  [🔗 AzureOpenAiModelDeploymentType](/docs/truefoundry_sdk/enums#azureopenaimodeldeploymenttype)

  Global: worldwide processing; Data zone (US): US data zone processing; Data zone (EU): EU data zone processing; Standard: single-region processing
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Azure OpenAI model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## AzureOpenAiProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/azure-openai" required />

<ParamField body="name" type="str" required>
  The name of the Azure OpenAI provider account
</ParamField>

<ParamField body="azure_endpoint" type="str" required>
  The Azure OpenAI Service endpoint URL. Should look like https\://\{resource-name}.openai.azure.com
</ParamField>

<ParamField body="auth_data" type="AzureOpenAiProviderAccountAuthData" required>
  [🔗 AzureOpenAiProviderAccountAuthData](/docs/truefoundry_sdk/types#azureopenaiprovideraccountauthdata)

  Azure OpenAI authentication credentials
</ParamField>

<ParamField body="integrations" type="typing.List[AzureOpenAiModel]" required>
  [🔗 AzureOpenAiModel](/docs/truefoundry_sdk/types#azureopenaimodel)

  List of integrations that are associated with the Azure OpenAI provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## AzureOpenAiProviderAccountAuthData

**Union, One Of:**

* [🔗 AzureKeyAuth](#azurekeyauth)
* [🔗 AzureCertificateAuth](#azurecertificateauth)

## AzurePiiGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Azure AI Language PII detection and redaction for sensitive data">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/azure-pii" required />

<ParamField body="auth_data" type="AzurePiiGuardrailConfigAuthData" required>
  [🔗 AzurePiiGuardrailConfigAuthData](/docs/truefoundry_sdk/types#azurepiiguardrailconfigauthdata)

  Authentication data for the Azure account
</ParamField>

<ParamField body="operation" type="AzurePiiGuardrailConfigOperation" required>
  [🔗 AzurePiiGuardrailConfigOperation](/docs/truefoundry_sdk/enums#azurepiiguardrailconfigoperation)

  The operation type to use for the Guardrail. Validate guardrails are used to validate requests and mutate can validate as well as mutate requests. Validate guardrails are run in parallel while mutate guardrails are run sequentially.
</ParamField>

<ParamField body="priority" type="typing.Optional[int]" default="1">
  Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="AzurePiiGuardrailConfigConfig" required>
  [🔗 AzurePiiGuardrailConfigConfig](/docs/truefoundry_sdk/types#azurepiiguardrailconfigconfig)
</ParamField>

## AzurePiiGuardrailConfigAuthData

**Union, One Of:**

* [🔗 AzureKeyAuth](#azurekeyauth)
* [🔗 AzureCertificateAuth](#azurecertificateauth)

## AzurePiiGuardrailConfigConfig

<ParamField body="resource_name" type="str" required>
  Name of your Azure AI Language resource where the PII detection service is deployed (e.g., my-language-resource)
</ParamField>

<ParamField body="api_version" type="str" default="2024-11-01" required>
  API version for the PII detection API
</ParamField>

<ParamField body="custom_host" type="typing.Optional[str]">
  Custom endpoint URL for the PII detection API (optional, uses default Azure endpoint if not specified)
</ParamField>

<ParamField body="domain" type="AzurePiiGuardrailConfigConfigDomain" required>
  [🔗 AzurePiiGuardrailConfigConfigDomain](/docs/truefoundry_sdk/enums#azurepiiguardrailconfigconfigdomain)

  Specialized domain for PII detection. Use phi for PHI (Protected Health Information) or none for general text
</ParamField>

<ParamField body="pii_categories" type="typing.List[AzurePiiCategory]" required>
  [🔗 AzurePiiCategory](/docs/truefoundry_sdk/enums#azurepiicategory)

  Categories of PII to detect.
</ParamField>

<ParamField body="model_version" type="str" default="latest" required>
  Version of the PII detection model to use, use latest for the newest model or specify a specific version for consistency
</ParamField>

<ParamField body="language" type="str" default="en" required>
  Language code for PII detection (e.g., en for English)
</ParamField>

## AzurePromptShieldGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Azure Prompt Shield for jailbreak and prompt injection detection">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/azure-prompt-shield" required />

<ParamField body="auth_data" type="AzurePromptShieldGuardrailConfigAuthData" required>
  [🔗 AzurePromptShieldGuardrailConfigAuthData](/docs/truefoundry_sdk/types#azurepromptshieldguardrailconfigauthdata)

  Authentication data for the Azure account
</ParamField>

<ParamField body="operation" type="typing.Literal[Any]" default="validate" required>
  The operation type for this guardrail. Azure Prompt Shield guardrails can only be used for validation.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="AzurePromptShieldGuardrailConfigConfig" required>
  [🔗 AzurePromptShieldGuardrailConfigConfig](/docs/truefoundry_sdk/types#azurepromptshieldguardrailconfigconfig)
</ParamField>

## AzurePromptShieldGuardrailConfigAuthData

**Union, One Of:**

* [🔗 AzureKeyAuth](#azurekeyauth)
* [🔗 AzureCertificateAuth](#azurecertificateauth)

## AzurePromptShieldGuardrailConfigConfig

<ParamField body="resource_name" type="str" required>
  Name of your Azure Content Safety resource where the Prompt Shield service is deployed (e.g., my-content-safety)
</ParamField>

<ParamField body="api_version" type="str" default="2024-09-01" required>
  API version for the Prompt Shield API
</ParamField>

<ParamField body="custom_host" type="typing.Optional[str]">
  Custom endpoint URL for the Prompt Shield API (optional, uses default Azure endpoint if not specified)
</ParamField>

## AzureProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/azure" required />

<ParamField body="name" type="str" required>
  The name of the Azure provider account.
</ParamField>

<ParamField body="subscription_id" type="typing.Optional[str]">
  The ID of the target subscription. The value must be an UUID.
</ParamField>

<ParamField body="integrations" type="typing.List[AzureIntegrations]" required>
  [🔗 AzureIntegrations](/docs/truefoundry_sdk/types#azureintegrations)

  List of integrations that are associated with the Azure provider account.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## AzureReposIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/vcs/azure" required />

<ParamField body="name" type="str" required />

<ParamField body="account_name" type="str" required>
  Account Name
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## AzureVault

<ParamField body="type" type="typing.Literal[Any]" default="integration/secret-store/azure/vault" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[AzureOAuth]">
  [🔗 AzureOAuth](/docs/truefoundry_sdk/types#azureoauth)
</ParamField>

<ParamField body="key_vault_name" type="str" required>
  Name of key vault name.
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## BaseArtifactVersion

<ParamField body="id" type="str" required>
  Unique identifier for the artifact version
</ParamField>

<ParamField body="fqn" type="str" required>
  Fully qualified name of the artifact version in the format '\{artifact\_type}:\{tenant\_name}/\{ml\_repo\_name}/\{artifact\_name}:\{version}'
</ParamField>

<ParamField body="created_by_subject" type="Subject" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)

  Subject (user, team, or service account) that created this artifact version
</ParamField>

<ParamField body="created_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was created
</ParamField>

<ParamField body="updated_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was last updated
</ParamField>

<ParamField body="manifest" type="typing.Optional[BaseArtifactVersionManifest]">
  [🔗 BaseArtifactVersionManifest](/docs/truefoundry_sdk/types#baseartifactversionmanifest)
</ParamField>

<ParamField body="ml_repo_id" type="str" required>
  ID of the ML Repo that this artifact version belongs to
</ParamField>

## BaseArtifactVersionManifest

**Union, One Of:**

* [🔗 ModelManifest](#modelmanifest)
* [🔗 ChatPromptManifest](#chatpromptmanifest)
* [🔗 ArtifactManifest](#artifactmanifest)
* [🔗 AgentSkillManifest](#agentskillmanifest)

## BaseAutoscaling

<ParamField body="min_replicas" type="int" default="1" required>
  Minimum number of replicas to keep available
</ParamField>

<ParamField body="max_replicas" type="int" required>
  Maximum number of replicas allowed for the component.
</ParamField>

<ParamField body="polling_interval" type="typing.Optional[int]" default="30">
  This is the interval to check each trigger on.
</ParamField>

## BaseOAuth2Login

<ParamField body="client_id" type="str" required>
  client ID for OAuth2.
</ParamField>

<ParamField body="client_secret" type="typing.Optional[str]">
  Client secret or the TrueFoundry secret containing the client secret for OAuth2.
</ParamField>

<ParamField body="authorization_url" type="str" required>
  URL for the authorization request
</ParamField>

<ParamField body="token_url" type="str" required>
  The endpoint to exchange auth code for tokens.
</ParamField>

<ParamField body="scopes" type="typing.List[str]" required>
  List of scopes to request from the OAuth2 provider.
</ParamField>

<ParamField body="jwt_source" type="BaseOAuth2LoginJwtSource" required>
  [🔗 BaseOAuth2LoginJwtSource](/docs/truefoundry_sdk/enums#baseoauth2loginjwtsource)

  Source of the JWT token to be used for verification.
</ParamField>

## BaseRemoteAgent

<ParamField body="name" type="str" required>
  The name of the Agent
</ParamField>

<ParamField body="description" type="str" required>
  The description of the Agent
</ParamField>

<ParamField body="tags" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Tags for the Agent
</ParamField>

<ParamField body="collaborators" type="typing.List[Collaborator]" required>
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this Agent
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## BaseService

<ParamField body="name" type="str" required>
  Name of the service. This uniquely identifies this service in the workspace. > Name can only contain alphanumeric characters and '-' and can be atmost 25 characters long
</ParamField>

<ParamField body="image" type="BaseServiceImage" required>
  [🔗 BaseServiceImage](/docs/truefoundry_sdk/types#baseserviceimage)

  Specify whether you want to deploy a Docker image or build and deploy from source code
</ParamField>

<ParamField body="artifacts_download" type="typing.Optional[ArtifactsDownload]">
  [🔗 ArtifactsDownload](/docs/truefoundry_sdk/types#artifactsdownload)
</ParamField>

<ParamField body="resources" type="typing.Optional[Resources]">
  [🔗 Resources](/docs/truefoundry_sdk/types#resources)
</ParamField>

<ParamField body="env" type="typing.Optional[typing.Dict[(str, typing.Optional[str])]]">
  Configure environment variables to be injected in the service either as plain text or secrets. [Docs](https://docs.truefoundry.com/docs/env-variables)
</ParamField>

<ParamField body="ports" type="typing.List[Port]" required>
  [🔗 Port](/docs/truefoundry_sdk/types#port)

  Expose the deployment to make it accessible over the internet or keep it private. Implement authentication to restrict access. [Docs](https://docs.truefoundry.com/docs/define-ports-and-domains)
</ParamField>

<ParamField body="service_account" type="typing.Optional[str]" />

<ParamField body="mounts" type="typing.Optional[typing.List[BaseServiceMountsItem]]">
  [🔗 BaseServiceMountsItem](/docs/truefoundry_sdk/types#baseservicemountsitem)

  Configure data to be mounted to service pod(s) as a string, secret or volume. [Docs](https://docs.truefoundry.com/docs/mounting-volumes-service)
</ParamField>

<ParamField body="labels" type="typing.Optional[typing.Dict[(str, str)]]">
  Labels
</ParamField>

<ParamField body="kustomize" type="typing.Optional[Kustomize]">
  [🔗 Kustomize](/docs/truefoundry_sdk/types#kustomize)
</ParamField>

<ParamField body="liveness_probe" type="typing.Optional[HealthProbe]">
  [🔗 HealthProbe](/docs/truefoundry_sdk/types#healthprobe)
</ParamField>

<ParamField body="readiness_probe" type="typing.Optional[HealthProbe]">
  [🔗 HealthProbe](/docs/truefoundry_sdk/types#healthprobe)
</ParamField>

<ParamField body="startup_probe" type="typing.Optional[HealthProbe]">
  [🔗 HealthProbe](/docs/truefoundry_sdk/types#healthprobe)
</ParamField>

<ParamField body="workspace_fqn" type="typing.Optional[str]">
  Fully qualified name of the workspace
</ParamField>

## BaseServiceImage

**Union, One Of:**

* [🔗 Build](#build)
* [🔗 Image](#image)

## BaseServiceMountsItem

**Union, One Of:**

* [🔗 SecretMount](#secretmount)
* [🔗 StringDataMount](#stringdatamount)
* [🔗 VolumeMount](#volumemount)

## BasetenKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for Baseten authentication
</ParamField>

## BasetenModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/baseten" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The Baseten model identifier. This is the model name from Baseten's model catalog.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Baseten model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## BasetenProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/baseten" required />

<ParamField body="name" type="str" required>
  The name of the Baseten provider account
</ParamField>

<ParamField body="auth_data" type="BasetenKeyAuth" required>
  [🔗 BasetenKeyAuth](/docs/truefoundry_sdk/types#basetenkeyauth)
</ParamField>

<ParamField body="integrations" type="typing.Optional[typing.List[BasetenIntegrations]]">
  List of integrations that are associated with the Baseten provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## BaseWorkbenchInput

<ParamField body="name" type="str" required>
  Name of the workbench. This uniquely identifies this workbench in the workspace. > Name can only contain alphanumeric characters and '-' and can be atmost 25 characters long
</ParamField>

<ParamField body="home_directory_size" type="int" default="20" required>
  Size of the home directory for the workbench (Persistent Storage)
</ParamField>

<ParamField body="resources" type="typing.Optional[Resources]">
  [🔗 Resources](/docs/truefoundry_sdk/types#resources)
</ParamField>

<ParamField body="env" type="typing.Optional[typing.Dict[(str, typing.Optional[str])]]">
  Configure environment variables to be injected in the service either as plain text or secrets. [Docs](https://docs.truefoundry.com/docs/environment-variables-and-secrets-jobs)
</ParamField>

<ParamField body="mounts" type="typing.Optional[typing.List[BaseWorkbenchInputMountsItem]]">
  [🔗 BaseWorkbenchInputMountsItem](/docs/truefoundry_sdk/types#baseworkbenchinputmountsitem)

  Configure data to be mounted to workbench pod(s) as a string, secret or volume. [Docs](https://docs.truefoundry.com/docs/mounting-volumes-job)
</ParamField>

<ParamField body="service_account" type="typing.Optional[str]" />

<ParamField body="kustomize" type="typing.Optional[Kustomize]">
  [🔗 Kustomize](/docs/truefoundry_sdk/types#kustomize)
</ParamField>

<ParamField body="workspace_fqn" type="typing.Optional[str]">
  Fully qualified name of the workspace
</ParamField>

## BaseWorkbenchInputMountsItem

**Union, One Of:**

* [🔗 SecretMount](#secretmount)
* [🔗 StringDataMount](#stringdatamount)
* [🔗 VolumeMount](#volumemount)

## BasicAuthCreds

<ParamField body="type" type="typing.Literal[Any]" default="basic_auth" required />

<ParamField body="username" type="str" required>
  Username for service auth - Username for the user to authenticate with
</ParamField>

<ParamField body="password" type="str" required>
  Password for service auth - Password for the user to authenticate with
</ParamField>

## BedrockModel

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The AWS Bedrock model identifier or inference profile. Can be a foundation model ID (e.g., anthropic.claude-3-5-sonnet-20240620-v1:0, amazon.titan-text-express-v1), an inference profile ID (e.g., us.anthropic.claude-3-5-sonnet-20240620-v1:0), or an inference profile ARN (e.g., arn:aws:bedrock:us-east-1:123456789012:inference-profile/my-profile).
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/bedrock" required />

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Bedrock model
</ParamField>

<ParamField body="region" type="typing.Optional[AwsRegion]">
  [🔗 AwsRegion](/docs/truefoundry_sdk/enums#awsregion)
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## BitbucketIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/vcs/bitbucket" required />

<ParamField body="name" type="str" required />

<ParamField body="account_name" type="str" required>
  Account Name
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## BitbucketProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/bitbucket" required />

<ParamField body="name" type="str" required />

<ParamField body="integrations" type="typing.List[BitbucketIntegration]" required>
  [🔗 BitbucketIntegration](/docs/truefoundry_sdk/types#bitbucketintegration)
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## BlobStorageReference

<ParamField body="type" type="typing.Literal[Any]" default="blob-storage" required />

<ParamField body="path" type="str" required>
  Path to the content in blob storage
</ParamField>

<ParamField body="mime_type" type="MimeType" required>
  [🔗 MimeType](/docs/truefoundry_sdk/enums#mimetype)

  MIME type of the content
</ParamField>

## BlueGreen

<ParamField body="type" type="typing.Literal[Any]" default="blue_green" required />

<ParamField body="enable_auto_promotion" type="typing.Optional[bool]">
  Promote the new release to handle the complete traffic. A manual promotion would be needed if this is disabled
</ParamField>

<ParamField body="auto_promotion_seconds" type="typing.Optional[int]" default="30">
  Promote the new release to handle the complete traffic after waiting for these many seconds
</ParamField>

## BudgetAlert

<ParamField body="thresholds" type="typing.List[float]" required>
  List of usage percentages (0-100) at which alerts should be triggered. Default thresholds are \[75, 90, 95, 100].
</ParamField>

<ParamField body="notification_target" type="typing.List[NotificationTarget]" required>
  [🔗 NotificationTarget](/docs/truefoundry_sdk/types#notificationtarget)

  Select where to send budget alert notifications
</ParamField>

## BudgetConfig

<ParamField body="type" type="typing.Literal[Any]" default="gateway-budget-config" required />

<ParamField body="rules" type="typing.List[BudgetRule]" required>
  [🔗 BudgetRule](/docs/truefoundry_sdk/types#budgetrule)

  List of budget rules
</ParamField>

## BudgetRule

<ParamField body="id" type="str" required>
  Unique identifier for the rule
</ParamField>

<ParamField body="when" type="BudgetWhen" required>
  [🔗 BudgetWhen](/docs/truefoundry_sdk/types#budgetwhen)
</ParamField>

<ParamField body="limit_to" type="float" required>
  Numeric limit value for the budget
</ParamField>

<ParamField body="unit" type="BudgetLimitUnit" required>
  [🔗 BudgetLimitUnit](/docs/truefoundry_sdk/enums#budgetlimitunit)
</ParamField>

<ParamField body="budget_applies_per" type="typing.Optional[typing.List[str]]">
  Create separate budget rules for each unique value of the selected entity. For example, if "user" is selected, a separate budget rule will be created for each unique user making requests. Options: user, virtualaccount, model, or a metadata key (e.g., metadata.appId).
</ParamField>

<ParamField body="alerts" type="typing.Optional[BudgetAlert]">
  [🔗 BudgetAlert](/docs/truefoundry_sdk/types#budgetalert)
</ParamField>

<ParamField body="audit_mode" type="typing.Optional[bool]">
  When enabled, requests exceeding the budget are tracked but not blocked
</ParamField>

## BudgetWhen

<ParamField body="subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that this rule applies to
</ParamField>

<ParamField body="models" type="typing.Optional[typing.List[str]]">
  List of models that this rule applies to
</ParamField>

<ParamField body="metadata" type="typing.Optional[typing.Dict[(str, str)]]">
  Metadata key-value pairs that this rule applies to
</ParamField>

## Build

<ParamField body="type" type="typing.Literal[Any]" default="build" required />

<ParamField body="docker_registry" type="typing.Optional[str]">
  FQN of the container registry. If you can't find your registry here, add it through the [Integrations](/docs/integrations-overview) page
</ParamField>

<ParamField body="build_source" type="BuildBuildSource" required>
  [🔗 BuildBuildSource](/docs/truefoundry_sdk/types#buildbuildsource)

  Source code location.
</ParamField>

<ParamField body="build_spec" type="BuildBuildSpec" required>
  [🔗 BuildBuildSpec](/docs/truefoundry_sdk/types#buildbuildspec)

  Instructions to build a container image out of the build source
</ParamField>

## BuildBuildSource

**Union, One Of:**

* [🔗 RemoteSource](#remotesource)
* [🔗 GitSource](#gitsource)
* [🔗 LocalSource](#localsource)

## BuildBuildSpec

**Union, One Of:**

* [🔗 DockerFileBuild](#dockerfilebuild)
* [🔗 PythonBuild](#pythonbuild)

## BuildInfo

<ParamField body="name" type="str" required />

<ParamField body="status" type="float" required>
  Status of the build: STARTED = 20, SUCCEEDED = 30, FAILED = 40
</ParamField>

## BuildSecret

<ParamField body="id" type="str" required>
  The ID of the build secret.
</ParamField>

<ParamField body="value" type="str" required>
  The value of the build secret.
</ParamField>

<ParamField body="env" type="typing.Optional[str]">
  The name of the environment variable to inject the secret into.
</ParamField>

## Canary

<ParamField body="type" type="typing.Literal[Any]" default="canary" required />

<ParamField body="steps" type="typing.List[CanaryStep]" required>
  [🔗 CanaryStep](/docs/truefoundry_sdk/types#canarystep)

  These steps would be executed in order to enable shifting of traffic slowly from stable to canary version
</ParamField>

## CanaryStep

<ParamField body="weight_percentage" type="int" required>
  Percentage of total traffic to be shifted to the canary release. The rest will continue to go to the existing deployment
</ParamField>

<ParamField body="pause_duration" type="typing.Optional[int]">
  Duration for which to pause the release. The release process will wait for these seconds before proceeding to the next step. If this is not set, the step will pause indefinitely on this step
</ParamField>

## CartesiaApiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for Cartesia authentication
</ParamField>

## CartesiaModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/cartesia" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The Cartesia model identifier (for example, sonic-2, sonic-multilingual)
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Cartesia model (text\_to\_speech or audio\_transcription)
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## CartesiaProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/cartesia" required />

<ParamField body="name" type="str" required>
  The name of the Cartesia provider account
</ParamField>

<ParamField body="base_url" type="typing.Optional[str]">
  Optional custom base URL for Cartesia API
</ParamField>

<ParamField body="cartesia_version" type="CartesiaProviderAccountCartesiaVersion" required>
  [🔗 CartesiaProviderAccountCartesiaVersion](/docs/truefoundry_sdk/enums#cartesiaprovideraccountcartesiaversion)

  The Cartesia API version header. Must be set to a supported API version.
</ParamField>

<ParamField body="auth_data" type="CartesiaApiKeyAuth" required>
  [🔗 CartesiaApiKeyAuth](/docs/truefoundry_sdk/types#cartesiaapikeyauth)
</ParamField>

<ParamField body="integrations" type="typing.List[CartesiaModel]" required>
  [🔗 CartesiaModel](/docs/truefoundry_sdk/types#cartesiamodel)

  List of integrations that are associated with the Cartesia provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## CedarGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Enforces access control policies using Cedar policy language">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/cedar" required />

<ParamField body="operation" type="typing.Literal[Any]" default="validate" required>
  The operation type for this guardrail. Cedar guardrails can only be used for validation.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="CedarGuardrailConfigConfig" required>
  [🔗 CedarGuardrailConfigConfig](/docs/truefoundry_sdk/types#cedarguardrailconfigconfig)
</ParamField>

## CedarGuardrailConfigConfig

<ParamField body="policy" type="str" required>
  Enter a Cedar policy string to define access control rules. Supports principal types (user, team, virtualaccount), MCPTool actions, MCPServer resources, and when/unless clauses, refer to [Docs](https://www.truefoundry.com/docs/ai-gateway/cedar-guardrails)
</ParamField>

## CerebrasKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for Cerebras authentication
</ParamField>

## CerebrasModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/cerebras" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The Cerebras model identifier (e.g., llama-4-scout-17b-16e-instruct, llama3.1-70b). This is the standard model name from Cerebras's API documentation.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Cerebras model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## CerebrasProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/cerebras" required />

<ParamField body="name" type="str" required>
  The name of the Cerebras provider account
</ParamField>

<ParamField body="auth_data" type="CerebrasKeyAuth" required>
  [🔗 CerebrasKeyAuth](/docs/truefoundry_sdk/types#cerebraskeyauth)
</ParamField>

<ParamField body="integrations" type="typing.Optional[typing.List[CerebrasIntegrations]]">
  List of integrations that are associated with the Cerebras provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## ChangePasswordResponse

**Union, One Of:**

* [🔗 UniversalBaseModel](#universalbasemodel)

## ChatPromptManifest

<ParamField body="name" type="str" required>
  Name of the prompt (alphanumeric characters, hyphens, and underscores only, max 256 characters)
</ParamField>

<ParamField body="metadata" type="typing.Dict[(str, typing.Any)]" required>
  Key value metadata. Should be valid JSON. For e.g. `\{"business-unit": "sales", "quality": "good", "rating": 4.5\}`
</ParamField>

<ParamField body="ml_repo" type="str" required>
  Name of the ML Repo that this prompt belongs to (must start and end with alphanumeric, 2-100 characters)
</ParamField>

<ParamField body="version" type="typing.Optional[int]">
  Version of the entity
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="chat_prompt" required />

<ParamField body="description" type="typing.Optional[str]" />

<ParamField body="version_alias" type="typing.Optional[str]">
  Version alias is alternate, ideally human readable, version string to reference an artifact version. It should start with `v` followed by alphanumeric and it can include `.` and `-` in between (e.g. `v1.0.0`, `v1-prod`, `v3-dev`, etc)
</ParamField>

<ParamField body="messages" type="typing.List[ChatPromptManifestMessagesItem]" required>
  [🔗 ChatPromptManifestMessagesItem](/docs/truefoundry_sdk/types#chatpromptmanifestmessagesitem)

  List of messages in the chat conversation, must be non-empty
</ParamField>

<ParamField body="variables" type="typing.Optional[typing.Dict[(str, str)]]">
  Variables referenced in messages and that can be replaced when running generation
</ParamField>

<ParamField body="model_configuration" type="typing.Optional[ModelConfiguration]">
  [🔗 ModelConfiguration](/docs/truefoundry_sdk/types#modelconfiguration)
</ParamField>

<ParamField body="tools" type="typing.Optional[typing.List[ToolSchema]]">
  [🔗 ToolSchema](/docs/truefoundry_sdk/types#toolschema)

  List of tools to be used in the chat prompt
</ParamField>

<ParamField body="mcp_servers" type="typing.Optional[typing.List[ChatPromptManifestMcpServersItem]]">
  [🔗 ChatPromptManifestMcpServersItem](/docs/truefoundry_sdk/types#chatpromptmanifestmcpserversitem)

  A list of MCP servers FQNs or URLs and their tools
</ParamField>

<ParamField body="guardrails" type="typing.Optional[Guardrails]">
  [🔗 Guardrails](/docs/truefoundry_sdk/types#guardrails)
</ParamField>

<ParamField body="response_format" type="typing.Optional[ChatPromptManifestResponseFormat]">
  [🔗 ChatPromptManifestResponseFormat](/docs/truefoundry_sdk/types#chatpromptmanifestresponseformat)

  Response format configuration for structured outputs
</ParamField>

<ParamField body="routing_config" type="typing.Optional[ChatPromptManifestRoutingConfig]">
  [🔗 ChatPromptManifestRoutingConfig](/docs/truefoundry_sdk/types#chatpromptmanifestroutingconfig)

  Configuration for routing requests to different model targets
</ParamField>

<ParamField body="cache_config" type="typing.Optional[ChatPromptManifestCacheConfig]">
  [🔗 ChatPromptManifestCacheConfig](/docs/truefoundry_sdk/types#chatpromptmanifestcacheconfig)

  Cache configuration for the chat prompt
</ParamField>

<ParamField body="tool_call_to_mcp_mapping" type="typing.Optional[typing.Dict[(str, McpServerToolDetails)]]">
  [🔗 McpServerToolDetails](/docs/truefoundry_sdk/types#mcpservertooldetails)

  Mapping of tool calls to MCP server integration IDs and tool names
</ParamField>

<ParamField body="logging_config" type="typing.Optional[LoggingConfig]">
  [🔗 LoggingConfig](/docs/truefoundry_sdk/types#loggingconfig)
</ParamField>

<ParamField body="sub_agents" type="typing.Optional[typing.List[SubAgent]]">
  [🔗 SubAgent](/docs/truefoundry_sdk/types#subagent)

  Sub agents to be used in the chat prompt
</ParamField>

## ChatPromptManifestCacheConfig

**Union, One Of:**

* [🔗 SemanticCacheConfig](#semanticcacheconfig)
* [🔗 ExactMatchCacheConfig](#exactmatchcacheconfig)

## ChatPromptManifestMcpServersItem

**Union, One Of:**

* [🔗 McpServerWithFqn](#mcpserverwithfqn)
* [🔗 McpServerWithUrl](#mcpserverwithurl)

## ChatPromptManifestMessagesItem

**Union, One Of:**

* [🔗 SystemMessage](#systemmessage)
* [🔗 AssistantMessage](#assistantmessage)
* [🔗 UserMessage](#usermessage)
* [🔗 ToolMessage](#toolmessage)
* [🔗 DeveloperMessage](#developermessage)

## ChatPromptManifestResponseFormat

**Union, One Of:**

* [🔗 JsonObjectResponseFormat](#jsonobjectresponseformat)
* [🔗 JsonSchemaResponseFormat](#jsonschemaresponseformat)

## ChatPromptManifestRoutingConfig

**Union, One Of:**

* [🔗 WeightBasedLoadBalancing](#weightbasedloadbalancing)
* [🔗 LatencyBasedLoadBalancing](#latencybasedloadbalancing)
* [🔗 PriorityBasedLoadBalancing](#prioritybasedloadbalancing)

## ClouderaModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/cloudera" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The unique identifier of the Model in Cloudera Model Registry. This is the model ID assigned when you registered or deployed your model in the CDP Model Registry
</ParamField>

<ParamField body="base_url" type="str" required>
  The model endpoint URL up to the API version v1. To get the base\_url, copy the model endpoint URL and delete the last two path components
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Cloudera model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## ClouderaProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/cloudera" required />

<ParamField body="name" type="str" required>
  The name of the Cloudera provider account
</ParamField>

<ParamField body="auth_data" type="ClouderaProviderAccountAuthData" required>
  [🔗 ClouderaProviderAccountAuthData](/docs/truefoundry_sdk/types#clouderaprovideraccountauthdata)

  Cloudera authentication credentials
</ParamField>

<ParamField body="integrations" type="typing.List[ClouderaIntegrations]" required>
  List of integrations that are associated with the Cloudera provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## ClouderaProviderAccountAuthData

**Union, One Of:**

* [🔗 ClouderaWorkloadAuthToken](#clouderaworkloadauthtoken)
* [🔗 ClouderaTokenAuth](#clouderatokenauth)

## ClouderaTokenAuth

<ParamField body="type" type="typing.Literal[Any]" default="token" required />

<ParamField body="api_token" type="str" required>
  Pre-generated API token for Cloudera CDP authentication. You can generate this token using the CDP CLI or from your user profile settings. This token provides direct access to CDP services without requiring workload-specific authentication.
</ParamField>

## ClouderaWorkloadAuthToken

<ParamField body="type" type="typing.Literal[Any]" default="workload-auth-token" required />

<ParamField body="cdp_base_url" type="str" required>
  The base URL for CDP API services
</ParamField>

<ParamField body="access_key_id" type="str" required>
  The access key ID for your Cloudera CDP workload authentication.
</ParamField>

<ParamField body="private_key" type="str" required>
  The private key for your Cloudera CDP workload authentication.
</ParamField>

<ParamField body="workload_name" type="str" required>
  The name of the CDP workload you want to authenticate with.
</ParamField>

## Cluster

<ParamField body="id" type="str" required />

<ParamField body="fqn" type="str" required />

<ParamField body="manifest" type="ClusterManifest" required>
  [🔗 ClusterManifest](/docs/truefoundry_sdk/types#clustermanifest)
</ParamField>

<ParamField body="tenant_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="account_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="created_by_subject" type="typing_extensions.Annotated[(typing.Optional[Subject], Any, Any)]">
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="created_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="updated_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="created_by" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## ClusterGateway

<ParamField body="uid" type="typing.Optional[str]" />

<ParamField body="name" type="str" required />

<ParamField body="hosts" type="typing.List[str]" required />

<ParamField body="is_tie_breaker" type="typing_extensions.Annotated[(typing.Optional[bool], Any, Any)]" />

<ParamField body="selector" type="typing.Dict[(str, str)]" required />

## ClusterManifest

<ParamField body="type" type="typing.Literal[Any]" default="cluster" required />

<ParamField body="name" type="str" required>
  Name - 3 to 35 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
</ParamField>

<ParamField body="cluster_type" type="ClusterManifestClusterType" required>
  [🔗 ClusterManifestClusterType](/docs/truefoundry_sdk/enums#clustermanifestclustertype)

  The cluster type of this cluster
</ParamField>

<ParamField body="environment_names" type="typing.List[str]" required>
  Tag the environment like dev, staging or production. You will need to [create environments](https://docs.truefoundry.com/docs/key-concepts#creating-environments) if you don't have already.
</ParamField>

<ParamField body="base_domains" type="typing.Optional[typing.List[str]]">
  One or more base URLs, which can be either a wildcard domain (resulting in app URLs like `\<app-name\>-\<workspace-name\>.\<base-domain-URL\>`) or a non-wildcard domain (resulting in app URLs like `\<base-domain-URL\>/\<app-name\>-\<workspace-name\>`) > Read more about routing [here](https://docs.truefoundry.com/docs/routing) and about 'A' record and domain mapping [here](https://docs.truefoundry.com/docs/setting-up-domain)
</ParamField>

<ParamField body="monitoring" type="typing.Optional[ClusterManifestMonitoring]">
  [🔗 ClusterManifestMonitoring](/docs/truefoundry_sdk/types#clustermanifestmonitoring)

  Monitoring
</ParamField>

<ParamField body="default_registry_fqn" type="typing.Optional[str]">
  Cluster Default Registry
</ParamField>

<ParamField body="workbench_config" type="typing.Optional[ClusterManifestWorkbenchConfig]">
  [🔗 ClusterManifestWorkbenchConfig](/docs/truefoundry_sdk/types#clustermanifestworkbenchconfig)

  Workbench Config
</ParamField>

<ParamField body="spark_config" type="typing.Optional[SparkConfig]">
  [🔗 SparkConfig](/docs/truefoundry_sdk/types#sparkconfig)
</ParamField>

<ParamField body="ingress_controller_config" type="typing.Optional[IngressControllerConfig]">
  [🔗 IngressControllerConfig](/docs/truefoundry_sdk/types#ingresscontrollerconfig)
</ParamField>

<ParamField body="cluster_integration_fqn" type="typing.Optional[str]">
  Cluster Integration FQN
</ParamField>

<ParamField body="workflow_storage_integration_fqn" type="typing.Optional[str]">
  Workflow Storage Integration
</ParamField>

<ParamField body="supported_nodepools" type="typing.Optional[typing.List[Nodepool]]">
  [🔗 Nodepool](/docs/truefoundry_sdk/types#nodepool)

  Add nodepools that are already created in your cluster. When deploying, applications can choose to schedule from these nodepools.
</ParamField>

<ParamField body="node_label_keys" type="typing.Optional[ClusterManifestNodeLabelKeys]">
  [🔗 ClusterManifestNodeLabelKeys](/docs/truefoundry_sdk/types#clustermanifestnodelabelkeys)

  The node label keys that this cluster supports. Note: You will additionally need to add `truefoundry.com/gpu_type` label for GPU-supported node pools. For more information, check out [this documentation](https://docs.truefoundry.com/docs/generic-control-plane#configuring-node-pools-for-truefoundry).
</ParamField>

<ParamField body="collaborators" type="typing.List[Collaborator]" required>
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  Collaborators who can access this cluster
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## ClusterManifestMonitoring

<ParamField body="loki_url" type="typing.Optional[str]">
  Cluster Loki URL
</ParamField>

<ParamField body="victoria_logs_url" type="typing.Optional[str]">
  Cluster VictoriaLogs URL
</ParamField>

<ParamField body="prometheus_url" type="typing.Optional[str]">
  Cluster Prometheus URL
</ParamField>

<ParamField body="kubecost_url" type="typing.Optional[str]">
  Cluster Kubecost URL
</ParamField>

## ClusterManifestNodeLabelKeys

<ParamField body="nodepool_selector_label" type="str" required>
  The nodepool selector label that this cluster supports
</ParamField>

## ClusterManifestWorkbenchConfig

<ParamField body="notebook_config" type="typing.Optional[NotebookConfig]">
  [🔗 NotebookConfig](/docs/truefoundry_sdk/types#notebookconfig)
</ParamField>

<ParamField body="ssh_server_config" type="typing.Optional[SshServerConfig]">
  [🔗 SshServerConfig](/docs/truefoundry_sdk/types#sshserverconfig)
</ParamField>

<ParamField body="default_storage_class" type="typing.Optional[str]">
  The default storage class for the home directory of workbench
</ParamField>

## ClustersDeleteResponse

<ParamField body="message" type="typing.Optional[str]">
  Success message
</ParamField>

## CodeSafetyLinterGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Detects unsafe code patterns in tool outputs (eval, exec, os.system, subprocess, rm -rf)">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/code-safety-linter" required />

<ParamField body="operation" type="typing.Literal[Any]" default="validate" required>
  The operation type for this guardrail. Code Safety Linter guardrails can only be used for validation.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

## Codeserver

<ParamField body="type" type="typing.Literal[Any]" default="codeserver" required />

<ParamField body="image" type="WorkbenchImage" required>
  [🔗 WorkbenchImage](/docs/truefoundry_sdk/types#workbenchimage)
</ParamField>

## CohereKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for Cohere authentication
</ParamField>

## CohereModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/cohere" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The Cohere model identifier (e.g., command-a-03-2025, command-r-03-2024, command-r-03-2024). This is the standard model id from Cohere's model catalog.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Cohere model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## CohereProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/cohere" required />

<ParamField body="name" type="str" required>
  The name of the Cohere provider account
</ParamField>

<ParamField body="auth_data" type="CohereKeyAuth" required>
  [🔗 CohereKeyAuth](/docs/truefoundry_sdk/types#coherekeyauth)
</ParamField>

<ParamField body="integrations" type="typing.Optional[typing.List[CohereIntegrations]]">
  List of integrations that are associated with the Cohere provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## Collaborator

<ParamField body="subject" type="str" required>
  Fully Qualified Name of the subject. eg: user:email or team:teamname
</ParamField>

<ParamField body="role_id" type="str" required>
  Role ID for the resource
</ParamField>

## CommonToolsSettings

<ParamField body="type" type="typing.Literal[Any]" default="settings/common-tools" required />

<ParamField body="web_search" type="bool" required>
  Enable web search tool Allows model to search the web for information.
</ParamField>

<ParamField body="code_executor" type="bool" required>
  Enable code executor tool Allows model to execute code and return the results.
</ParamField>

<ParamField body="sandbox_exec" type="bool" required>
  Enable sandbox executor tool Allows model to execute shell command in an isolated stateful sandbox environment.
</ParamField>

<ParamField body="sequential_thinking" type="bool" required>
  Enable sequential thinking tool Allows model to reason step-by-step to solve complex problems.
</ParamField>

<ParamField body="web_scrape" type="bool" required>
  Enable web scraping tool. Allows model to scrape content from web pages with intelligent format selection for structured or unstructured data.
</ParamField>

## ContainerTaskConfig

<ParamField body="type" type="typing.Literal[Any]" default="container-task-config" required />

<ParamField body="image" type="ContainerTaskConfigImage" required>
  [🔗 ContainerTaskConfigImage](/docs/truefoundry_sdk/types#containertaskconfigimage)

  Specify whether you want to deploy a Docker image or build and deploy from source code
</ParamField>

<ParamField body="env" type="typing.Optional[typing.Dict[(str, typing.Optional[str])]]">
  Configure environment variables to be injected in the task either as plain text or secrets. [Docs](https://docs.truefoundry.com/docs/env-variables)
</ParamField>

<ParamField body="resources" type="typing.Optional[Resources]">
  [🔗 Resources](/docs/truefoundry_sdk/types#resources)
</ParamField>

<ParamField body="mounts" type="typing.Optional[typing.List[ContainerTaskConfigMountsItem]]">
  [🔗 ContainerTaskConfigMountsItem](/docs/truefoundry_sdk/types#containertaskconfigmountsitem)

  Configure data to be mounted to Workflow pod(s) as a volume.
</ParamField>

<ParamField body="service_account" type="typing.Optional[str]">
  Service Account
</ParamField>

## ContainerTaskConfigImage

**Union, One Of:**

* [🔗 Build](#build)
* [🔗 Image](#image)

## ContainerTaskConfigMountsItem

**Union, One Of:**

* [🔗 SecretMount](#secretmount)
* [🔗 StringDataMount](#stringdatamount)
* [🔗 VolumeMount](#volumemount)

## CoreNatsOutputConfig

<ParamField body="type" type="typing.Literal[Any]" default="core-nats" required />

<ParamField body="nats_url" type="str" required>
  Output NATS URL
</ParamField>

<ParamField body="root_subject" type="str" required>
  Root subject of output NATS
</ParamField>

<ParamField body="auth" type="typing.Optional[NatsUserPasswordAuth]">
  [🔗 NatsUserPasswordAuth](/docs/truefoundry_sdk/types#natsuserpasswordauth)
</ParamField>

## CpuUtilizationMetric

<ParamField body="type" type="typing.Literal[Any]" default="cpu_utilization" required />

<ParamField body="value" type="int" required>
  Percentage of cpu request averaged over all replicas which the autoscaler should try to maintain
</ParamField>

## CreateDockerRepositoryResponse

<ParamField body="repo_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

## CreateMultiPartUploadRequest

<ParamField body="id" type="str" required>
  ID of the artifact version to upload files to
</ParamField>

<ParamField body="path" type="str" required>
  Relative path within the artifact version where the file should be uploaded
</ParamField>

<ParamField body="num_parts" type="int" required>
  Number of parts to split the upload into for multipart upload
</ParamField>

## CreatePersonalAccessTokenResponse

<ParamField body="token" type="str" required>
  Personal Access Token
</ParamField>

## CronMetric

<ParamField body="type" type="typing.Literal[Any]" default="cron" required />

<ParamField body="desired_replicas" type="typing.Optional[int]">
  Desired number of replicas during the given interval. Default value is max\_replicas.
</ParamField>

<ParamField body="start" type="str" required>
  Cron expression indicating the start of the cron schedule. `* * * * * | | | | | | | | | |___ day of week (0-6) (Sunday is 0) | | | |_____ month (1-12) | | |_______ day of month (1-31) | |_________ hour (0-23) |___________ minute (0-59)`
</ParamField>

<ParamField body="end" type="str" required>
  Cron expression indicating the end of the cron schedule. `* * * * * | | | | | | | | | |___ day of week (0-6) (Sunday is 0) | | | |_____ month (1-12) | | |_______ day of month (1-31) | |_________ hour (0-23) |___________ minute (0-59)`
</ParamField>

<ParamField body="timezone" type="str" default="UTC" required>
  Timezone against which the cron schedule will be calculated, e.g. "Asia/Tokyo". Default is machine's local time. [https://docs.truefoundry.com/docs/list-of-supported-timezones](https://docs.truefoundry.com/docs/list-of-supported-timezones)
</ParamField>

## CustomAgentServerAuth

**Union, One Of:**

* [🔗 CustomServerHeaderAuth](#customserverheaderauth)
* [🔗 CustomServerPassthrough](#customserverpassthrough)

## CustomBasicAuth

<ParamField body="type" type="typing.Literal[Any]" default="basic-auth" required />

<ParamField body="username" type="str" required>
  The username for the basic authentication.
</ParamField>

<ParamField body="password" type="str" required>
  The password for the basic authentication.
</ParamField>

## CustomBearerAuth

<ParamField body="type" type="typing.Literal[Any]" default="bearer-auth" required />

<ParamField body="bearer_token" type="str" required>
  The bearer token for the custom bearer authentication.
</ParamField>

## CustomBlobStorage

<ParamField body="type" type="typing.Literal[Any]" default="integration/blob-storage/custom" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="endpoint" type="str" required>
  The endpoint of the storage provider.
</ParamField>

<ParamField body="storage_root" type="str" required>
  The S3-compatible storage path in the format 's3://\<bucket-name>/\<optional-path-prefix>'. Works with S3-compatible storage providers like MinIO, Ceph, and DigitalOcean Spaces. Example: 's3://mybucket' or 's3://mybucket/artifacts/production'.
</ParamField>

<ParamField body="region" type="typing.Optional[str]">
  The region where the storage is located.
</ParamField>

<ParamField body="auth_data" type="CustomBasicAuth" required>
  [🔗 CustomBasicAuth](/docs/truefoundry_sdk/types#custombasicauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## CustomEndpoint

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/custom-endpoint" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this endpoint in the UI
</ParamField>

<ParamField body="base_url" type="str" required>
  The target base URL to proxy requests to (e.g., [https://my-service.example.com/v1](https://my-service.example.com/v1))
</ParamField>

<ParamField body="auth_data" type="typing.Optional[CustomHeaderAuth]">
  [🔗 CustomHeaderAuth](/docs/truefoundry_sdk/types#customheaderauth)
</ParamField>

<ParamField body="headers" type="typing.Optional[typing.Dict[(str, str)]]">
  Custom headers forwarded to the upstream endpoint with every request. For example: `\{"X-Custom-Header": "value"\}`
</ParamField>

<ParamField body="tls_settings" type="typing.Optional[CustomTlsSettings]">
  [🔗 CustomTlsSettings](/docs/truefoundry_sdk/types#customtlssettings)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this endpoint. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## CustomEndpointProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/custom-endpoint" required />

<ParamField body="name" type="str" required>
  The name of the custom endpoint provider account.
</ParamField>

<ParamField body="endpoint_type" type="typing.Optional[CustomEndpointProviderAccountEndpointType]">
  [🔗 CustomEndpointProviderAccountEndpointType](/docs/truefoundry_sdk/enums#customendpointprovideraccountendpointtype)

  The type of service behind this endpoint (used for tracking purposes)
</ParamField>

<ParamField body="auth_data" type="typing.Optional[CustomHeaderAuth]">
  [🔗 CustomHeaderAuth](/docs/truefoundry_sdk/types#customheaderauth)
</ParamField>

<ParamField body="integrations" type="typing.List[CustomEndpointIntegrations]" required>
  [🔗 CustomEndpoint](/docs/truefoundry_sdk/types#customendpoint)

  List of endpoint integrations associated with this provider account.
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  Collaborators
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## CustomFramework

<ParamField body="type" type="typing.Literal[Any]" default="custom" required>
  Type
</ParamField>

## CustomGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Custom guardrail server for validate or mutate via HTTP endpoint">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/custom" required />

<ParamField body="auth_data" type="typing.Optional[CustomGuardrailConfigAuthData]">
  [🔗 CustomGuardrailConfigAuthData](/docs/truefoundry_sdk/types#customguardrailconfigauthdata)

  Authentication data for the Guardrail Server.
</ParamField>

<ParamField body="operation" type="CustomGuardrailConfigOperation" required>
  [🔗 CustomGuardrailConfigOperation](/docs/truefoundry_sdk/enums#customguardrailconfigoperation)

  The operation type to use for the Guardrail. Validate guardrails are used to validate requests and mutate can validate as well as mutate requests. Validate guardrails are run in parallel while mutate guardrails are run sequentially.
</ParamField>

<ParamField body="priority" type="typing.Optional[int]" default="1">
  Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="target" type="CustomGuardrailConfigTarget" required>
  [🔗 CustomGuardrailConfigTarget](/docs/truefoundry_sdk/enums#customguardrailconfigtarget)

  Specify whether the guardrail should be applied to the request or response. Guardrails with target "Request" can be only used in input guardrails and guardrails with target "Response" can only be used in output guardrails.
</ParamField>

<ParamField body="config" type="CustomGuardrailConfigConfig" required>
  [🔗 CustomGuardrailConfigConfig](/docs/truefoundry_sdk/types#customguardrailconfigconfig)
</ParamField>

## CustomGuardrailConfigAuthData

**Union, One Of:**

* [🔗 CustomBasicAuth](#custombasicauth)
* [🔗 CustomBearerAuth](#custombearerauth)

## CustomGuardrailConfigConfig

<ParamField body="url" type="str" required>
  The URL of the Guardrail to send a post request to.
</ParamField>

<ParamField body="headers" type="typing.Optional[typing.Dict[(str, str)]]">
  Headers for the Guardrail Server. Forwarded to the Guardrail Server as is. For example: `\{"Authorization": "APIKey \<token\>"\}`
</ParamField>

<ParamField body="config" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  The config for the Guardrail Server. This is a JSON object that will be sent as a config to Guardrail Server along with the request.
</ParamField>

## CustomHeaderAuth

<ParamField body="type" type="typing.Literal[Any]" default="header" required />

<ParamField body="headers" type="typing.Dict[(str, str)]" required>
  Headers passed to the generic secret server with every request.
</ParamField>

## CustomHelmRepo

<ParamField body="type" type="typing.Literal[Any]" default="integration/helm-repo/custom" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="repo_url" type="str" required>
  The URL of the Helm Repo.
</ParamField>

<ParamField body="auth_data" type="CustomBasicAuth" required>
  [🔗 CustomBasicAuth](/docs/truefoundry_sdk/types#custombasicauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## CustomIntegrations

**Union, One Of:**

* [🔗 CustomUsernamePasswordArtifactsRegistry](#customusernamepasswordartifactsregistry)
* [🔗 EmailNotificationChannel](#emailnotificationchannel)
* [🔗 CustomHelmRepo](#customhelmrepo)
* [🔗 CustomBlobStorage](#customblobstorage)
* [🔗 CustomJwtAuthIntegration](#customjwtauthintegration)
* [🔗 GenericSecretStoreIntegration](#genericsecretstoreintegration)

## CustomJwtAuthIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/jwt-auth/custom" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="issuer" type="str" required>
  The base URL of the authentication provider.
</ParamField>

<ParamField body="jwks_uri" type="str" required>
  The JSON Web Key Set URI for JWT verification.
</ParamField>

<ParamField body="login_provider" type="typing.Optional[OAuth2LoginProvider]">
  [🔗 OAuth2LoginProvider](/docs/truefoundry_sdk/types#oauth2loginprovider)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## CustomProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/custom" required />

<ParamField body="name" type="str" required>
  The name of the provider account.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[CustomBasicAuth]">
  [🔗 CustomBasicAuth](/docs/truefoundry_sdk/types#custombasicauth)
</ParamField>

<ParamField body="integrations" type="typing.List[CustomIntegrations]" required>
  [🔗 CustomIntegrations](/docs/truefoundry_sdk/types#customintegrations)

  List of integrations that are associated with the provider account.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## CustomRegexPattern

<ParamField body="pattern" type="str" required>
  A custom regex pattern to match against content (e.g., "\b\d\{3}-\d\{2}-\d\{4}\b" for SSN)
</ParamField>

<ParamField body="redaction_text" type="typing.Optional[str]" default="[REDACTED]">
  Text to use when redacting matched content (only applicable in mutate mode). Defaults to '\[REDACTED]'.
</ParamField>

## CustomServerHeaderAuth

<ParamField body="type" type="typing.Literal[Any]" default="header" required />

<ParamField body="headers" type="typing.Dict[(str, str)]" required />

## CustomServerPassthrough

<ParamField body="type" type="typing.Literal[Any]" default="passthrough" required />

## CustomTlsSettings

<ParamField body="reject_unauthorized" type="bool" required>
  When set to true, it will reject any connection which is not authorized with the list of supplied CAs.
</ParamField>

<ParamField body="ca_cert" type="typing.Optional[str]">
  Add custom CA certificates to use for TLS verification.
</ParamField>

## CustomUsernamePasswordArtifactsRegistry

<ParamField body="type" type="typing.Literal[Any]" default="integration/docker-registry/custom" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="registry_url" type="str" required>
  The URL of the registry.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[CustomBasicAuth]">
  [🔗 CustomBasicAuth](/docs/truefoundry_sdk/types#custombasicauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## DataAccessRule

**Union, One Of:**

* [🔗 OwnDataAccessRule](#owndataaccessrule)
* [🔗 TeamDataAccessRule](#teamdataaccessrule)
* [🔗 AllDataAccessRule](#alldataaccessrule)

## DataAccessRuleBase

<ParamField body="id" type="str" required>
  Unique identifier for the rule
</ParamField>

<ParamField body="description" type="typing.Optional[str]">
  Description of the rule
</ParamField>

<ParamField body="enabled" type="typing.Optional[bool]">
  Whether this rule is enabled
</ParamField>

<ParamField body="subjects" type="typing.List[str]" required>
  List of subjects that this rule applies to (users, teams, roles)
</ParamField>

<ParamField body="data_types" type="typing.List[GatewayDataType]" required>
  [🔗 GatewayDataType](/docs/truefoundry_sdk/enums#gatewaydatatype)

  List of data types that this rule applies to
</ParamField>

## DatabricksApiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  API key for Databricks authentication.
</ParamField>

## DatabricksJobTaskConfig

<ParamField body="type" type="typing.Literal[Any]" default="databricks-job-task-config" required />

<ParamField body="image" type="DatabricksJobTaskConfigImage" required>
  [🔗 DatabricksJobTaskConfigImage](/docs/truefoundry_sdk/types#databricksjobtaskconfigimage)

  Specify the image spec for the task
</ParamField>

<ParamField body="workspace_host" type="str" required>
  Databricks workspace URL, e.g. https\://\<workspace>.cloud.databricks.com
</ParamField>

<ParamField body="job_id" type="str" required>
  The Databricks job ID to run (from Databricks workspace Jobs).
</ParamField>

<ParamField body="service_account" type="typing.Optional[str]">
  Service Account
</ParamField>

<ParamField body="job_parameters" type="typing.Optional[typing.Dict[(str, typing.Optional[str])]]">
  Optional parameters to pass to the job run (e.g. notebook params, jar params).
</ParamField>

<ParamField body="timeout_seconds" type="typing.Optional[float]">
  Maximum seconds to wait for the job run to complete. Used by CLI when polling.
</ParamField>

<ParamField body="skip_wait_for_completion" type="typing.Optional[bool]">
  If false, the task waits for the Databricks job run to complete (trigger and poll). If true, only triggers the job and returns. Default false.
</ParamField>

<ParamField body="env" type="typing.Optional[typing.Dict[(str, typing.Optional[str])]]">
  Configure environment variables to be injected in the task either as plain text or secrets. [Docs](https://docs.truefoundry.com/docs/env-variables)
</ParamField>

<ParamField body="resources" type="typing.Optional[Resources]">
  [🔗 Resources](/docs/truefoundry_sdk/types#resources)
</ParamField>

## DatabricksJobTaskConfigImage

**Union, One Of:**

* [🔗 TaskPythonBuild](#taskpythonbuild)
* [🔗 TaskDockerFileBuild](#taskdockerfilebuild)

## DatabricksModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/databricks" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The serving endpoint name configured in your Databricks workspace. This is the endpoint you created in Databricks Model Serving, not the underlying model name.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Databricks model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## DatabricksProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/databricks" required />

<ParamField body="name" type="str" required>
  The name of the Databricks provider account
</ParamField>

<ParamField body="auth_data" type="DatabricksProviderAccountAuthData" required>
  [🔗 DatabricksProviderAccountAuthData](/docs/truefoundry_sdk/types#databricksprovideraccountauthdata)

  Databricks authentication credentials
</ParamField>

<ParamField body="base_url" type="str" required>
  The base URL of your Databricks workspace
</ParamField>

<ParamField body="integrations" type="typing.List[DatabricksIntegrations]" required>
  List of integrations that are associated with the Databricks provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## DatabricksProviderAccountAuthData

**Union, One Of:**

* [🔗 DatabricksServicePrincipalAuth](#databricksserviceprincipalauth)
* [🔗 DatabricksApiKeyAuth](#databricksapikeyauth)

## DatabricksServicePrincipalAuth

<ParamField body="type" type="typing.Literal[Any]" default="service-principal" required />

<ParamField body="oauth_secret" type="str" required>
  OAuth secret of the Databricks service principal.
</ParamField>

<ParamField body="client_id" type="str" required>
  Client ID or Application ID of the Databricks service principal.
</ParamField>

## DataDirectory

<ParamField body="id" type="str" required>
  Unique identifier for the data directory
</ParamField>

<ParamField body="ml_repo_id" type="str" required>
  ID of the ML Repo that this data directory belongs to
</ParamField>

<ParamField body="name" type="str" required>
  Name of the data directory
</ParamField>

<ParamField body="fqn" type="str" required>
  Fully qualified name of the data directory
</ParamField>

<ParamField body="created_by_subject" type="Subject" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)

  Subject (user, team, or service account) that created this data directory
</ParamField>

<ParamField body="created_at" type="dt.datetime" required>
  Timestamp when the data directory was created
</ParamField>

<ParamField body="updated_at" type="dt.datetime" required>
  Timestamp when the data directory was last updated
</ParamField>

<ParamField body="manifest" type="DataDirectoryManifest" required>
  [🔗 DataDirectoryManifest](/docs/truefoundry_sdk/types#datadirectorymanifest)

  Manifest containing metadata for the data directory
</ParamField>

<ParamField body="usage_code_snippet" type="typing.Optional[str]">
  Code snippet demonstrating how to use this data directory
</ParamField>

## DataDirectoryManifest

<ParamField body="type" type="typing.Literal[Any]" default="data-dir" required />

<ParamField body="name" type="str" required>
  Name of the data directory
</ParamField>

<ParamField body="ml_repo" type="str" required>
  Name of the ML Repo to create the data directory under
</ParamField>

<ParamField body="description" type="typing.Optional[str]">
  Description for the data directory
</ParamField>

<ParamField body="metadata" type="typing.Dict[(str, typing.Any)]" required>
  Key Value metadata. Should be valid JSON. For e.g. `\{"business-unit": "sales", "quality": "good", "rating": 4.5\}`
</ParamField>

<ParamField body="source" type="DataDirectoryManifestSource" required>
  [🔗 DataDirectoryManifestSource](/docs/truefoundry_sdk/types#datadirectorymanifestsource)
</ParamField>

## DataDirectoryManifestSource

**Union, One Of:**

* [🔗 TrueFoundryManagedSource](#truefoundrymanagedsource)
* [🔗 ExternalBlobStorageSource](#externalblobstoragesource)

## DeactivateUserResponse

**Union, One Of:**

* [🔗 UniversalBaseModel](#universalbasemodel)

## DeepgramApiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for Deepgram authentication
</ParamField>

## DeepgramModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/deepgram" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The Deepgram model identifier (for example, nova-2, nova-2-general, aura-asteria-en)
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Deepgram model (text\_to\_speech or audio\_transcription)
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## DeepgramProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/deepgram" required />

<ParamField body="name" type="str" required>
  The name of the Deepgram provider account
</ParamField>

<ParamField body="auth_data" type="DeepgramApiKeyAuth" required>
  [🔗 DeepgramApiKeyAuth](/docs/truefoundry_sdk/types#deepgramapikeyauth)
</ParamField>

<ParamField body="base_url" type="typing.Optional[str]">
  Optional custom base URL for Deepgram API
</ParamField>

<ParamField body="integrations" type="typing.List[DeepgramModel]" required>
  [🔗 DeepgramModel](/docs/truefoundry_sdk/types#deepgrammodel)

  List of integrations that are associated with the Deepgram provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## DeepinfraKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for DeepInfra authentication
</ParamField>

## DeepinfraModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/deepinfra" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The DeepInfra model identifier (e.g., meta-llama/Llama-3.3-70B-Instruct-Turbo, mistralai/Mistral-Small-24B-Instruct-2501). This is the full model path from DeepInfra's model catalog.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the DeepInfra model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## DeepinfraProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/deepinfra" required />

<ParamField body="name" type="str" required>
  The name of the DeepInfra provider account
</ParamField>

<ParamField body="auth_data" type="DeepinfraKeyAuth" required>
  [🔗 DeepinfraKeyAuth](/docs/truefoundry_sdk/types#deepinfrakeyauth)
</ParamField>

<ParamField body="integrations" type="typing.Optional[typing.List[DeepinfraIntegrations]]">
  List of integrations that are associated with the DeepInfra provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## DeleteApplicationResponse

<ParamField body="message" type="str" required>
  Application deletion message
</ParamField>

## DeleteJobRunResponse

<ParamField body="message" type="str" required>
  Job run deleted
</ParamField>

## DeletePersonalAccessTokenResponse

**Union, One Of:**

* [🔗 UniversalBaseModel](#universalbasemodel)

## DeleteSecretGroupResponse

**Union, One Of:**

* [🔗 UniversalBaseModel](#universalbasemodel)

## DeleteTeamResponse

**Union, One Of:**

* [🔗 UniversalBaseModel](#universalbasemodel)

## DeleteUserResponse

**Union, One Of:**

* [🔗 UniversalBaseModel](#universalbasemodel)

## DeleteVirtualAccountResponse

**Union, One Of:**

* [🔗 UniversalBaseModel](#universalbasemodel)

## Deployment

<ParamField body="id" type="typing.Optional[str]" />

<ParamField body="version" type="typing.Optional[float]" />

<ParamField body="fqn" type="typing.Optional[str]" />

<ParamField body="application_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="manifest" type="DeploymentManifest" required>
  [🔗 DeploymentManifest](/docs/truefoundry_sdk/types#deploymentmanifest)
</ParamField>

<ParamField body="application" type="typing.Optional[Any]" />

<ParamField body="created_by_subject" type="typing_extensions.Annotated[(Subject, Any, Any)]" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="created_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="updated_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="deployment_builds" type="typing_extensions.Annotated[(typing.Optional[typing.List[BuildInfo]], Any, Any)]">
  [🔗 BuildInfo](/docs/truefoundry_sdk/types#buildinfo)
</ParamField>

<ParamField body="deployment_statuses" type="typing_extensions.Annotated[(typing.Optional[typing.List[DeploymentStatus]], Any, Any)]">
  [🔗 DeploymentStatus](/docs/truefoundry_sdk/types#deploymentstatus)
</ParamField>

<ParamField body="current_status_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="current_status" type="typing_extensions.Annotated[(typing.Optional[DeploymentStatus], Any, Any)]">
  [🔗 DeploymentStatus](/docs/truefoundry_sdk/types#deploymentstatus)
</ParamField>

<ParamField body="applied_recommendations" type="typing_extensions.Annotated[(typing.Optional[typing.List[Recommendation]], Any, Any)]">
  [🔗 Recommendation](/docs/truefoundry_sdk/types#recommendation)
</ParamField>

<ParamField body="created_by" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## DeploymentBuild

<ParamField body="id" type="typing.Optional[str]" />

<ParamField body="deployment_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="component_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="build" type="typing.Optional[BuildInfo]">
  [🔗 BuildInfo](/docs/truefoundry_sdk/types#buildinfo)
</ParamField>

<ParamField body="build_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="image_uri" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="name" type="typing.Optional[str]" />

<ParamField body="status" type="typing.Optional[BuildStatus]">
  [🔗 BuildStatus](/docs/truefoundry_sdk/enums#buildstatus)
</ParamField>

<ParamField body="get_logs_url" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="tail_logs_url" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="logs_start_ts" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="metadata" type="typing.Optional[typing.Dict[(str, typing.Any)]]" />

<ParamField body="created_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="updated_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

## DeploymentManifest

**Union, One Of:**

* [🔗 Service](#service)
* [🔗 AsyncService](#asyncservice)
* [🔗 Job](#job)
* [🔗 Notebook](#notebook)
* [🔗 Codeserver](#codeserver)
* [🔗 SshServer](#sshserver)
* [🔗 RStudio](#rstudio)
* [🔗 Helm](#helm)
* [🔗 Volume](#volume)
* [🔗 ApplicationSet](#applicationset)
* [🔗 Workflow](#workflow)
* [🔗 SparkJob](#sparkjob)
* [🔗 Intercept](#intercept)

## DeploymentStatus

<ParamField body="id" type="typing.Optional[str]" />

<ParamField body="deployment_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="status" type="typing.Optional[DeploymentStatusValue]">
  [🔗 DeploymentStatusValue](/docs/truefoundry_sdk/enums#deploymentstatusvalue)
</ParamField>

<ParamField body="state" type="typing.Optional[typing.Dict[(str, typing.Any)]]" />

<ParamField body="transition" type="typing.Optional[DeploymentTransition]">
  [🔗 DeploymentTransition](/docs/truefoundry_sdk/enums#deploymenttransition)
</ParamField>

<ParamField body="message" type="typing.Optional[str]" />

<ParamField body="retry_count" type="typing_extensions.Annotated[(typing.Optional[float], Any, Any)]" />

<ParamField body="created_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="updated_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

## DeveloperMessage

<ParamField body="role" type="typing.Literal[Any]" default="developer" required>
  The role of the messages author, in this case developer.
</ParamField>

<ParamField body="content" type="DeveloperMessageContent" required>
  [🔗 DeveloperMessageContent](/docs/truefoundry_sdk/types#developermessagecontent)

  The contents of the developer message.
</ParamField>

<ParamField body="name" type="typing.Optional[str]">
  An optional name for the participant.
</ParamField>

## DeveloperMessageContent

**Union, One Of:**

* [🔗 str](#str)
* [🔗 BlobStorageReference](#blobstoragereference)

## DockerFileBuild

<ParamField body="type" type="typing.Literal[Any]" default="dockerfile" required />

<ParamField body="dockerfile_path" type="str" default="./Dockerfile" required>
  The file path of the Dockerfile relative to project root path.
</ParamField>

<ParamField body="build_context_path" type="str" default="./" required>
  Build context path for the Dockerfile relative to project root path.
</ParamField>

<ParamField body="command" type="typing.Optional[DockerFileBuildCommand]">
  [🔗 DockerFileBuildCommand](/docs/truefoundry_sdk/types#dockerfilebuildcommand)

  Override the command to run when the container starts When deploying a Job, the command can be templatized by defining `params` and referencing them in command E.g. `python main.py --learning_rate \{\{learning_rate\}\}`
</ParamField>

<ParamField body="build_args" type="typing.Optional[typing.Dict[(str, str)]]">
  Build arguments to pass to docker build
</ParamField>

<ParamField body="build_secrets" type="typing.Optional[typing.List[BuildSecret]]">
  [🔗 BuildSecret](/docs/truefoundry_sdk/types#buildsecret)

  Build secrets you can use in run statements inside dockerfile like RUN --mount=type=secret,id=pip\_index\_url ... you can learn more about build secrets here [https://www.truefoundry.com/docs/docker-build-secrets](https://www.truefoundry.com/docs/docker-build-secrets)
</ParamField>

## DockerFileBuildCommand

**Union, One Of:**

* [🔗 str](#str)

## DockerhubBasicAuth

<ParamField body="type" type="typing.Literal[Any]" default="basic-auth" required />

<ParamField body="username" type="str" required />

<ParamField body="password" type="str" required />

## DockerhubProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/dockerhub" required />

<ParamField body="name" type="str" required>
  3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
</ParamField>

<ParamField body="account_name" type="typing.Optional[str]">
  Account Name
</ParamField>

<ParamField body="auth_data" type="typing.Optional[DockerhubBasicAuth]">
  [🔗 DockerhubBasicAuth](/docs/truefoundry_sdk/types#dockerhubbasicauth)
</ParamField>

<ParamField body="integrations" type="typing.List[DockerhubIntegrations]" required />

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## DockerhubRegistry

<ParamField body="type" type="typing.Literal[Any]" default="integration/docker-registry/dockerhub" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="registry_url" type="str" required>
  Registry URL
</ParamField>

<ParamField body="auth_data" type="typing.Optional[DockerhubBasicAuth]">
  [🔗 DockerhubBasicAuth](/docs/truefoundry_sdk/types#dockerhubbasicauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## DynamicVolumeConfig

<ParamField body="type" type="typing.Literal[Any]" default="dynamic" required>
  Volume Type for the volume.
</ParamField>

<ParamField body="storage_class" type="str" required>
  Name of the storage class to be used for the volume.
</ParamField>

<ParamField body="size" type="int" required>
  Size of volume in Gi
</ParamField>

## ElevenLabsApiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The XI API key for ElevenLabs authentication
</ParamField>

## ElevenLabsModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/elevenlabs" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The ElevenLabs model identifier (for example, eleven\_multilingual\_v2, eleven\_turbo\_v2\_5)
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the ElevenLabs model (text\_to\_speech or audio\_transcription)
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## ElevenLabsProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/elevenlabs" required />

<ParamField body="name" type="str" required>
  The name of the ElevenLabs provider account
</ParamField>

<ParamField body="auth_data" type="ElevenLabsApiKeyAuth" required>
  [🔗 ElevenLabsApiKeyAuth](/docs/truefoundry_sdk/types#elevenlabsapikeyauth)
</ParamField>

<ParamField body="base_url" type="typing.Optional[str]">
  Optional custom base URL for ElevenLabs API
</ParamField>

<ParamField body="integrations" type="typing.List[ElevenLabsModel]" required>
  [🔗 ElevenLabsModel](/docs/truefoundry_sdk/types#elevenlabsmodel)

  List of integrations that are associated with the ElevenLabs provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## Email

<ParamField body="type" type="typing.Literal[Any]" default="email" required />

<ParamField body="notification_channel" type="str" required>
  Specify the notification channel to send alerts to
</ParamField>

<ParamField body="to_emails" type="typing.List[str]" required>
  List of recipients' email addresses if the notification channel is Email.
</ParamField>

## EmailNotificationChannel

<ParamField body="type" type="typing.Literal[Any]" default="integration/notification-channel/email" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="auth_data" type="SmtpCredentials" required>
  [🔗 SmtpCredentials](/docs/truefoundry_sdk/types#smtpcredentials)
</ParamField>

<ParamField body="from_email" type="str" required>
  The email address from which the email will be sent.
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## EmptyResponse

**Union, One Of:**

* [🔗 UniversalBaseModel](#universalbasemodel)

## Endpoint

<ParamField body="host" type="str" required>
  Host e.g. ai.example.com, app.truefoundry.com
</ParamField>

<ParamField body="path" type="typing.Optional[str]">
  Path e.g. /v1/api/ml/, /v2/docs/
</ParamField>

## EnkryptAiGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Enkrypt AI guardrails for content safety and policy enforcement">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/enkrypt-ai" required />

<ParamField body="auth_data" type="EnkryptAiKeyAuth" required>
  [🔗 EnkryptAiKeyAuth](/docs/truefoundry_sdk/types#enkryptaikeyauth)
</ParamField>

<ParamField body="operation" type="EnkryptAiGuardrailConfigOperation" required>
  [🔗 EnkryptAiGuardrailConfigOperation](/docs/truefoundry_sdk/enums#enkryptaiguardrailconfigoperation)

  The operation type to use for the Guardrail. Validate guardrails are used to validate requests and mutate can validate as well as mutate requests. Validate guardrails are run in parallel while mutate guardrails are run sequentially.
</ParamField>

<ParamField body="priority" type="typing.Optional[int]" default="1">
  Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="EnkryptAiGuardrailConfigConfig" required>
  [🔗 EnkryptAiGuardrailConfigConfig](/docs/truefoundry_sdk/types#enkryptaiguardrailconfigconfig)
</ParamField>

## EnkryptAiGuardrailConfigConfig

<ParamField body="guardrail_name" type="str" required>
  The name of the guardrail to use for the Enkrypt AI Guardrail.
</ParamField>

## EnkryptAiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for Enkrypt AI authentication
</ParamField>

## Environment

<ParamField body="id" type="typing.Optional[str]" />

<ParamField body="priority" type="float" required />

<ParamField body="color" type="EnvironmentColor" required>
  [🔗 EnvironmentColor](/docs/truefoundry_sdk/types#environmentcolor)
</ParamField>

<ParamField body="tenant_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="created_by_subject" type="typing_extensions.Annotated[(Subject, Any, Any)]" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="is_production" type="typing_extensions.Annotated[(bool, Any, Any)]" required />

<ParamField body="optimize_for" type="typing_extensions.Annotated[(typing.Optional[EnvironmentOptimizeFor], Any, Any)]">
  [🔗 EnvironmentOptimizeFor](/docs/truefoundry_sdk/enums#environmentoptimizefor)
</ParamField>

<ParamField body="manifest" type="EnvironmentManifest" required>
  [🔗 EnvironmentManifest](/docs/truefoundry_sdk/types#environmentmanifest)
</ParamField>

<ParamField body="created_by" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## EnvironmentColor

<ParamField body="color_hex" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="background_color_hex" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="color" type="typing.Optional[str]" />

<ParamField body="background_color" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## EnvironmentManifest

<ParamField body="type" type="typing.Literal[Any]" default="environment" required />

<ParamField body="name" type="str" required>
  Environment Name
</ParamField>

<ParamField body="color" type="EnvironmentColor" required>
  [🔗 EnvironmentColor](/docs/truefoundry_sdk/types#environmentcolor)
</ParamField>

<ParamField body="is_production" type="typing_extensions.Annotated[(bool, Any, Any)]" required />

<ParamField body="optimize_for" type="typing_extensions.Annotated[(EnvironmentOptimizeFor, Any, Any)]" required>
  [🔗 EnvironmentOptimizeFor](/docs/truefoundry_sdk/enums#environmentoptimizefor)
</ParamField>

## Event

<ParamField body="name" type="typing.Optional[str]">
  Name of the event
</ParamField>

<ParamField body="first_timestamp" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="last_timestamp" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="involved_object" type="typing_extensions.Annotated[(EventInvolvedObject, Any, Any)]" required>
  [🔗 EventInvolvedObject](/docs/truefoundry_sdk/types#eventinvolvedobject)
</ParamField>

<ParamField body="type" type="str" required>
  Type of the event
</ParamField>

<ParamField body="count" type="int" required>
  Number of occurrences of the event
</ParamField>

<ParamField body="reason" type="str" required>
  Reason for the event
</ParamField>

<ParamField body="message" type="str" required>
  Message describing the event
</ParamField>

<ParamField body="namespace" type="typing.Optional[str]">
  Namespace of the event
</ParamField>

<ParamField body="chart" type="EventChart" required>
  [🔗 EventChart](/docs/truefoundry_sdk/types#eventchart)

  Chart of the event
</ParamField>

## EventChart

<ParamField body="category" type="EventChartCategory" required>
  [🔗 EventChartCategory](/docs/truefoundry_sdk/enums#eventchartcategory)
</ParamField>

## EventInvolvedObject

<ParamField body="kind" type="str" required />

<ParamField body="name" type="str" required />

<ParamField body="api_version" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="namespace" type="typing.Optional[str]" />

<ParamField body="container_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## ExactMatchCacheConfig

<ParamField body="type" type="typing.Literal[Any]" default="exact-match" required />

<ParamField body="namespace" type="typing.Optional[str]">
  Cache namespace (defaults to 'default' if not provided)
</ParamField>

<ParamField body="ttl" type="float" default="3600.0" required>
  Time-to-live for cached entries in seconds (max 3 days)
</ParamField>

## ExternalBlobStorageSource

<ParamField body="type" type="typing.Literal[Any]" default="external" required />

<ParamField body="uri" type="str" required>
  URI referencing a path in the blob storage bucket linked to the MLRepo
</ParamField>

## FastAiFramework

<ParamField body="type" type="typing.Literal[Any]" default="fastai" required />

## FiddlerGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Fiddler for harmful content detection or response faithfulness checks">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/fiddler" required />

<ParamField body="auth_data" type="FiddlerKeyAuth" required>
  [🔗 FiddlerKeyAuth](/docs/truefoundry_sdk/types#fiddlerkeyauth)
</ParamField>

<ParamField body="operation" type="typing.Literal[Any]" default="validate" required>
  The operation type for this guardrail. Fiddler guardrails can only be used for validation.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="FiddlerGuardrailConfigConfig" required>
  [🔗 FiddlerGuardrailConfigConfig](/docs/truefoundry_sdk/types#fiddlerguardrailconfigconfig)
</ParamField>

## FiddlerGuardrailConfigConfig

<ParamField body="guard_type" type="FiddlerGuardType" required>
  [🔗 FiddlerGuardType](/docs/truefoundry_sdk/enums#fiddlerguardtype)
</ParamField>

<ParamField body="threshold" type="typing.Optional[float]">
  Confidence threshold (0.0-1.0) for flagging content. Content scoring above the threshold will be flagged
</ParamField>

## FiddlerKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  API key for the Fiddler account
</ParamField>

## FileInfo

<ParamField body="path" type="str" required>
  Relative path of the file or directory within the artifact version
</ParamField>

<ParamField body="is_dir" type="bool" required>
  Whether this path represents a directory (true) or a file (false)
</ParamField>

<ParamField body="file_size" type="typing.Optional[int]">
  Size of the file in bytes (only present for files, not directories)
</ParamField>

<ParamField body="signed_url" type="typing.Optional[str]">
  Pre-signed URL to download the file directly (only present for files)
</ParamField>

<ParamField body="last_modified" type="typing.Optional[dt.datetime]">
  Timestamp when the file was last modified
</ParamField>

## FlyteLaunchPlan

<ParamField body="id" type="FlyteLaunchPlanId" required>
  [🔗 FlyteLaunchPlanId](/docs/truefoundry_sdk/types#flytelaunchplanid)
</ParamField>

<ParamField body="spec" type="FlyteLaunchPlanSpec" required>
  [🔗 FlyteLaunchPlanSpec](/docs/truefoundry_sdk/types#flytelaunchplanspec)
</ParamField>

<ParamField body="closure" type="typing.Any" required />

## FlyteLaunchPlanId

<ParamField body="resource_type" type="typing_extensions.Annotated[(typing.Literal[Any], Any, Any)]" default="LAUNCH_PLAN" required />

<ParamField body="name" type="str" required />

## FlyteLaunchPlanSpec

<ParamField body="workflow_id" type="typing_extensions.Annotated[(FlyteWorkflowId, Any, Any)]" required>
  [🔗 FlyteWorkflowId](/docs/truefoundry_sdk/types#flyteworkflowid)
</ParamField>

## FlyteTask

<ParamField body="template" type="FlyteTaskTemplate" required>
  [🔗 FlyteTaskTemplate](/docs/truefoundry_sdk/types#flytetasktemplate)
</ParamField>

<ParamField body="description" type="typing.Optional[typing.Any]" />

## FlyteTaskCustom

<ParamField body="truefoundry" type="FlyteTaskCustomTruefoundry" required>
  [🔗 FlyteTaskCustomTruefoundry](/docs/truefoundry_sdk/types#flytetaskcustomtruefoundry)
</ParamField>

## FlyteTaskCustomTruefoundry

**Union, One Of:**

* [🔗 PythonTaskConfig](#pythontaskconfig)
* [🔗 ContainerTaskConfig](#containertaskconfig)
* [🔗 PySparkTaskConfig](#pysparktaskconfig)
* [🔗 DatabricksJobTaskConfig](#databricksjobtaskconfig)

## FlyteTaskId

<ParamField body="resource_type" type="typing_extensions.Annotated[(typing.Literal[Any], Any, Any)]" default="TASK" required />

<ParamField body="name" type="str" required />

## FlyteTaskTemplate

<ParamField body="id" type="FlyteTaskId" required>
  [🔗 FlyteTaskId](/docs/truefoundry_sdk/types#flytetaskid)
</ParamField>

<ParamField body="custom" type="FlyteTaskCustom" required>
  [🔗 FlyteTaskCustom](/docs/truefoundry_sdk/types#flytetaskcustom)
</ParamField>

## FlyteWorkflow

<ParamField body="template" type="FlyteWorkflowTemplate" required>
  [🔗 FlyteWorkflowTemplate](/docs/truefoundry_sdk/types#flyteworkflowtemplate)
</ParamField>

<ParamField body="description" type="typing.Optional[typing.Any]" />

## FlyteWorkflowId

<ParamField body="resource_type" type="typing_extensions.Annotated[(typing.Literal[Any], Any, Any)]" default="WORKFLOW" required />

<ParamField body="name" type="str" required />

## FlyteWorkflowTemplate

<ParamField body="id" type="FlyteWorkflowId" required>
  [🔗 FlyteWorkflowId](/docs/truefoundry_sdk/types#flyteworkflowid)
</ParamField>

## ForwardAction

<ParamField body="type" type="typing.Literal[Any]" default="forward" required />

<ParamField body="service_uri" type="str" required>
  Service uri to redirect to. This is the kubernetes fully qualified domain name that the target service can be reached on Eg - For a service called `sample-service` in workspace `ws` this would be \`sample-service.ws.svc.cluster.local
</ParamField>

<ParamField body="port" type="int" required>
  Port to redirect the service traffic to
</ParamField>

## Function

<ParamField body="name" type="str" required>
  Name of the tool/function being called
</ParamField>

<ParamField body="arguments" type="str" required>
  Arguments passed to the tool/function
</ParamField>

## FunctionSchema

<ParamField body="name" type="str" required>
  Name of the function
</ParamField>

<ParamField body="description" type="typing.Optional[str]">
  Description of the function
</ParamField>

<ParamField body="parameters" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Parameters schema for the function
</ParamField>

<ParamField body="strict" type="typing.Optional[bool]">
  Indicates if the function should be called strictly
</ParamField>

## GatewayConfig

**Union, One Of:**

* [🔗 RateLimitConfig](#ratelimitconfig)
* [🔗 LoadBalancingConfig](#loadbalancingconfig)
* [🔗 GuardrailsConfig](#guardrailsconfig)
* [🔗 BudgetConfig](#budgetconfig)
* [🔗 GatewayOtelConfig](#gatewayotelconfig)
* [🔗 GatewayMetadataConfig](#gatewaymetadataconfig)
* [🔗 GatewayLoggingConfig](#gatewayloggingconfig)
* [🔗 GlobalSettings](#globalsettings)
* [🔗 GatewayDataAccessConfig](#gatewaydataaccessconfig)
* [🔗 GatewayDataRoutingConfig](#gatewaydataroutingconfig)

## GatewayConfiguration

<ParamField body="id" type="typing.Optional[str]" />

<ParamField body="tenant_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="type" type="str" required />

<ParamField body="manifest" type="types_config_Config" required>
  [🔗 Config](/docs/truefoundry_sdk/types#config)
</ParamField>

<ParamField body="created_by_subject" type="typing_extensions.Annotated[(Subject, Any, Any)]" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="created_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="updated_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

## GatewayDataAccessConfig

<ParamField body="type" type="typing.Literal[Any]" default="gateway-data-access-config" required />

<ParamField body="rules" type="typing.List[DataAccessRule]" required>
  [🔗 DataAccessRule](/docs/truefoundry_sdk/types#dataaccessrule)

  List of data access rules
</ParamField>

## GatewayDataCreatedByFilter

<ParamField body="field" type="typing.Literal[Any]" default="created_by" required>
  Filter type
</ParamField>

<ParamField body="operator" type="typing.Literal[Any]" default="IN" required>
  Comparison operator
</ParamField>

<ParamField body="value" type="typing.List[str]" required>
  List of subjects (users, virtual accounts, teams) to filter by
</ParamField>

## GatewayDataMetadataFilter

<ParamField body="field" type="typing.Literal[Any]" default="metadata" required>
  Filter type
</ParamField>

<ParamField body="key" type="str" required>
  Metadata key to filter on
</ParamField>

<ParamField body="operator" type="typing.Literal[Any]" default="IN" required>
  Comparison operator
</ParamField>

<ParamField body="value" type="typing.List[str]" required>
  Values to match against
</ParamField>

## GatewayDataRoutingConfig

<ParamField body="type" type="typing.Literal[Any]" default="gateway-data-routing-config" required>
  Type of configuration
</ParamField>

<ParamField body="destinations" type="typing.Optional[typing.List[GatewayDataRoutingConfigDestination]]">
  [🔗 GatewayDataRoutingConfigDestination](/docs/truefoundry_sdk/types#gatewaydataroutingconfigdestination)

  List of conditional routing destinations
</ParamField>

<ParamField body="default" type="GatewayDataRoutingConfigDestinationStorage" required>
  [🔗 GatewayDataRoutingConfigDestinationStorage](/docs/truefoundry_sdk/types#gatewaydataroutingconfigdestinationstorage)
</ParamField>

## GatewayDataRoutingConfigDestination

<ParamField body="name" type="str" required>
  Name for the destination
</ParamField>

<ParamField body="enabled" type="bool" required>
  Whether this destination is enabled
</ParamField>

<ParamField body="description" type="typing.Optional[str]">
  Description of the destination
</ParamField>

<ParamField body="when" type="typing.List[GatewayDataRoutingConfigDestinationCondition]" required>
  [🔗 GatewayDataRoutingConfigDestinationCondition](/docs/truefoundry_sdk/types#gatewaydataroutingconfigdestinationcondition)

  Conditions that must be met to use this destination
</ParamField>

## GatewayDataRoutingConfigDestinationCondition

**Union, One Of:**

* [🔗 GatewayDataRoutingConfigDestinationMetadataCondition](#gatewaydataroutingconfigdestinationmetadatacondition)
* [🔗 GatewayDataRoutingConfigDestinationCreatedByCondition](#gatewaydataroutingconfigdestinationcreatedbycondition)

## GatewayDataRoutingConfigDestinationControlPlaneManagedStorage

<ParamField body="type" type="typing.Literal[Any]" default="controlplane-managed" required>
  Type of storage configuration
</ParamField>

<ParamField body="region" type="typing.Optional[GatewayDataRoutingConfigDestinationControlPlaneManagedStorageRegion]">
  [🔗 GatewayDataRoutingConfigDestinationControlPlaneManagedStorageRegion](/docs/truefoundry_sdk/enums#gatewaydataroutingconfigdestinationcontrolplanemanagedstorageregion)

  Specifies the region where control plane–managed storage is located.
</ParamField>

## GatewayDataRoutingConfigDestinationCreatedByCondition

<ParamField body="field" type="typing.Literal[Any]" default="created_by" required>
  Field to evaluate the condition on
</ParamField>

<ParamField body="operator" type="typing.Literal[Any]" default="IN" required>
  Operator to use for comparison
</ParamField>

<ParamField body="value" type="typing.List[str]" required>
  Value to compare against
</ParamField>

## GatewayDataRoutingConfigDestinationCustomerManagedStorage

<ParamField body="type" type="typing.Literal[Any]" default="customer-managed" required>
  Type of storage configuration
</ParamField>

<ParamField body="storage_integration_fqn" type="str" required>
  Storage Integration FQN to store traces and spans. A storage integration represents a connected blob storage like AWS S3 / Azure Blob Storage / Google Cloud Storage.
</ParamField>

## GatewayDataRoutingConfigDestinationMetadataCondition

<ParamField body="field" type="typing.Literal[Any]" default="metadata" required>
  Field to evaluate the condition on
</ParamField>

<ParamField body="key" type="str" required>
  Metadata key to match
</ParamField>

<ParamField body="operator" type="typing.Literal[Any]" default="IN" required>
  Operator to use for comparison
</ParamField>

<ParamField body="value" type="typing.List[str]" required>
  Value to compare against
</ParamField>

## GatewayDataRoutingConfigDestinationStorage

<ParamField body="storage" type="GatewayDataRoutingConfigDestinationStorageStorage" required>
  [🔗 GatewayDataRoutingConfigDestinationStorageStorage](/docs/truefoundry_sdk/types#gatewaydataroutingconfigdestinationstoragestorage)

  Storage configuration for traces and spans
</ParamField>

<ParamField body="traces_retention_period_days" type="typing.Optional[int]">
  Number of days to retain traces (this does not affect metrics storage)
</ParamField>

## GatewayDataRoutingConfigDestinationStorageStorage

**Union, One Of:**

* [🔗 GatewayDataRoutingConfigDestinationControlPlaneManagedStorage](#gatewaydataroutingconfigdestinationcontrolplanemanagedstorage)
* [🔗 GatewayDataRoutingConfigDestinationCustomerManagedStorage](#gatewaydataroutingconfigdestinationcustomermanagedstorage)

## GatewayLoggingConfig

<ParamField body="name" type="str" required>
  Name of the logging configuration
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="gateway-logging-config" required />

<ParamField body="rules" type="typing.List[GatewayLoggingRule]" required>
  [🔗 GatewayLoggingRule](/docs/truefoundry_sdk/types#gatewayloggingrule)

  List of logging rules
</ParamField>

## GatewayLoggingRule

<ParamField body="id" type="str" required>
  Unique identifier for the rule
</ParamField>

<ParamField body="when" type="GatewayLoggingWhen" required>
  [🔗 GatewayLoggingWhen](/docs/truefoundry_sdk/types#gatewayloggingwhen)
</ParamField>

<ParamField body="tracing_project_fqn" type="str" required>
  FQN of the tracing project to send logs to
</ParamField>

## GatewayLoggingWhen

<ParamField body="subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that this rule applies to
</ParamField>

## GatewayMetadataConfig

<ParamField body="name" type="str" required>
  Name of the metadata configuration
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="gateway-metadata-config" required />

<ParamField body="rules" type="typing.List[GatewayMetadataRule]" required>
  [🔗 GatewayMetadataRule](/docs/truefoundry_sdk/types#gatewaymetadatarule)

  List of metadata rules
</ParamField>

## GatewayMetadataRule

<ParamField body="id" type="str" required>
  Unique identifier for the rule
</ParamField>

<ParamField body="when" type="GatewayMetadataWhen" required>
  [🔗 GatewayMetadataWhen](/docs/truefoundry_sdk/types#gatewaymetadatawhen)
</ParamField>

<ParamField body="metadata_override" type="typing.Dict[(str, str)]" required>
  Metadata key-value pairs to override in the request metadata
</ParamField>

## GatewayMetadataWhen

<ParamField body="subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that this rule applies to
</ParamField>

## GatewayOtelConfig

<ParamField body="type" type="typing.Literal[Any]" default="gateway-otel-config" required />

<ParamField body="otel_traces_exporter_config" type="typing.Optional[GatewayOtelConfigOtelTracesExporterConfig]">
  [🔗 GatewayOtelConfigOtelTracesExporterConfig](/docs/truefoundry_sdk/types#gatewayotelconfigoteltracesexporterconfig)

  Set this configuration to export LLM gateway OTEL traces to an external platform. Note that we only export OTEL traces via this configuration.
</ParamField>

<ParamField body="otel_metrics_exporter_config" type="typing.Optional[GatewayOtelConfigOtelMetricsExporterConfig]">
  [🔗 GatewayOtelConfigOtelMetricsExporterConfig](/docs/truefoundry_sdk/types#gatewayotelconfigotelmetricsexporterconfig)

  Set this configuration to export LLM gateway OTEL metrics to an external platform. Note that we only export OTEL metrics via this configuration.
</ParamField>

## GatewayOtelConfigOtelMetricsExporterConfig

**Union, One Of:**

* [🔗 OtelMetricsExporterHttpConfig](#otelmetricsexporterhttpconfig)
* [🔗 OtelMetricsExporterGrpcConfig](#otelmetricsexportergrpcconfig)

## GatewayOtelConfigOtelTracesExporterConfig

**Union, One Of:**

* [🔗 OtelTracesExporterHttpConfig](#oteltracesexporterhttpconfig)
* [🔗 OtelTracesExporterGrpcConfig](#oteltracesexportergrpcconfig)

## GatewayRequestMetadataFilter

<ParamField body="gateway_request_metadata_key" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="operator" type="GatewayRequestMetadataFilterOperator" required>
  [🔗 GatewayRequestMetadataFilterOperator](/docs/truefoundry_sdk/enums#gatewayrequestmetadatafilteroperator)
</ParamField>

<ParamField body="value" type="GatewayRequestMetadataFilterValue" required>
  [🔗 GatewayRequestMetadataFilterValue](/docs/truefoundry_sdk/types#gatewayrequestmetadatafiltervalue)
</ParamField>

## GatewayRequestMetadataFilterValue

**Union, One Of:**

* [🔗 str](#str)

## GcpApiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="typing_extensions.Annotated[(str, Any, Any)]" required />

## GcpGcr

<ParamField body="type" type="typing.Literal[Any]" default="integration/docker-registry/gcp/gcr" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="registry_url" type="str" required>
  The URL of the registry.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[GcpKeyFileAuth]">
  [🔗 GcpKeyFileAuth](/docs/truefoundry_sdk/types#gcpkeyfileauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## GcpGcs

<ParamField body="type" type="typing.Literal[Any]" default="integration/blob-storage/gcp/gcs" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="storage_root" type="str" required>
  The Google Cloud Storage path in the format 'gs\://\<bucket-name>/\<optional-path-prefix>'. Example: 'gs\://mybucket' or 'gs\://mybucket/artifacts/production'.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[GcpKeyFileAuth]">
  [🔗 GcpKeyFileAuth](/docs/truefoundry_sdk/types#gcpkeyfileauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## GcpGkeIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/cluster/gcp/gke-standard" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="location" type="GcpRegion" required>
  [🔗 GcpRegion](/docs/truefoundry_sdk/enums#gcpregion)
</ParamField>

<ParamField body="cluster_name" type="str" required>
  Name of the cluster given in the cloud account.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[GcpKeyFileAuth]">
  [🔗 GcpKeyFileAuth](/docs/truefoundry_sdk/types#gcpkeyfileauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## GcpGsm

<ParamField body="type" type="typing.Literal[Any]" default="integration/secret-store/gcp/gsm" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[GcpKeyFileAuth]">
  [🔗 GcpKeyFileAuth](/docs/truefoundry_sdk/types#gcpkeyfileauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## GcpIntegrations

**Union, One Of:**

* [🔗 GcpGcr](#gcpgcr)
* [🔗 GcpGcs](#gcpgcs)
* [🔗 GcpGsm](#gcpgsm)
* [🔗 GcpGkeIntegration](#gcpgkeintegration)

## GcpKeyFileAuth

<ParamField body="type" type="typing.Literal[Any]" default="key-file" required />

<ParamField body="key_file_content" type="GcpKeyFileAuthKeyFileContent" required>
  [🔗 GcpKeyFileAuthKeyFileContent](/docs/truefoundry_sdk/types#gcpkeyfileauthkeyfilecontent)

  Key File Content - Key file content must be valid JSON
</ParamField>

## GcpKeyFileAuthKeyFileContent

**Union, One Of:**

* [🔗 str](#str)

## GcpProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/gcp" required />

<ParamField body="name" type="str" required>
  The name of the GCP provider account.
</ParamField>

<ParamField body="project_id" type="typing.Optional[str]">
  The project id of the GCP account.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[GcpKeyFileAuth]">
  [🔗 GcpKeyFileAuth](/docs/truefoundry_sdk/types#gcpkeyfileauth)
</ParamField>

<ParamField body="integrations" type="typing.List[GcpIntegrations]" required>
  [🔗 GcpIntegrations](/docs/truefoundry_sdk/types#gcpintegrations)

  List of integrations that are associated with the GCP provider account.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## GcpTpu

<ParamField body="type" type="typing.Literal[Any]" default="gcp_tpu" required />

<ParamField body="name" type="str" required>
  Name of the TPU Type. One of - `tpu-v4-podslice` (TPU v4, ct4p) - `tpu-v5-lite-device` (TPU v5e, ct5l) - `tpu-v5-lite-podslice` (TPU v5e, ct5lp) - `tpu-v5p-slice` (TPU v5p, ct5p)
</ParamField>

<ParamField body="topology" type="str" required>
  Topology of the TPU slices. Currently only single-host topology is supported. Please refer to [TPUs on GKE docs](https://cloud.google.com/kubernetes-engine/docs/concepts/tpus#plan-tpu-configuration) Allowed Values: - `2x2x1` for `tpu-v4-podslice` - One of `1x1`, `2x2`, `2x4` for `tpu-v5-lite-device` and `tpu-v5-lite-podslice` - `2x2x1` for `tpu-v5p-slice`
</ParamField>

## GeminiModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/gemini" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The Google Gemini model identifier (e.g., gemini-2.0-flash, gemini-2.0-flash-lite-preview-02-05, gemini-2.0-flash-lite-preview-02-05). This is the standard model name from Google's Gemini API documentation.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Gemini model (e.g., chat, text, etc.)
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## GenericSecretStoreIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/secret-store/custom/generic" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="base_url" type="str" required>
  Base URL of the generic secret server.
</ParamField>

<ParamField body="auth_data" type="CustomHeaderAuth" required>
  [🔗 CustomHeaderAuth](/docs/truefoundry_sdk/types#customheaderauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## GetAgentSkillResponse

<ParamField body="data" type="AgentSkill" required>
  [🔗 AgentSkill](/docs/truefoundry_sdk/types#agentskill)

  The agent skill data
</ParamField>

## GetAgentSkillVersionResponse

<ParamField body="data" type="AgentSkillVersion" required>
  [🔗 AgentSkillVersion](/docs/truefoundry_sdk/types#agentskillversion)

  The agent skill version data
</ParamField>

## GetAlertsResponse

<ParamField body="data" type="typing.Dict[(str, typing.List[Alert])]" required>
  [🔗 Alert](/docs/truefoundry_sdk/types#alert)

  Object containing alert data grouped by alert name
</ParamField>

## GetApplicationDeploymentResponse

<ParamField body="data" type="Any" required>
  Deployment
</ParamField>

## GetApplicationResponse

<ParamField body="data" type="Any" required>
  Application
</ParamField>

## GetArtifactResponse

<ParamField body="data" type="Artifact" required>
  [🔗 Artifact](/docs/truefoundry_sdk/types#artifact)

  The artifact data
</ParamField>

## GetArtifactVersionResponse

<ParamField body="data" type="ArtifactVersion" required>
  [🔗 ArtifactVersion](/docs/truefoundry_sdk/types#artifactversion)

  The artifact version data
</ParamField>

## GetAuthenticatedVcsurlResponse

<ParamField body="authenticated_url" type="typing_extensions.Annotated[(str, Any, Any)]" required />

## GetAutoProvisioningStateResponse

<ParamField body="state" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  State of auto-provisioning for the cluster.
</ParamField>

## GetChartsResponse

<ParamField body="step" type="str" required>
  Step size
</ParamField>

<ParamField body="graphs" type="typing.List[Graph]" required>
  [🔗 Graph](/docs/truefoundry_sdk/types#graph)
</ParamField>

## GetClusterResponse

<ParamField body="data" type="Cluster" required>
  [🔗 Cluster](/docs/truefoundry_sdk/types#cluster)

  Cluster
</ParamField>

## GetDataDirectoryResponse

<ParamField body="data" type="DataDirectory" required>
  [🔗 DataDirectory](/docs/truefoundry_sdk/types#datadirectory)

  The data directory data
</ParamField>

## GetDockerRegistryCredentialsResponse

<ParamField body="fqn" type="str" required>
  Docker registry FQN
</ParamField>

<ParamField body="registry_url" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="username" type="str" required>
  Docker registry username
</ParamField>

<ParamField body="password" type="str" required>
  Docker registry password
</ParamField>

## GetEnvironmentResponse

<ParamField body="data" type="Environment" required>
  [🔗 Environment](/docs/truefoundry_sdk/types#environment)

  Environment
</ParamField>

## GetEventsResponse

<ParamField body="data" type="typing.List[Event]" required>
  [🔗 Event](/docs/truefoundry_sdk/types#event)
</ParamField>

## GetJobRunResponse

<ParamField body="data" type="JobRun" required>
  [🔗 JobRun](/docs/truefoundry_sdk/types#jobrun)

  JobRun
</ParamField>

## GetLogsResponse

<ParamField body="data" type="typing.List[Log]" required>
  [🔗 Log](/docs/truefoundry_sdk/types#log)

  List of logs
</ParamField>

## GetMlRepoResponse

<ParamField body="data" type="MlRepo" required>
  [🔗 MlRepo](/docs/truefoundry_sdk/types#mlrepo)

  ML Repo
</ParamField>

## GetModelResponse

<ParamField body="data" type="Model" required>
  [🔗 Model](/docs/truefoundry_sdk/types#model)

  The model data
</ParamField>

## GetModelVersionResponse

<ParamField body="data" type="ModelVersion" required>
  [🔗 ModelVersion](/docs/truefoundry_sdk/types#modelversion)

  The model version data
</ParamField>

## GetOrCreatePersonalAccessTokenResponse

<ParamField body="data" type="VirtualAccount" required>
  [🔗 VirtualAccount](/docs/truefoundry_sdk/types#virtualaccount)

  Personal Access Token data
</ParamField>

<ParamField body="token" type="str" required>
  Personal Access Token
</ParamField>

<ParamField body="created" type="bool" required>
  Whether the PAT was created (true) or already existed (false)
</ParamField>

## GetPromptResponse

<ParamField body="data" type="Prompt" required>
  [🔗 Prompt](/docs/truefoundry_sdk/types#prompt)

  The prompt data
</ParamField>

## GetPromptVersionResponse

<ParamField body="data" type="PromptVersion" required>
  [🔗 PromptVersion](/docs/truefoundry_sdk/types#promptversion)

  The prompt version data
</ParamField>

## GetSecretGroupResponse

<ParamField body="data" type="SecretGroup" required>
  [🔗 SecretGroup](/docs/truefoundry_sdk/types#secretgroup)

  Secret Group
</ParamField>

## GetSecretResponse

<ParamField body="data" type="Any" required>
  Secret
</ParamField>

## GetSignedUrLsRequest

<ParamField body="id" type="str" required>
  ID of the artifact version to get signed URLs for
</ParamField>

<ParamField body="paths" type="typing.List[str]" required>
  List of relative file paths within the artifact version to get signed URLs for
</ParamField>

<ParamField body="operation" type="Operation" required>
  [🔗 Operation](/docs/truefoundry_sdk/enums#operation)

  Operation type for the signed URL (e.g., 'READ' or 'WRITE')
</ParamField>

## GetSignedUrLsResponse

<ParamField body="data" type="typing.List[SignedUrl]" required>
  [🔗 SignedUrl](/docs/truefoundry_sdk/types#signedurl)

  List of signed URLs for the requested file paths
</ParamField>

## GetSuggestedDeploymentEndpointResponse

<ParamField body="host" type="str" required>
  Host name
</ParamField>

<ParamField body="path" type="typing.Optional[str]">
  Path
</ParamField>

<ParamField body="gateway" type="typing.Optional[ClusterGateway]">
  [🔗 ClusterGateway](/docs/truefoundry_sdk/types#clustergateway)

  Gateway configuration
</ParamField>

## GetTeamPermissionsResponse

<ParamField body="data" type="typing.List[SubjectPermission]" required>
  [🔗 SubjectPermission](/docs/truefoundry_sdk/types#subjectpermission)

  Role bindings for the team
</ParamField>

## GetTeamResponse

<ParamField body="data" type="Team" required>
  [🔗 Team](/docs/truefoundry_sdk/types#team)

  Teams
</ParamField>

## GetTokenForVirtualAccountResponse

<ParamField body="token" type="str" required>
  Token for the virtual account
</ParamField>

## GetUserPermissionsResponse

<ParamField body="data" type="typing.List[SubjectPermission]" required>
  [🔗 SubjectPermission](/docs/truefoundry_sdk/types#subjectpermission)

  Role bindings for the user (including team-inherited)
</ParamField>

## GetUserResourcesResponse

<ParamField body="data" type="typing.List[UserResource]" required>
  [🔗 UserResource](/docs/truefoundry_sdk/types#userresource)

  Resources where user is a collaborator
</ParamField>

## GetUserResponse

<ParamField body="data" type="User" required>
  [🔗 User](/docs/truefoundry_sdk/types#user)

  User
</ParamField>

## GetUserTeamsResponse

<ParamField body="data" type="typing.List[UserTeamInfo]" required>
  [🔗 UserTeamInfo](/docs/truefoundry_sdk/types#userteaminfo)

  Teams where user is a member, with their role
</ParamField>

## GetVirtualAccountResponse

<ParamField body="data" type="VirtualAccount" required>
  [🔗 VirtualAccount](/docs/truefoundry_sdk/types#virtualaccount)

  Virtual Account
</ParamField>

<ParamField body="token" type="typing.Optional[str]">
  Virtual Account token (present only when creating a virtual account)
</ParamField>

## GetWorkspaceResponse

<ParamField body="data" type="Workspace" required>
  [🔗 Workspace](/docs/truefoundry_sdk/types#workspace)

  Workspace
</ParamField>

## GitHelmRepo

<ParamField body="type" type="typing.Literal[Any]" default="git-helm-repo" required />

<ParamField body="repo_url" type="str" required>
  Git repository URL - Needs to be a valid URL.
</ParamField>

<ParamField body="revision" type="str" required>
  Branch/Commit SHA/Tag of the git repo.
</ParamField>

<ParamField body="path" type="str" required>
  Path to the chart.
</ParamField>

<ParamField body="value_files" type="typing.Optional[typing.List[str]]">
  Helm values files for overriding values in the helm chart. The path is relative to the Path directory defined above
</ParamField>

## GithubIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/vcs/github" required />

<ParamField body="name" type="str" required />

<ParamField body="account_name" type="str" required>
  Account Name
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## GithubProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/github" required />

<ParamField body="name" type="str" required />

<ParamField body="integrations" type="typing.List[GithubIntegration]" required>
  [🔗 GithubIntegration](/docs/truefoundry_sdk/types#githubintegration)
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## GitlabIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/vcs/gitlab" required />

<ParamField body="name" type="str" required />

<ParamField body="account_name" type="str" required>
  Account Name
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## GitlabProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/gitlab" required />

<ParamField body="name" type="str" required />

<ParamField body="integrations" type="typing.List[GitlabIntegration]" required>
  [🔗 GitlabIntegration](/docs/truefoundry_sdk/types#gitlabintegration)
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## GitRepositoryExistsResponse

<ParamField body="exists" type="bool" required>
  The flag if repository exists or not
</ParamField>

<ParamField body="id" type="typing.Optional[str]">
  The integration id of the repository
</ParamField>

## GitSource

<ParamField body="type" type="typing.Literal[Any]" default="git" required />

<ParamField body="repo_url" type="str" required>
  The repository URL.
</ParamField>

<ParamField body="ref" type="str" required>
  The commit SHA.
</ParamField>

<ParamField body="branch_name" type="typing.Optional[str]">
  Selecting branch will select latest commit SHA of the branch.
</ParamField>

## GlobalSettings

<ParamField body="type" type="typing.Literal[Any]" default="gateway-global-settings" required />

<ParamField body="retry_settings" type="typing.Optional[RetryConfig]">
  [🔗 RetryConfig](/docs/truefoundry_sdk/types#retryconfig)
</ParamField>

<ParamField body="logging_settings" type="typing.Optional[LoggingMode]">
  [🔗 LoggingMode](/docs/truefoundry_sdk/types#loggingmode)
</ParamField>

<ParamField body="semantic_cache_settings" type="typing.Optional[SemanticCacheSettings]">
  [🔗 SemanticCacheSettings](/docs/truefoundry_sdk/types#semanticcachesettings)
</ParamField>

## GluonFramework

<ParamField body="type" type="typing.Literal[Any]" default="gluon" required />

## GoogleGeminiProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/google-gemini" required />

<ParamField body="name" type="str" required>
  The name of the Google Gemini provider account
</ParamField>

<ParamField body="auth_data" type="GcpApiKeyAuth" required>
  [🔗 GcpApiKeyAuth](/docs/truefoundry_sdk/types#gcpapikeyauth)
</ParamField>

<ParamField body="integrations" type="typing.List[GeminiModel]" required>
  [🔗 GeminiModel](/docs/truefoundry_sdk/types#geminimodel)

  List of integrations that are associated with the Google Gemini provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## GoogleModelArmorApiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  Google Cloud API key with Model Armor access
</ParamField>

## GoogleModelArmorGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Google Cloud Model Armor for prompt injection, harmful content, PII, and malicious URI detection">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/google-model-armor" required />

<ParamField body="auth_data" type="GoogleModelArmorGuardrailConfigAuthData" required>
  [🔗 GoogleModelArmorGuardrailConfigAuthData](/docs/truefoundry_sdk/types#googlemodelarmorguardrailconfigauthdata)

  Authentication credentials for Google Cloud Model Armor
</ParamField>

<ParamField body="operation" type="GoogleModelArmorGuardrailConfigOperation" required>
  [🔗 GoogleModelArmorGuardrailConfigOperation](/docs/truefoundry_sdk/enums#googlemodelarmorguardrailconfigoperation)

  The operation type to use for the Guardrail. Validate guardrails are used to validate requests and mutate can validate as well as mutate requests.
</ParamField>

<ParamField body="priority" type="typing.Optional[int]" default="1">
  Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="GoogleModelArmorGuardrailConfigConfig" required>
  [🔗 GoogleModelArmorGuardrailConfigConfig](/docs/truefoundry_sdk/types#googlemodelarmorguardrailconfigconfig)
</ParamField>

## GoogleModelArmorGuardrailConfigAuthData

**Union, One Of:**

* [🔗 GoogleModelArmorApiKeyAuth](#googlemodelarmorapikeyauth)
* [🔗 GoogleModelArmorKeyFileAuth](#googlemodelarmorkeyfileauth)

## GoogleModelArmorGuardrailConfigConfig

<ParamField body="project_id" type="str" required>
  The Google Cloud project ID where Model Armor is enabled
</ParamField>

<ParamField body="location" type="GcpRegion" required>
  [🔗 GcpRegion](/docs/truefoundry_sdk/enums#gcpregion)
</ParamField>

<ParamField body="template_id" type="str" required>
  The Model Armor template name that defines which filters and confidence thresholds to apply (e.g. my-template)
</ParamField>

## GoogleModelArmorKeyFileAuth

<ParamField body="type" type="typing.Literal[Any]" default="key-file" required />

<ParamField body="key_file_content" type="GoogleModelArmorKeyFileAuthKeyFileContent" required>
  [🔗 GoogleModelArmorKeyFileAuthKeyFileContent](/docs/truefoundry_sdk/types#googlemodelarmorkeyfileauthkeyfilecontent)

  The JSON content of your Google Cloud service account key file with Model Armor permissions
</ParamField>

## GoogleModelArmorKeyFileAuthKeyFileContent

**Union, One Of:**

* [🔗 str](#str)

## GoogleVertexProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/google-vertex" required />

<ParamField body="name" type="str" required>
  The name of the Google Vertex provider account
</ParamField>

<ParamField body="project_id" type="str" required>
  The Google Cloud project ID where Vertex AI is enabled
</ParamField>

<ParamField body="region" type="VertexRegion" required>
  [🔗 VertexRegion](/docs/truefoundry_sdk/enums#vertexregion)
</ParamField>

<ParamField body="auth_data" type="typing.Optional[GoogleVertexProviderAccountAuthData]">
  [🔗 GoogleVertexProviderAccountAuthData](/docs/truefoundry_sdk/types#googlevertexprovideraccountauthdata)

  Service account key JSON, or Workload Identity Federation file (workload-identity-federation-file) with external\_account JSON (e.g. create-cred-config). [https://docs.truefoundry.com/gateway/google-vertex](https://docs.truefoundry.com/gateway/google-vertex)
</ParamField>

<ParamField body="integrations" type="typing.List[VertexModel]" required>
  [🔗 VertexModel](/docs/truefoundry_sdk/types#vertexmodel)

  List of integrations that are associated with the Google Vertex provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## GoogleVertexProviderAccountAuthData

**Union, One Of:**

* [🔗 VertexKeyFileAuth](#vertexkeyfileauth)
* [🔗 VertexWifFileAuth](#vertexwiffileauth)

## Graph

<ParamField body="name" type="str" required>
  Name
</ParamField>

<ParamField body="description" type="str" required>
  Description
</ParamField>

<ParamField body="chart" type="str" required>
  Chart name
</ParamField>

<ParamField body="chart_type" type="typing_extensions.Annotated[(GraphChartType, Any, Any)]" required>
  [🔗 GraphChartType](/docs/truefoundry_sdk/enums#graphcharttype)
</ParamField>

<ParamField body="params" type="str" required>
  Chart params
</ParamField>

## GraySwanCygnalApiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  GraySwan API key for Cygnal access
</ParamField>

## GraySwanCygnalGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="GraySwan Cygnal for policy violation and content safety monitoring">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/grayswan-cygnal" required />

<ParamField body="auth_data" type="GraySwanCygnalApiKeyAuth" required>
  [🔗 GraySwanCygnalApiKeyAuth](/docs/truefoundry_sdk/types#grayswancygnalapikeyauth)
</ParamField>

<ParamField body="operation" type="typing.Literal[Any]" default="validate" required>
  The operation type for this guardrail. GraySwan Cygnal guardrails can only be used for validation.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="GraySwanCygnalGuardrailConfigConfig" required>
  [🔗 GraySwanCygnalGuardrailConfigConfig](/docs/truefoundry_sdk/types#grayswancygnalguardrailconfigconfig)
</ParamField>

## GraySwanCygnalGuardrailConfigConfig

<ParamField body="base_url" type="typing.Optional[str]">
  Optional override for the Cygnal monitor endpoint. Defaults to [https://api.grayswan.ai/cygnal/monitor](https://api.grayswan.ai/cygnal/monitor) if not provided.
</ParamField>

<ParamField body="policy_ids" type="typing.Optional[typing.List[str]]">
  Custom policy IDs to use for monitoring. Rules from all policies are merged in order, with earlier policies taking precedence. If not provided, the default Basic Content Safety policy is applied, refer to [Docs](https://docs.grayswan.ai/cygnal/monitor-requests)
</ParamField>

<ParamField body="rules" type="typing.Optional[typing.Dict[(str, str)]]">
  Custom rule definitions for monitoring. Each key is a rule name and its value is the rule description, refer to [Docs](https://docs.grayswan.ai/cygnal/monitor-requests)
</ParamField>

<ParamField body="reasoning_mode" type="GraySwanCygnalGuardrailConfigConfigReasoningMode" required>
  [🔗 GraySwanCygnalGuardrailConfigConfigReasoningMode](/docs/truefoundry_sdk/enums#grayswancygnalguardrailconfigconfigreasoningmode)

  Controls whether Cygnal uses internal reasoning steps before determining if content violates policy. "off" is fastest, "hybrid" adds moderate reasoning, "thinking" performs guided reasoning for highest quality.
</ParamField>

## GroqKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for Groq authentication
</ParamField>

## GroqModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/groq" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The Groq model identifier (e.g., llama-3.1-8b-instant, openai/gpt-oss-20b). This is the standard model id from Groq's model catalog.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Groq model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## GroqProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/groq" required />

<ParamField body="name" type="str" required>
  The name of the Groq provider account
</ParamField>

<ParamField body="auth_data" type="GroqKeyAuth" required>
  [🔗 GroqKeyAuth](/docs/truefoundry_sdk/types#groqkeyauth)
</ParamField>

<ParamField body="integrations" type="typing.List[GroqIntegrations]" required>
  List of integrations that are associated with the Groq provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## GuardrailConfigGroup

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/guardrail-config-group" required />

<ParamField body="name" type="str" required>
  The name of the Guardrail Config Group.
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this Guardrail Config Group.
</ParamField>

<ParamField body="integrations" type="typing.List[GuardrailConfigIntegrations]" required>
  [🔗 GuardrailConfigIntegrations](/docs/truefoundry_sdk/types#guardrailconfigintegrations)

  List of Guardrail Configs, which are part of this Guardrail Config Group.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## GuardrailConfigIntegrations

**Union, One Of:**

* [🔗 OpenAiModerationsGuardrailConfig](#openaimoderationsguardrailconfig)
* [🔗 AwsBedrockGuardrailConfig](#awsbedrockguardrailconfig)
* [🔗 CustomGuardrailConfig](#customguardrailconfig)
* [🔗 AzurePiiGuardrailConfig](#azurepiiguardrailconfig)
* [🔗 AzureContentSafetyGuardrailConfig](#azurecontentsafetyguardrailconfig)
* [🔗 AzurePromptShieldGuardrailConfig](#azurepromptshieldguardrailconfig)
* [🔗 EnkryptAiGuardrailConfig](#enkryptaiguardrailconfig)
* [🔗 PaloAltoPrismaAirsGuardrailConfig](#paloaltoprismaairsguardrailconfig)
* [🔗 FiddlerGuardrailConfig](#fiddlerguardrailconfig)
* [🔗 PangeaGuardrailConfig](#pangeaguardrailconfig)
* [🔗 PatronusGuardrailConfig](#patronusguardrailconfig)
* [🔗 SecretDetectionGuardrailConfig](#secretdetectionguardrailconfig)
* [🔗 CodeSafetyLinterGuardrailConfig](#codesafetylinterguardrailconfig)
* [🔗 SqlSanitizerGuardrailConfig](#sqlsanitizerguardrailconfig)
* [🔗 RegexGuardrailConfig](#regexguardrailconfig)
* [🔗 TfyContentModerationGuardrailConfig](#tfycontentmoderationguardrailconfig)
* [🔗 TfyPiiGuardrailConfig](#tfypiiguardrailconfig)
* [🔗 TfyPromptInjectionGuardrailConfig](#tfypromptinjectionguardrailconfig)
* [🔗 CedarGuardrailConfig](#cedarguardrailconfig)
* [🔗 OpaGuardrailConfig](#opaguardrailconfig)
* [🔗 GoogleModelArmorGuardrailConfig](#googlemodelarmorguardrailconfig)
* [🔗 GraySwanCygnalGuardrailConfig](#grayswancygnalguardrailconfig)
* [🔗 AktoGuardrailConfig](#aktoguardrailconfig)
* [🔗 TrojAiGuardrailConfig](#trojaiguardrailconfig)

## Guardrails

<ParamField body="input_guardrails" type="typing.Optional[typing.List[str]]">
  List of guardrail names to apply to user input messages before processing.
</ParamField>

<ParamField body="output_guardrails" type="typing.Optional[typing.List[str]]">
  List of guardrail names to apply to AI response messages before returning to user.
</ParamField>

## GuardrailsConfig

<ParamField body="type" type="typing.Literal[Any]" default="gateway-guardrails-config" required />

<ParamField body="rules" type="typing.List[GuardrailsRule]" required>
  [🔗 GuardrailsRule](/docs/truefoundry_sdk/types#guardrailsrule)

  List of guardrail rules
</ParamField>

## GuardrailsRule

<ParamField body="id" type="str" required>
  Unique identifier for the rule
</ParamField>

<ParamField body="when" type="GuardrailsWhen" required>
  [🔗 GuardrailsWhen](/docs/truefoundry_sdk/types#guardrailswhen)
</ParamField>

<ParamField body="llm_input_guardrails" type="typing.List[str]" required>
  Guardrail selectors of the guardrails to apply to the input (format: groupName/guardrailName)
</ParamField>

<ParamField body="llm_output_guardrails" type="typing.List[str]" required>
  Guardrail selectors of the guardrails to apply to the output (format: groupName/guardrailName)
</ParamField>

<ParamField body="mcp_tool_pre_invoke_guardrails" type="typing.List[str]" required>
  Guardrail selectors of the guardrails to apply to the MCP tool pre invoke (format: groupName/guardrailName)
</ParamField>

<ParamField body="mcp_tool_post_invoke_guardrails" type="typing.List[str]" required>
  Guardrail selectors of the guardrails to apply to the MCP tool post invoke (format: groupName/guardrailName)
</ParamField>

## GuardrailsWhen

<ParamField body="target" type="typing.Optional[TargetConditionGroup]">
  [🔗 TargetConditionGroup](/docs/truefoundry_sdk/types#targetconditiongroup)
</ParamField>

<ParamField body="subjects" type="typing.Optional[SubjectConditionGroup]">
  [🔗 SubjectConditionGroup](/docs/truefoundry_sdk/types#subjectconditiongroup)
</ParamField>

<ParamField body="metadata" type="typing.Optional[typing.Dict[(str, str)]]" />

## H2OFramework

<ParamField body="type" type="typing.Literal[Any]" default="h2o" required />

## HashicorpAppRoleAuth

<ParamField body="type" type="typing.Literal[Any]" default="approle" required />

<ParamField body="role_id" type="str" required>
  AppRole role ID for Vault authentication.
</ParamField>

<ParamField body="secret_id" type="str" required>
  AppRole secret ID for Vault authentication.
</ParamField>

## HashicorpProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/hashicorp" required />

<ParamField body="name" type="str" required>
  The name of the HashiCorp Vault provider account.
</ParamField>

<ParamField body="integrations" type="typing.List[HashicorpIntegrations]" required>
  List of integrations that are associated with the HashiCorp Vault provider account.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## HashicorpTokenAuth

<ParamField body="type" type="typing.Literal[Any]" default="token" required />

<ParamField body="token" type="str" required>
  Vault authentication token that you want to use for authentication.
</ParamField>

## HashicorpVaultIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/secret-store/hashicorp/vault" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="vault_url" type="str" required>
  The URL of the HashiCorp Vault server (e.g., [https://vault.example.com:8200](https://vault.example.com:8200)).
</ParamField>

<ParamField body="kv_mount_path" type="str" required>
  Mount path of the KV v2 engine vault to use for secrets.
</ParamField>

<ParamField body="root_path" type="typing.Optional[str]" />

<ParamField body="auth_data" type="HashicorpVaultIntegrationAuthData" required>
  [🔗 HashicorpVaultIntegrationAuthData](/docs/truefoundry_sdk/types#hashicorpvaultintegrationauthdata)

  Authentication data for the Vault integration.
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

<ParamField body="namespace" type="typing.Optional[str]">
  Namespace for vault operations, used for multi-tenancy in HashiCorp Vault Enterprise. Optional for open source Vault.
</ParamField>

## HashicorpVaultIntegrationAuthData

**Union, One Of:**

* [🔗 HashicorpTokenAuth](#hashicorptokenauth)
* [🔗 HashicorpAppRoleAuth](#hashicorpapproleauth)

## HeaderMatch

<ParamField body="type" type="typing.Literal[Any]" default="header" required />

<ParamField body="name" type="str" required>
  Header name to match on
</ParamField>

<ParamField body="exact_match" type="str" required>
  Header value to match on
</ParamField>

## HeaderRoutingConfig

**Union, One Of:**

* [🔗 WeightBasedLoadBalancing](#weightbasedloadbalancing)
* [🔗 LatencyBasedLoadBalancing](#latencybasedloadbalancing)
* [🔗 PriorityBasedLoadBalancing](#prioritybasedloadbalancing)

## HeadersOverride

<ParamField body="remove" type="typing.Optional[typing.List[str]]">
  List of headers to remove from upstream request
</ParamField>

<ParamField body="set_" type="typing_extensions.Annotated[(typing.Optional[typing.Dict[(str, str)]], Any, Any)]" />

## HealthProbe

<ParamField body="config" type="HttpProbe" required>
  [🔗 HttpProbe](/docs/truefoundry_sdk/types#httpprobe)
</ParamField>

<ParamField body="initial_delay_seconds" type="typing.Optional[int]">
  Time to wait after container has started before checking the endpoint
</ParamField>

<ParamField body="period_seconds" type="typing.Optional[int]" default="10">
  How often to check the endpoint
</ParamField>

<ParamField body="timeout_seconds" type="typing.Optional[int]" default="1">
  Time to wait for a response from the endpoint before considering it down
</ParamField>

<ParamField body="success_threshold" type="typing.Optional[int]" default="1">
  Number of successful responses from the endpoint before container is considered healthy
</ParamField>

<ParamField body="failure_threshold" type="typing.Optional[int]" default="3">
  Number of consecutive failures before the container is considered down
</ParamField>

## Helm

<ParamField body="type" type="typing.Literal[Any]" default="helm" required />

<ParamField body="name" type="str" required>
  Name of the Helm deployment. This will be set as the release name of the chart you are deploying.
</ParamField>

<ParamField body="labels" type="typing.Optional[typing.Dict[(str, str)]]">
  Add labels to base argo app
</ParamField>

<ParamField body="source" type="HelmSource" required>
  [🔗 HelmSource](/docs/truefoundry_sdk/types#helmsource)

  Source helm repository
</ParamField>

<ParamField body="values" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Values file as block file
</ParamField>

<ParamField body="kustomize" type="typing.Optional[Kustomize]">
  [🔗 Kustomize](/docs/truefoundry_sdk/types#kustomize)
</ParamField>

<ParamField body="ignore_differences" type="typing_extensions.Annotated[(typing.Optional[typing.List[typing.Dict[(str, typing.Any)]]], Any, Any)]" />

<ParamField body="workspace_fqn" type="typing.Optional[str]">
  Fully qualified name of the workspace
</ParamField>

## HelmRepo

<ParamField body="type" type="typing.Literal[Any]" default="helm-repo" required />

<ParamField body="repo_url" type="str" required>
  Helm repository URL - Needs to be a valid URL.
</ParamField>

<ParamField body="integration_fqn" type="typing.Optional[str]">
  FQN of the helm repo integration. If you can't find your integration here, add it through the [Integrations](/docs/integrations-overview) page
</ParamField>

<ParamField body="chart" type="str" required>
  The helm chart name
</ParamField>

<ParamField body="version" type="str" required>
  Helm chart version
</ParamField>

## HelmSource

**Union, One Of:**

* [🔗 HelmRepo](#helmrepo)
* [🔗 OciRepo](#ocirepo)
* [🔗 GitHelmRepo](#githelmrepo)

## HostedA2AAgent

<ParamField body="type" type="typing.Literal[Any]" default="hosted-a2a-agent" required>
  Type of agent source
</ParamField>

<ParamField body="agent_card_url" type="str" required>
  Agent Card URL for the A2A Agent
</ParamField>

<ParamField body="headers" type="typing.Optional[typing.Dict[(str, str)]]">
  Headers to be sent with the request to the hosted A2A agent. Primarily used for authentication.
</ParamField>

## HttpError

<ParamField body="status_code" type="typing_extensions.Annotated[(int, Any, Any)]" required />

<ParamField body="message" type="str" required>
  Error Message
</ParamField>

<ParamField body="code" type="typing.Optional[HttpErrorCode]">
  [🔗 HttpErrorCode](/docs/truefoundry_sdk/types#httperrorcode)

  Error code
</ParamField>

<ParamField body="details" type="typing.Optional[typing.List[typing.Dict[(str, typing.Any)]]]">
  Error details
</ParamField>

## HttpErrorCode

**Union, One Of:**

* [🔗 int](#int)
* [🔗 str](#str)

## HttpProbe

<ParamField body="type" type="typing.Literal[Any]" default="http" required>
  Request Type
</ParamField>

<ParamField body="path" type="str" required>
  Path to the health check endpoint
</ParamField>

<ParamField body="port" type="int" required>
  Listening port for the health check endpoint
</ParamField>

<ParamField body="host" type="typing.Optional[str]">
  Host name to connect to, defaults to the pod IP
</ParamField>

<ParamField body="scheme" type="typing.Optional[str]" default="HTTP">
  Scheme to use for connecting to the host
</ParamField>

## HttpValidationError

<ParamField body="detail" type="typing.Optional[typing.List[ValidationError]]">
  [🔗 ValidationError](/docs/truefoundry_sdk/types#validationerror)
</ParamField>

## HuggingfaceArtifactSource

<ParamField body="type" type="typing.Literal[Any]" default="huggingface-hub" required />

<ParamField body="model_id" type="str" required>
  Model ID of the artifact to be downloaded
</ParamField>

<ParamField body="revision" type="str" required>
  Revision of the artifact to be downloaded
</ParamField>

<ParamField body="ignore_patterns" type="typing.List[str]" required>
  List of patterns to ignore while downloading the artifact
</ParamField>

<ParamField body="download_path_env_variable" type="str" required>
  Environment variable which will contain the download path of the artifact
</ParamField>

## IChange

<ParamField body="type" type="IChangeOperation" required>
  [🔗 IChangeOperation](/docs/truefoundry_sdk/enums#ichangeoperation)
</ParamField>

<ParamField body="key" type="str" required />

<ParamField body="value" type="typing.Optional[typing.Dict[(str, typing.Any)]]" />

<ParamField body="old_value" type="typing_extensions.Annotated[(typing.Optional[typing.Dict[(str, typing.Any)]], Any, Any)]" />

<ParamField body="changes" type="typing.Optional[typing.List[Any]]" />

## Image

<ParamField body="type" type="typing.Literal[Any]" default="image" required />

<ParamField body="image_uri" type="str" required>
  The image URI. Specify the name of the image and the tag. If the image is in Dockerhub, you can skip registry-url (for e.g. `tensorflow/tensorflow`). You can use an image from a private registry using Advanced fields
</ParamField>

<ParamField body="docker_registry" type="typing.Optional[str]">
  FQN of the container registry. If you can't find your registry here, add it through the [Integrations](/docs/integrations-overview) page
</ParamField>

<ParamField body="command" type="typing.Optional[ImageCommand]">
  [🔗 ImageCommand](/docs/truefoundry_sdk/types#imagecommand)

  Override the command to run when container starts. When deploying a Job, the command can be templatized by defining `params` and referencing them in command E.g. `python main.py --learning_rate \{\{learning_rate\}\}`
</ParamField>

## ImageCommand

**Union, One Of:**

* [🔗 str](#str)

## ImageContentPart

<ParamField body="type" type="typing.Literal[Any]" default="image_url" required>
  Type of the content part
</ParamField>

<ParamField body="image_url" type="ImageContentPartImageUrl" required>
  [🔗 ImageContentPartImageUrl](/docs/truefoundry_sdk/types#imagecontentpartimageurl)

  Image URL linking to the image
</ParamField>

## ImageContentPartImageUrl

<ParamField body="url" type="ImageContentPartImageUrlUrl" required>
  [🔗 ImageContentPartImageUrlUrl](/docs/truefoundry_sdk/types#imagecontentpartimageurlurl)

  Image URL linking to the image
</ParamField>

<ParamField body="detail" type="typing.Optional[str]">
  Details
</ParamField>

## ImageContentPartImageUrlUrl

**Union, One Of:**

* [🔗 str](#str)
* [🔗 BlobStorageReference](#blobstoragereference)

## InfraProviderAccount

**Union, One Of:**

* [🔗 AwsProviderAccount](#awsprovideraccount)
* [🔗 AzureProviderAccount](#azureprovideraccount)
* [🔗 GcpProviderAccount](#gcpprovideraccount)
* [🔗 DockerhubProviderAccount](#dockerhubprovideraccount)
* [🔗 BitbucketProviderAccount](#bitbucketprovideraccount)
* [🔗 CustomProviderAccount](#customprovideraccount)
* [🔗 GithubProviderAccount](#githubprovideraccount)
* [🔗 GitlabProviderAccount](#gitlabprovideraccount)
* [🔗 JfrogProviderAccount](#jfrogprovideraccount)
* [🔗 TtlProviderAccount](#ttlprovideraccount)
* [🔗 TrueFoundryProviderAccount](#truefoundryprovideraccount)
* [🔗 QuayProviderAccount](#quayprovideraccount)
* [🔗 SlackProviderAccount](#slackprovideraccount)
* [🔗 WebhookProviderAccount](#webhookprovideraccount)
* [🔗 PagerDutyProviderAccount](#pagerdutyprovideraccount)
* [🔗 HashicorpProviderAccount](#hashicorpprovideraccount)

## IngressControllerConfig

<ParamField body="ingress_class_name" type="str" default="nginx" required>
  Ingress Class Name
</ParamField>

<ParamField body="tls_enabled" type="typing.Optional[bool]">
  Whether TLS is managed by the ingress controller. If enabled, the ingress object will have TLS configuration.
</ParamField>

## InlineSpecSource

<ParamField body="type" type="typing.Literal[Any]" default="inline" required />

<ParamField body="openapi_spec" type="InlineSpecSourceOpenapiSpec" required>
  [🔗 InlineSpecSourceOpenapiSpec](/docs/truefoundry_sdk/types#inlinespecsourceopenapispec)

  The OpenAPI specification as a JSON object or a JSON/YAML string.
</ParamField>

## InlineSpecSourceOpenapiSpec

**Union, One Of:**

* [🔗 str](#str)

## InNotInOperator

<ParamField body="condition" type="InNotInOperatorCondition" required>
  [🔗 InNotInOperatorCondition](/docs/truefoundry_sdk/enums#innotinoperatorcondition)
</ParamField>

<ParamField body="values" type="typing.List[str]" required />

## InputOutputBasedCostMetricValue

<ParamField body="input" type="NonNegativeFloat" required />

<ParamField body="output" type="NonNegativeFloat" required />

<ParamField body="cache_read" type="typing.Optional[NonNegativeFloat]" />

<ParamField body="cache_write" type="typing.Optional[NonNegativeFloat]" />

<ParamField body="input_tiers" type="typing.Optional[typing.List[PrivatePricingTier]]">
  [🔗 PrivatePricingTier](/docs/truefoundry_sdk/types#privatepricingtier)

  Optional volume-based pricing tiers for input tokens. Tokens up to the first tier use base rate above.
</ParamField>

<ParamField body="output_tiers" type="typing.Optional[typing.List[PrivatePricingTier]]">
  [🔗 PrivatePricingTier](/docs/truefoundry_sdk/types#privatepricingtier)

  Optional volume-based pricing tiers for output tokens. Tokens up to the first tier use base rate above.
</ParamField>

<ParamField body="cache_read_tiers" type="typing.Optional[typing.List[PrivatePricingTier]]">
  [🔗 PrivatePricingTier](/docs/truefoundry_sdk/types#privatepricingtier)

  Optional volume-based pricing tiers for cache read tokens. Tokens up to the first tier use base rate above.
</ParamField>

<ParamField body="cache_write_tiers" type="typing.Optional[typing.List[PrivatePricingTier]]">
  [🔗 PrivatePricingTier](/docs/truefoundry_sdk/types#privatepricingtier)

  Optional volume-based pricing tiers for cache write tokens. Tokens up to the first tier use base rate above.
</ParamField>

## Intercept

<ParamField body="type" type="typing.Literal[Any]" default="intercept" required />

<ParamField body="name" type="str" required>
  Name of the service this intercept is for
</ParamField>

<ParamField body="rules" type="typing.List[InterceptRulesItem]" required>
  [🔗 InterceptRulesItem](/docs/truefoundry_sdk/types#interceptrulesitem)
</ParamField>

## InterceptRulesItem

<ParamField body="port" type="int" required>
  Port of service to be intercepted
</ParamField>

<ParamField body="match" type="typing.Optional[HeaderMatch]">
  [🔗 HeaderMatch](/docs/truefoundry_sdk/types#headermatch)
</ParamField>

<ParamField body="action" type="InterceptRulesItemAction" required>
  [🔗 InterceptRulesItemAction](/docs/truefoundry_sdk/types#interceptrulesitemaction)

  Action to take on succesful match
</ParamField>

## InterceptRulesItemAction

**Union, One Of:**

* [🔗 ForwardAction](#forwardaction)
* [🔗 MirrorAction](#mirroraction)

## InternalArtifactVersion

<ParamField body="id" type="str" required>
  Unique identifier for the artifact version
</ParamField>

<ParamField body="fqn" type="str" required>
  Fully qualified name of the artifact version in the format '\{artifact\_type}:\{tenant\_name}/\{ml\_repo\_name}/\{artifact\_name}:\{version}'
</ParamField>

<ParamField body="created_by_subject" type="Subject" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)

  Subject (user, team, or service account) that created this artifact version
</ParamField>

<ParamField body="created_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was created
</ParamField>

<ParamField body="updated_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was last updated
</ParamField>

<ParamField body="manifest" type="ArtifactManifest" required>
  [🔗 ArtifactManifest](/docs/truefoundry_sdk/types#artifactmanifest)

  Manifest containing metadata for a generic artifact version
</ParamField>

<ParamField body="ml_repo_id" type="str" required>
  ID of the ML Repo that this artifact version belongs to
</ParamField>

<ParamField body="tags" type="typing.Optional[typing.List[str]]">
  List of tags associated with this artifact version for filtering and organization
</ParamField>

<ParamField body="version_alias" type="typing.Optional[str]">
  Optional human-readable version alias (e.g. v1.0.0)
</ParamField>

<ParamField body="usage_code_snippet" type="typing.Optional[str]">
  Code snippet demonstrating how to use this artifact version
</ParamField>

<ParamField body="artifact_id" type="str" required>
  ID of the parent artifact that this version belongs to
</ParamField>

<ParamField body="artifact_fqn" type="str" required>
  Fully qualified name of the parent artifact (internal use only)
</ParamField>

<ParamField body="artifact_size" type="typing.Optional[int]">
  Total size of the artifact version in bytes (internal use only)
</ParamField>

## InternalListArtifactVersionsResponse

<ParamField body="data" type="typing.List[InternalListArtifactVersionsResponseDataItem]" required>
  [🔗 InternalListArtifactVersionsResponseDataItem](/docs/truefoundry_sdk/types#internallistartifactversionsresponsedataitem)

  List of artifact versions and model versions with internal metadata
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information including total count, offset, and limit
</ParamField>

## InternalListArtifactVersionsResponseDataItem

**Union, One Of:**

* [🔗 InternalArtifactVersion](#internalartifactversion)
* [🔗 InternalModelVersion](#internalmodelversion)

## InternalModelVersion

<ParamField body="id" type="str" required>
  Unique identifier for the artifact version
</ParamField>

<ParamField body="fqn" type="str" required>
  Fully qualified name of the artifact version in the format '\{artifact\_type}:\{tenant\_name}/\{ml\_repo\_name}/\{artifact\_name}:\{version}'
</ParamField>

<ParamField body="created_by_subject" type="Subject" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)

  Subject (user, team, or service account) that created this artifact version
</ParamField>

<ParamField body="created_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was created
</ParamField>

<ParamField body="updated_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was last updated
</ParamField>

<ParamField body="manifest" type="ModelManifest" required>
  [🔗 ModelManifest](/docs/truefoundry_sdk/types#modelmanifest)

  Manifest containing metadata specific to the model version
</ParamField>

<ParamField body="ml_repo_id" type="str" required>
  ID of the ML Repo that this artifact version belongs to
</ParamField>

<ParamField body="tags" type="typing.Optional[typing.List[str]]">
  List of tags associated with this artifact version for filtering and organization
</ParamField>

<ParamField body="version_alias" type="typing.Optional[str]">
  Optional human-readable version alias (e.g. v1.0.0)
</ParamField>

<ParamField body="usage_code_snippet" type="typing.Optional[str]">
  Code snippet demonstrating how to use this artifact version
</ParamField>

<ParamField body="model_id" type="str" required>
  ID of the parent model that this version belongs to
</ParamField>

<ParamField body="metrics" type="typing.Optional[typing.List[Metric]]">
  [🔗 Metric](/docs/truefoundry_sdk/types#metric)

  List of metrics associated with this model version
</ParamField>

<ParamField body="deployable" type="typing.Optional[bool]">
  Whether this model version is ready for deployment
</ParamField>

<ParamField body="artifact_fqn" type="str" required>
  Fully qualified name of the parent model (internal use only)
</ParamField>

<ParamField body="artifact_size" type="typing.Optional[int]">
  Total size of the model version in bytes (internal use only)
</ParamField>

## InviteUserResponse

<ParamField body="link" type="str" required />

## IsClusterConnectedResponse

<ParamField body="is_connected" type="typing_extensions.Annotated[(bool, Any, Any)]" required />

## JfrogArtifactsRegistry

<ParamField body="type" type="typing.Literal[Any]" default="integration/docker-registry/jfrog" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="registry_url" type="str" required>
  The URL of the registry.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[JfrogBasicAuth]">
  [🔗 JfrogBasicAuth](/docs/truefoundry_sdk/types#jfrogbasicauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## JfrogBasicAuth

<ParamField body="type" type="typing.Literal[Any]" default="basic-auth" required />

<ParamField body="username" type="str" required>
  The username for the basic authentication.
</ParamField>

<ParamField body="password" type="str" required>
  The password for the basic authentication.
</ParamField>

## JfrogProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/jfrog" required />

<ParamField body="name" type="str" required>
  The name of the provider account.
</ParamField>

<ParamField body="account_name" type="typing.Optional[str]">
  The name of the JFrog account.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[JfrogBasicAuth]">
  [🔗 JfrogBasicAuth](/docs/truefoundry_sdk/types#jfrogbasicauth)
</ParamField>

<ParamField body="integrations" type="typing.List[JFrogIntegrations]" required>
  List of integrations that are associated with the provider account.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## Job

<ParamField body="type" type="typing.Literal[Any]" default="job" required />

<ParamField body="name" type="str" required>
  Name of the job
</ParamField>

<ParamField body="image" type="JobImage" required>
  [🔗 JobImage](/docs/truefoundry_sdk/types#jobimage)

  Specify whether you want to deploy a Docker image or build and deploy from source code
</ParamField>

<ParamField body="trigger" type="JobTrigger" required>
  [🔗 JobTrigger](/docs/truefoundry_sdk/types#jobtrigger)

  Specify the trigger
</ParamField>

<ParamField body="trigger_on_deploy" type="typing.Optional[bool]">
  Trigger the job after deploy immediately
</ParamField>

<ParamField body="params" type="typing.Optional[typing.List[Param]]">
  [🔗 Param](/docs/truefoundry_sdk/types#param)

  Configure params and pass it to create different job runs
</ParamField>

<ParamField body="env" type="typing.Optional[typing.Dict[(str, typing.Optional[str])]]">
  Configure environment variables to be injected in the service either as plain text or secrets. [Docs](https://docs.truefoundry.com/docs/env-variables)
</ParamField>

<ParamField body="resources" type="typing.Optional[Resources]">
  [🔗 Resources](/docs/truefoundry_sdk/types#resources)
</ParamField>

<ParamField body="alerts" type="typing.Optional[typing.List[JobAlert]]">
  [🔗 JobAlert](/docs/truefoundry_sdk/types#jobalert)

  Configure alerts to be sent when the job starts/fails/completes
</ParamField>

<ParamField body="retries" type="typing.Optional[int]">
  Specify the maximum number of attempts to retry a job before it is marked as failed.
</ParamField>

<ParamField body="timeout" type="typing.Optional[int]">
  Job timeout in seconds.
</ParamField>

<ParamField body="concurrency_limit" type="typing.Optional[int]">
  Number of runs that can run concurrently
</ParamField>

<ParamField body="service_account" type="typing.Optional[str]" />

<ParamField body="mounts" type="typing.Optional[typing.List[JobMountsItem]]">
  [🔗 JobMountsItem](/docs/truefoundry_sdk/types#jobmountsitem)

  Configure data to be mounted to job pod(s) as a string, secret or volume. [Docs](https://docs.truefoundry.com/docs/mounting-volumes-job)
</ParamField>

<ParamField body="labels" type="typing.Optional[typing.Dict[(str, str)]]">
  Labels
</ParamField>

<ParamField body="kustomize" type="typing.Optional[Kustomize]">
  [🔗 Kustomize](/docs/truefoundry_sdk/types#kustomize)
</ParamField>

<ParamField body="workspace_fqn" type="typing.Optional[str]">
  Fully qualified name of the workspace
</ParamField>

## JobAlert

<ParamField body="notification_channel" type="typing.Optional[str]">
  Specify the notification channel to send alerts to
</ParamField>

<ParamField body="to_emails" type="typing.Optional[typing.List[str]]">
  List of recipients' email addresses if the notification channel is Email.
</ParamField>

<ParamField body="notification_target" type="typing.Optional[NotificationTarget]">
  [🔗 NotificationTarget](/docs/truefoundry_sdk/types#notificationtarget)
</ParamField>

<ParamField body="on_start" type="typing.Optional[bool]">
  Send an alert when the job starts
</ParamField>

<ParamField body="on_completion" type="typing.Optional[bool]" />

<ParamField body="on_failure" type="typing.Optional[bool]">
  Send an alert when the job fails
</ParamField>

## JobImage

**Union, One Of:**

* [🔗 Build](#build)
* [🔗 Image](#image)

## JobMountsItem

**Union, One Of:**

* [🔗 SecretMount](#secretmount)
* [🔗 StringDataMount](#stringdatamount)
* [🔗 VolumeMount](#volumemount)

## JobRun

<ParamField body="id" type="str" required>
  JobRun ID
</ParamField>

<ParamField body="name" type="str" required>
  JobRun Name
</ParamField>

<ParamField body="application_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="deployment_version" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="created_at" type="typing_extensions.Annotated[(float, Any, Any)]" required />

<ParamField body="end_time" type="typing_extensions.Annotated[(typing.Optional[float], Any, Any)]" />

<ParamField body="duration" type="typing.Optional[int]">
  Duration of JobRun
</ParamField>

<ParamField body="command" type="str" required>
  Command
</ParamField>

<ParamField body="total_retries" type="typing_extensions.Annotated[(int, Any, Any)]" required />

<ParamField body="error" type="typing.Optional[str]">
  Error
</ParamField>

<ParamField body="status" type="JobRunStatus" required>
  [🔗 JobRunStatus](/docs/truefoundry_sdk/enums#jobrunstatus)

  Status of JobRun
</ParamField>

<ParamField body="triggered_by" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="triggered_by_subject" type="typing_extensions.Annotated[(typing.Optional[Subject], Any, Any)]">
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="exit_code" type="typing_extensions.Annotated[(typing.Optional[int], Any, Any)]" />

<ParamField body="spark_ui" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="application_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="deployment_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="tenant_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## JobTrigger

**Union, One Of:**

* [🔗 Manual](#manual)
* [🔗 Schedule](#schedule)

## JobTriggerInput

<ParamField body="command" type="typing.Optional[JobTriggerInputCommand]">
  [🔗 JobTriggerInputCommand](/docs/truefoundry_sdk/types#jobtriggerinputcommand)

  Command
</ParamField>

<ParamField body="params" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Parameters used to populate template command
</ParamField>

## JobTriggerInputCommand

**Union, One Of:**

* [🔗 str](#str)

## JsonObjectResponseFormat

<ParamField body="type" type="typing.Literal[Any]" default="json_object" required />

## JsonSchema

<ParamField body="name" type="str" required>
  Name of the schema
</ParamField>

<ParamField body="schema_" type="typing_extensions.Annotated[(typing.Dict[(str, typing.Any)], Any, Any)]" required />

## JsonSchemaResponseFormat

<ParamField body="type" type="typing.Literal[Any]" default="json_schema" required />

<ParamField body="json_schema" type="JsonSchema" required>
  [🔗 JsonSchema](/docs/truefoundry_sdk/types#jsonschema)
</ParamField>

## Jwt

<ParamField body="id" type="str" required />

<ParamField body="subject_type" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="subject_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="metadata" type="typing.Optional[typing.Dict[(str, typing.Any)]]" />

<ParamField body="expiry" type="dt.datetime" required />

<ParamField body="created_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="updated_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

## JwtAuthConfig

<ParamField body="type" type="typing.Literal[Any]" default="jwt_auth" required />

<ParamField body="integration_fqn" type="str" required>
  FQN of the JWT Auth integration. If you can't find your integration here, add it through the [Integrations](/docs/integrations-overview) page
</ParamField>

<ParamField body="enable_login" type="typing.Optional[bool]">
  Enable login for the service
</ParamField>

<ParamField body="claims" type="typing.Optional[typing.List[JwtAuthConfigClaimsItem]]">
  [🔗 JwtAuthConfigClaimsItem](/docs/truefoundry_sdk/types#jwtauthconfigclaimsitem)

  List of key-value pairs of claims to verify in the JWT token
</ParamField>

<ParamField body="bypass_auth_paths" type="typing.Optional[typing.List[str]]">
  List of paths that will bypass auth. needs to start with a forward slash(/) and should not contain wildcards(\*)
</ParamField>

## JwtAuthConfigClaimsItem

<ParamField body="key" type="str" required />

<ParamField body="values" type="typing.List[str]" required />

## KafkaInputConfig

<ParamField body="type" type="typing.Literal[Any]" default="kafka" required />

<ParamField body="bootstrap_servers" type="str" required>
  'Kafka Bootstrap servers - Comma separated list of Kafka brokers "hostname:port" to connect to for bootstrap'
</ParamField>

<ParamField body="topic_name" type="str" required>
  Kafka topic to subscribe to
</ParamField>

<ParamField body="consumer_group" type="str" required>
  The name of the consumer group to join for dynamic partition assignment
</ParamField>

<ParamField body="tls" type="bool" required>
  TLS configuration for SASL authentication
</ParamField>

<ParamField body="wait_time_seconds" type="typing.Optional[int]" default="10">
  Wait timeout for long polling.
</ParamField>

<ParamField body="auth" type="typing.Optional[KafkaSaslAuth]">
  [🔗 KafkaSaslAuth](/docs/truefoundry_sdk/types#kafkasaslauth)
</ParamField>

## KafkaMetricConfig

<ParamField body="type" type="typing.Literal[Any]" default="kafka" required />

<ParamField body="lag_threshold" type="int" required>
  Upper limit of the number of backlog messages the auto-scaler will try to maintain per replica. If you set this number to 10 and have 30 messages in the stream and one replica, the auto-scaler will scale the number of replicas to 3.
</ParamField>

## KafkaOutputConfig

<ParamField body="type" type="typing.Literal[Any]" default="kafka" required />

<ParamField body="bootstrap_servers" type="str" required>
  'Kafka Bootstrap servers - Comma separated list of Kafka brokers "hostname:port" to connect to for bootstrap'
</ParamField>

<ParamField body="topic_name" type="str" required>
  Kafka topic to publish to
</ParamField>

<ParamField body="tls" type="bool" required>
  TLS configuration for SASL authentication
</ParamField>

<ParamField body="auth" type="typing.Optional[KafkaSaslAuth]">
  [🔗 KafkaSaslAuth](/docs/truefoundry_sdk/types#kafkasaslauth)
</ParamField>

## KafkaSaslAuth

<ParamField body="username" type="str" required>
  Username for SASL authentication
</ParamField>

<ParamField body="password" type="str" required>
  Password for SASL authentication
</ParamField>

## KerasFramework

<ParamField body="type" type="typing.Literal[Any]" default="keras" required />

## Kustomize

<ParamField body="patch" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Content of kustomization.yaml to perform kustomize operation. Please do not include the `resources` section. It is filled in automatically
</ParamField>

<ParamField body="additions" type="typing.Optional[typing.List[typing.Dict[(str, typing.Any)]]]">
  Additional kubernetes manifests to be included in the application
</ParamField>

## LatencyBasedLoadBalanceTarget

<ParamField body="target" type="str" required>
  Target model or provider FQN
</ParamField>

<ParamField body="retry_config" type="typing.Optional[RetryConfig]">
  [🔗 RetryConfig](/docs/truefoundry_sdk/types#retryconfig)
</ParamField>

<ParamField body="fallback_status_codes" type="typing.Optional[typing.List[str]]">
  Status Codes for which the request will fallback to other targets. If the status code is not present in fallback\_status\_codes, it fails immediately.
</ParamField>

<ParamField body="fallback_candidate" type="typing.Optional[bool]">
  Whether this target is a fallback candidate. If set to false, this model will not be considered as a fallback option for targets of this load-balance-rule
</ParamField>

<ParamField body="override_params" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Optional parameters to override in the request
</ParamField>

<ParamField body="headers_override" type="typing.Optional[HeadersOverride]">
  [🔗 HeadersOverride](/docs/truefoundry_sdk/types#headersoverride)
</ParamField>

<ParamField body="metadata_match" type="typing.Optional[typing.Dict[(str, str)]]">
  Optional metadata key-value pairs that must match incoming request metadata headers for this target to be considered for routing.
</ParamField>

## LatencyBasedLoadBalancing

<ParamField body="type" type="typing.Literal[Any]" default="latency-based-routing" required />

<ParamField body="load_balance_targets" type="typing.List[LatencyBasedLoadBalanceTarget]" required>
  [🔗 LatencyBasedLoadBalanceTarget](/docs/truefoundry_sdk/types#latencybasedloadbalancetarget)

  List of targets for latency-based load balancing
</ParamField>

## LatencyBasedLoadBalancingRule

<ParamField body="id" type="str" required>
  Unique identifier for the rule
</ParamField>

<ParamField body="when" type="LoadBalancingWhen" required>
  [🔗 LoadBalancingWhen](/docs/truefoundry_sdk/types#loadbalancingwhen)
</ParamField>

## LegacyAgentManifest

<ParamField body="type" type="typing.Literal[Any]" default="agent" required>
  Type of the manifest
</ParamField>

<ParamField body="name" type="str" required>
  The name of the Agent
</ParamField>

<ParamField body="description" type="str" required>
  The description of the Agent
</ParamField>

<ParamField body="source" type="AgentSource" required>
  [🔗 AgentSource](/docs/truefoundry_sdk/types#agentsource)
</ParamField>

<ParamField body="collaborators" type="typing.List[Collaborator]" required>
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this Agent
</ParamField>

<ParamField body="sample_inputs" type="typing.Optional[typing.List[SampleAgentInput]]">
  [🔗 SampleAgentInput](/docs/truefoundry_sdk/types#sampleagentinput)

  Sample inputs for your agent. These inputs are shown as an example in the "Agent Chat" page. (Click on Try Now in the agent listing page)
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## LightGbmFramework

<ParamField body="type" type="typing.Literal[Any]" default="lightgbm" required />

## ListAgentSkillsResponse

<ParamField body="data" type="typing.List[AgentSkill]" required>
  [🔗 AgentSkill](/docs/truefoundry_sdk/types#agentskill)

  List of agent skills matching the query
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information
</ParamField>

## ListAgentSkillVersionsResponse

<ParamField body="data" type="typing.List[AgentSkillVersion]" required>
  [🔗 AgentSkillVersion](/docs/truefoundry_sdk/types#agentskillversion)

  List of agent skill versions
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information
</ParamField>

## ListApplicationDeploymentsResponse

<ParamField body="data" type="typing.List[Any]" required>
  Array of Deployments
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information
</ParamField>

## ListApplicationsResponse

<ParamField body="data" type="typing.List[Any]" required>
  Array of Applications
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information
</ParamField>

## ListArtifactsResponse

<ParamField body="data" type="typing.List[Artifact]" required>
  [🔗 Artifact](/docs/truefoundry_sdk/types#artifact)

  List of artifacts matching the query
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information including total count, offset, and limit
</ParamField>

## ListArtifactVersionsResponse

<ParamField body="data" type="typing.List[ArtifactVersion]" required>
  [🔗 ArtifactVersion](/docs/truefoundry_sdk/types#artifactversion)

  List of artifact versions matching the query
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information including total count, offset, and limit
</ParamField>

## ListClusterAddonsResponse

<ParamField body="data" type="typing.List[AddonComponent]" required>
  [🔗 AddonComponent](/docs/truefoundry_sdk/types#addoncomponent)

  Array of Cluster Addons
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information
</ParamField>

## ListClustersResponse

<ParamField body="data" type="typing.List[Cluster]" required>
  [🔗 Cluster](/docs/truefoundry_sdk/types#cluster)

  Array of cluster
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information
</ParamField>

## ListDataDirectoriesResponse

<ParamField body="data" type="typing.List[DataDirectory]" required>
  [🔗 DataDirectory](/docs/truefoundry_sdk/types#datadirectory)

  List of data directories matching the query
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information including total count, offset, and limit
</ParamField>

## ListEnvironmentsResponse

<ParamField body="data" type="typing.List[Environment]" required>
  [🔗 Environment](/docs/truefoundry_sdk/types#environment)

  Array of Environments
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information
</ParamField>

## ListFilesRequest

<ParamField body="id" type="str" required>
  ID of the artifact version to list files from
</ParamField>

<ParamField body="path" type="typing.Optional[str]">
  Relative path within the artifact version to list files from (defaults to root)
</ParamField>

<ParamField body="limit" type="typing.Optional[int]">
  Maximum number of files/directories to return
</ParamField>

<ParamField body="page_token" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## ListFilesResponse

<ParamField body="data" type="typing.List[FileInfo]" required>
  [🔗 FileInfo](/docs/truefoundry_sdk/types#fileinfo)

  List of files and directories in the artifact version
</ParamField>

<ParamField body="pagination" type="TokenPagination" required>
  [🔗 TokenPagination](/docs/truefoundry_sdk/types#tokenpagination)

  Pagination information including page tokens for navigation
</ParamField>

## ListJobRunResponse

<ParamField body="data" type="typing.List[JobRun]" required>
  [🔗 JobRun](/docs/truefoundry_sdk/types#jobrun)

  JobRun History
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination Information
</ParamField>

## ListMlReposResponse

<ParamField body="data" type="typing.List[MlRepo]" required>
  [🔗 MlRepo](/docs/truefoundry_sdk/types#mlrepo)

  List of ML Repos matching the query
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information including total count, offset, and limit
</ParamField>

## ListModelsResponse

<ParamField body="data" type="typing.List[Model]" required>
  [🔗 Model](/docs/truefoundry_sdk/types#model)

  List of models matching the query
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information including total count, offset, and limit
</ParamField>

## ListModelVersionsResponse

<ParamField body="data" type="typing.List[ModelVersion]" required>
  [🔗 ModelVersion](/docs/truefoundry_sdk/types#modelversion)

  List of model versions matching the query
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information including total count, offset, and limit
</ParamField>

## ListPersonalAccessTokenResponse

<ParamField body="data" type="typing.List[VirtualAccount]" required>
  [🔗 VirtualAccount](/docs/truefoundry_sdk/types#virtualaccount)

  Array of Personal Access Tokens
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination Information
</ParamField>

## ListPromptsResponse

<ParamField body="data" type="typing.List[Prompt]" required>
  [🔗 Prompt](/docs/truefoundry_sdk/types#prompt)

  List of prompts matching the query
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information including total count, offset, and limit
</ParamField>

## ListPromptVersionsResponse

<ParamField body="data" type="typing.List[PromptVersion]" required>
  [🔗 PromptVersion](/docs/truefoundry_sdk/types#promptversion)

  List of prompt versions matching the query
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information including total count, offset, and limit
</ParamField>

## ListSecretGroupResponse

<ParamField body="data" type="typing.List[SecretGroup]" required>
  [🔗 SecretGroup](/docs/truefoundry_sdk/types#secretgroup)

  Array of Secret Groups
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information
</ParamField>

## ListSecretsResponse

<ParamField body="data" type="typing.List[Any]" required>
  Array of Secrets
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination Information
</ParamField>

## ListTeamsResponse

<ParamField body="data" type="typing.List[Team]" required>
  [🔗 Team](/docs/truefoundry_sdk/types#team)

  Teams
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination Information
</ParamField>

## ListUsersResponse

<ParamField body="data" type="typing.List[User]" required>
  [🔗 User](/docs/truefoundry_sdk/types#user)

  Array of Users
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information
</ParamField>

## ListVirtualAccountResponse

<ParamField body="data" type="typing.List[VirtualAccount]" required>
  [🔗 VirtualAccount](/docs/truefoundry_sdk/types#virtualaccount)

  Array of Virtual Accounts
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination Information
</ParamField>

## ListWorkspacesResponse

<ParamField body="data" type="typing.List[Workspace]" required>
  [🔗 Workspace](/docs/truefoundry_sdk/types#workspace)

  Array of Workspace
</ParamField>

<ParamField body="pagination" type="Pagination" required>
  [🔗 Pagination](/docs/truefoundry_sdk/types#pagination)

  Pagination information
</ParamField>

## LoadBalanceTarget

<ParamField body="target" type="str" required>
  Target model or provider FQN
</ParamField>

<ParamField body="weight" type="int" required>
  Relative weight for routing decisions (higher values mean more traffic)
</ParamField>

<ParamField body="retry_config" type="typing.Optional[RetryConfig]">
  [🔗 RetryConfig](/docs/truefoundry_sdk/types#retryconfig)
</ParamField>

<ParamField body="fallback_status_codes" type="typing.Optional[typing.List[str]]">
  Status Codes for which the request will fallback to other targets. If the status code is not present in fallback\_status\_codes, it fails immediately.
</ParamField>

<ParamField body="fallback_candidate" type="typing.Optional[bool]">
  Whether this target is a fallback candidate. If set to false, this model will not be considered as a fallback option for targets of this load-balance-rule
</ParamField>

<ParamField body="override_params" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Optional parameters to override in the request
</ParamField>

<ParamField body="headers_override" type="typing.Optional[HeadersOverride]">
  [🔗 HeadersOverride](/docs/truefoundry_sdk/types#headersoverride)
</ParamField>

<ParamField body="metadata_match" type="typing.Optional[typing.Dict[(str, str)]]">
  Optional metadata key-value pairs that must match incoming request metadata headers for this target to be considered for routing.
</ParamField>

## LoadBalancingConfig

<ParamField body="type" type="typing.Literal[Any]" default="gateway-load-balancing-config" required />

<ParamField body="rules" type="typing.List[LoadBalancingRule]" required>
  [🔗 LoadBalancingRule](/docs/truefoundry_sdk/types#loadbalancingrule)

  List of load balancing rules
</ParamField>

## LoadBalancingRule

**Union, One Of:**

* [🔗 WeightBasedLoadBalancingRule](#weightbasedloadbalancingrule)
* [🔗 LatencyBasedLoadBalancingRule](#latencybasedloadbalancingrule)
* [🔗 PriorityBasedLoadBalancingRule](#prioritybasedloadbalancingrule)

## LoadBalancingWhen

<ParamField body="subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that this rule applies to
</ParamField>

<ParamField body="models" type="typing.Optional[typing.List[str]]">
  List of models that this rule applies to
</ParamField>

<ParamField body="metadata" type="typing.Optional[typing.Dict[(str, str)]]">
  Metadata key-value pairs that this rule applies to
</ParamField>

## LocalArtifactSource

<ParamField body="type" type="typing.Literal[Any]" default="local" required />

<ParamField body="paths" type="typing.List[ArtifactPath]" required>
  [🔗 ArtifactPath](/docs/truefoundry_sdk/types#artifactpath)

  Array of ArtifactPath objects representing the source and destination paths
</ParamField>

## LocalModelSource

<ParamField body="type" type="typing.Literal[Any]" default="local" required />

<ParamField body="file_or_folder" type="str" required>
  Path to the model file or folder
</ParamField>

## LocalSource

<ParamField body="type" type="typing.Literal[Any]" default="local" required />

<ParamField body="project_root_path" type="str" default="./" required>
  Local project root path.
</ParamField>

<ParamField body="local_build" type="bool" required>
  run docker build locally
</ParamField>

## Log

<ParamField body="job_name" type="typing.Optional[str]">
  Job Name
</ParamField>

<ParamField body="log" type="str" required>
  Log Content
</ParamField>

<ParamField body="stream" type="str" required>
  Log Stream
</ParamField>

<ParamField body="time" type="str" required>
  Log Time
</ParamField>

<ParamField body="container_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## LoggingConfig

<ParamField body="enabled" type="bool" required>
  Whether logging is enabled for the chat prompt
</ParamField>

<ParamField body="tracing_project_fqn" type="typing.Optional[str]">
  The FQN of the tracing project where the logs will be stored
</ParamField>

## LoggingMode

**Union, One Of:**

* [🔗 LoggingModeAlways](#loggingmodealways)
* [🔗 LoggingModeNever](#loggingmodenever)
* [🔗 LoggingModeHeaderControlled](#loggingmodeheadercontrolled)

## LoggingModeAlways

<ParamField body="type" type="typing.Literal[Any]" default="always" required />

## LoggingModeHeaderControlled

<ParamField body="type" type="typing.Literal[Any]" default="header_controlled" required />

<ParamField body="log_body_by_default" type="bool" required>
  Sets the default body logging behaviour when no header is present. Enabling it will log requests by default and clients can opt out. Disabling it will NOT log by default and clients can opt in to log requests.
</ParamField>

## LoggingModeNever

<ParamField body="type" type="typing.Literal[Any]" default="never" required />

## LogsFilterQuery

<ParamField body="match_string" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="type" type="LogsFilterQueryType" required>
  [🔗 LogsFilterQueryType](/docs/truefoundry_sdk/enums#logsfilterquerytype)

  query filter type, `regex` or `substring`
</ParamField>

<ParamField body="operator" type="LogsSearchOperatorType" required>
  [🔗 LogsSearchOperatorType](/docs/truefoundry_sdk/enums#logssearchoperatortype)

  Comparison operator for filter. `equal` or `not_equal`
</ParamField>

## LogsResponse

<ParamField body="logs" type="typing.List[Log]" required>
  [🔗 Log](/docs/truefoundry_sdk/types#log)

  List of logs
</ParamField>

## Manual

<ParamField body="type" type="typing.Literal[Any]" default="manual" required />

## McpServerAuth

**Union, One Of:**

* [🔗 McpServerHeaderAuth](#mcpserverheaderauth)
* [🔗 McpServerOAuth2](#mcpserveroauth2)
* [🔗 McpServerPassthrough](#mcpserverpassthrough)

## McpServerEnvAuth

<ParamField body="type" type="typing.Literal[Any]" default="env" required />

<ParamField body="env" type="typing.Dict[(str, str)]" required>
  Map each env variable to its value. For shared, enter the actual value. For individual, use a placeholder that will be filled in by each user (e.g. API\_KEY \{\{API\_KEY}}).
</ParamField>

<ParamField body="auth_level" type="typing.Optional[McpServerEnvAuthAuthLevel]">
  [🔗 McpServerEnvAuthAuthLevel](/docs/truefoundry_sdk/enums#mcpserverenvauthauthlevel)

  Level at which this authentication will be applied. Values: global (default), per\_user
</ParamField>

## McpServerHeaderAuth

<ParamField body="type" type="typing.Literal[Any]" default="header" required />

<ParamField body="headers" type="typing.Dict[(str, str)]" required>
  Map each header name to its value. For shared, enter the actual value. For individual, use a placeholder that will be filled in by each user (e.g. Bearer \{\{API\_KEY}}).
</ParamField>

<ParamField body="auth_level" type="McpServerHeaderAuthAuthLevel" required>
  [🔗 McpServerHeaderAuthAuthLevel](/docs/truefoundry_sdk/enums#mcpserverheaderauthauthlevel)

  Level at which this authentication will be applied. Values: global (default), per\_user
</ParamField>

## McpServerHeaderOverrideAuth

<ParamField body="type" type="typing.Literal[Any]" default="header" required />

<ParamField body="headers" type="typing.Dict[(str, str)]" required />

## McpServerIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/mcp-server/remote" required />

<ParamField body="name" type="str" required>
  The name of the MCP Server.
</ParamField>

<ParamField body="description" type="str" required>
  Provide a brief description of the purpose of this MCP Server.
</ParamField>

<ParamField body="url" type="str" required>
  The endpoint URL for the MCP Server.
</ParamField>

<ParamField body="transport" type="McpServerIntegrationTransport" required>
  [🔗 McpServerIntegrationTransport](/docs/truefoundry_sdk/enums#mcpserverintegrationtransport)

  The transport protocol to use for communication with the MCP Server.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[McpServerAuth]">
  [🔗 McpServerAuth](/docs/truefoundry_sdk/types#mcpserverauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of teams/users who can use this MCP server.
</ParamField>

## McpServerIntegrations

**Union, One Of:**

* [🔗 McpServerIntegration](#mcpserverintegration)
* [🔗 VirtualMcpServerIntegration](#virtualmcpserverintegration)

## McpServerManifest

**Union, One Of:**

* [🔗 RemoteMcpServerManifest](#remotemcpservermanifest)
* [🔗 VirtualMcpServerManifest](#virtualmcpservermanifest)
* [🔗 OpenApimcpServerManifest](#openapimcpservermanifest)
* [🔗 StdioMcpServerManifest](#stdiomcpservermanifest)

## McpServerOAuth2

<ParamField body="type" type="typing.Literal[Any]" default="oauth2" required>
  OAuth2 authentication
</ParamField>

<ParamField body="grant_type" type="McpServerOAuth2GrantType" required>
  [🔗 McpServerOAuth2GrantType](/docs/truefoundry_sdk/enums#mcpserveroauth2granttype)

  The OAuth2 grant type to use for authentication.
</ParamField>

<ParamField body="authorization_url" type="typing.Optional[str]">
  URL for the authorization request
</ParamField>

<ParamField body="token_url" type="str" required>
  The endpoint to exchange auth code for tokens.
</ParamField>

<ParamField body="client_id" type="typing.Optional[str]">
  client ID for OAuth2 or the TrueFoundry secret FQN containing the client ID.
</ParamField>

<ParamField body="client_secret" type="typing.Optional[str]">
  Client secret or the TrueFoundry secret FQN containing the client secret for OAuth2.
</ParamField>

<ParamField body="registration_url" type="typing.Optional[str]">
  URL for dynamic client registration (RFC 7591). If provided, client credentials will be obtained automatically using the Dynamic Client Registration (DCR) process.
</ParamField>

<ParamField body="code_challenge_methods_supported" type="typing.Optional[typing.List[typing.Literal[Any]]]">
  List of supported PKCE code challenge methods (S256 only)
</ParamField>

<ParamField body="jwt_source" type="McpServerOAuth2JwtSource" required>
  [🔗 McpServerOAuth2JwtSource](/docs/truefoundry_sdk/enums#mcpserveroauth2jwtsource)

  Source of the JWT token to be used for verification.
</ParamField>

<ParamField body="scopes" type="typing.Optional[typing.List[str]]">
  List of scopes to request from the OAuth2 provider.
</ParamField>

## McpServerPassthrough

<ParamField body="type" type="typing.Literal[Any]" default="passthrough" required />

## McpServerProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/mcp-server-group" required />

<ParamField body="name" type="str" required>
  The name of the MCP Server Group.
</ParamField>

<ParamField body="collaborators" type="typing.List[Collaborator]" required>
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of teams/users who can manage this MCP Server Group. These subjects can add new MCP server integrations, can edit existing ones and can also use the MCP server.
</ParamField>

<ParamField body="integrations" type="typing.List[McpServerIntegrations]" required>
  [🔗 McpServerIntegrations](/docs/truefoundry_sdk/types#mcpserverintegrations)

  List of MCP Servers, which are part of this MCP Server Group.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## McpServerSource

<ParamField body="name" type="str" required>
  Name of the MCP server
</ParamField>

<ParamField body="enabled_tools" type="typing.Optional[typing.List[str]]">
  List of tools to enable from this source server.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[McpServerHeaderOverrideAuth]">
  [🔗 McpServerHeaderOverrideAuth](/docs/truefoundry_sdk/types#mcpserverheaderoverrideauth)
</ParamField>

## McpServerToolDetails

<ParamField body="mcp_server_integration_id" type="str" required>
  The integration ID of the MCP server
</ParamField>

<ParamField body="tool_name" type="str" required>
  The name of the tool in the MCP server
</ParamField>

## McpServerWithFqn

<ParamField body="type" type="typing.Literal[Any]" default="mcp-server-fqn" required>
  The FQN of the MCP server
</ParamField>

<ParamField body="integration_fqn" type="str" required>
  The FQN of the MCP server
</ParamField>

<ParamField body="enable_all_tools" type="bool" required>
  Whether to enable all tools from the MCP server
</ParamField>

<ParamField body="tools" type="typing.Optional[typing.List[McpTool]]">
  [🔗 McpTool](/docs/truefoundry_sdk/types#mcptool)

  The tools to enable from the MCP server
</ParamField>

## McpServerWithUrl

<ParamField body="type" type="typing.Literal[Any]" default="mcp-server-url" required>
  The URL of the MCP server
</ParamField>

<ParamField body="url" type="str" required>
  The URL of the MCP server
</ParamField>

<ParamField body="headers" type="typing.Optional[typing.Dict[(str, str)]]">
  The headers to send to the MCP server
</ParamField>

<ParamField body="enable_all_tools" type="bool" required>
  Whether to enable all tools from the MCP server
</ParamField>

<ParamField body="tools" type="typing.Optional[typing.List[McpTool]]">
  [🔗 McpTool](/docs/truefoundry_sdk/types#mcptool)

  The tools to enable from the MCP server
</ParamField>

## McpTool

<ParamField body="name" type="str" required>
  The name of the tool as it appears in the MCP server
</ParamField>

## McpToolSetting

<ParamField body="name" type="str" required>
  The unique name of the tool.
</ParamField>

<ParamField body="description" type="typing.Optional[str]">
  Describe what this tool does. This helps AI models understand when to use it.
</ParamField>

<ParamField body="disabled" type="typing.Optional[bool]">
  Allows to disable the tool.
</ParamField>

## McpToolsOperator

<ParamField body="condition" type="McpToolsOperatorCondition" required>
  [🔗 McpToolsOperatorCondition](/docs/truefoundry_sdk/enums#mcptoolsoperatorcondition)
</ParamField>

<ParamField body="values" type="typing.List[McpToolTarget]" required>
  [🔗 McpToolTarget](/docs/truefoundry_sdk/types#mcptooltarget)
</ParamField>

## McpToolTarget

<ParamField body="name" type="str" required>
  Name of the MCP server
</ParamField>

<ParamField body="enable_all_tools" type="bool" required>
  When enabled, all tools from this MCP server are targeted. Disable to select specific tools.
</ParamField>

<ParamField body="enabled_tools" type="typing.Optional[typing.List[str]]">
  List of specific tools to target from this MCP server.
</ParamField>

## Metadata

<ParamField body="job_run_name_alias" type="typing.Optional[str]">
  Job Run Name Alias
</ParamField>

## Metric

<ParamField body="key" type="str" required>
  Name of the metric
</ParamField>

<ParamField body="value" type="typing.Optional[float]">
  Value of the metric
</ParamField>

<ParamField body="timestamp" type="typing.Optional[int]">
  Timestamp when the metric was recorded (epoch milliseconds)
</ParamField>

<ParamField body="step" type="typing.Optional[int]">
  Training step number when the metric was recorded
</ParamField>

## MirrorAction

<ParamField body="type" type="typing.Literal[Any]" default="mirror" required />

<ParamField body="service_uri" type="str" required>
  Service uri to mirror to. This is the kubernetes fully qualified domain name that the target service can be reached on Eg - For a service called `sample-service` in workspace `ws` this would be \`sample-service.ws.svc.cluster.local
</ParamField>

<ParamField body="port" type="int" required>
  Port to redirect the service traffic to
</ParamField>

<ParamField body="percentage" type="int" required>
  Percentage of requests to mirror
</ParamField>

## MistralAiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for Mistral AI authentication
</ParamField>

## MistralAiModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/mistral-ai" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The Mistral AI model identifier (e.g., mistral-medium-2312, ministral-8b-2410). This is the API Endpoint name from Mistral AI's model catalog.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Mistral AI model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## MistralAiProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/mistral-ai" required />

<ParamField body="name" type="str" required>
  The name of the Mistral AI provider account
</ParamField>

<ParamField body="auth_data" type="MistralAiKeyAuth" required>
  [🔗 MistralAiKeyAuth](/docs/truefoundry_sdk/types#mistralaikeyauth)
</ParamField>

<ParamField body="integrations" type="typing.List[MistralAiIntegrations]" required>
  List of integrations that are associated with the Mistral AI provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## MlRepo

<ParamField body="tenant_name" type="str" required>
  Tenant Name
</ParamField>

<ParamField body="manifest" type="MlRepoManifest" required>
  [🔗 MlRepoManifest](/docs/truefoundry_sdk/types#mlrepomanifest)
</ParamField>

<ParamField body="created_by_subject" type="Subject" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="created_at" type="dt.datetime" required>
  Created At
</ParamField>

<ParamField body="account_id" type="str" required />

<ParamField body="id" type="str" required>
  Experiment Id
</ParamField>

<ParamField body="num_runs" type="typing.Optional[int]">
  Number of runs
</ParamField>

<ParamField body="artifact_type_counts" type="typing.Optional[typing.Dict[(str, int)]]" />

<ParamField body="datasets_count" type="typing.Optional[int]">
  Number of datasets
</ParamField>

## MlRepoManifest

<ParamField body="type" type="typing.Literal[Any]" default="ml-repo" required />

<ParamField body="name" type="str" required>
  Name of the ML Repo.
</ParamField>

<ParamField body="description" type="typing.Optional[str]">
  Description for the ML Repo.
</ParamField>

<ParamField body="storage_integration_fqn" type="str" required>
  Storage Integration to store artifacts and models. A storage integration represents a connected blob storage like AWS S3 / Azure Blob Storage / Google Cloud Storage.
</ParamField>

<ParamField body="collaborators" type="typing.List[Collaborator]" required>
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  Users and Teams that have access to MLRepo
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## Model

<ParamField body="id" type="str" required>
  Unique identifier for the artifact
</ParamField>

<ParamField body="ml_repo_id" type="str" required>
  ID of the ML Repo that this artifact belongs to
</ParamField>

<ParamField body="type" type="typing.Optional[typing.Literal[Any]]">
  Type of the artifact, always 'model' for Model entities
</ParamField>

<ParamField body="name" type="str" required>
  Name of the artifact (alphanumeric characters, hyphens, and underscores only, max 256 characters)
</ParamField>

<ParamField body="fqn" type="str" required>
  Fully qualified name of the artifact in the format '\{artifact\_type}:\{tenant\_name}/\{ml\_repo\_name}/\{artifact\_name}'
</ParamField>

<ParamField body="created_by_subject" type="Subject" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)

  Subject (user, team, or service account) that created this artifact
</ParamField>

<ParamField body="created_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact was created
</ParamField>

<ParamField body="updated_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact was last updated
</ParamField>

<ParamField body="latest_version" type="typing.Optional[ModelVersion]">
  [🔗 ModelVersion](/docs/truefoundry_sdk/types#modelversion)

  The most recent version of this model
</ParamField>

<ParamField body="run_steps" type="typing.Optional[typing.List[int]]">
  List of run step numbers where this artifact was created or updated
</ParamField>

## ModelConfiguration

<ParamField body="provider" type="str" required>
  Name of the provider, must be one of the integration providers configured for the Gateway
</ParamField>

<ParamField body="model" type="str" required>
  Name of the model to be used for generations. This model should be available in the provider
</ParamField>

<ParamField body="parameters" type="typing.Optional[Parameters]">
  [🔗 Parameters](/docs/truefoundry_sdk/types#parameters)

  Parameters to pass to the model when generating
</ParamField>

<ParamField body="extra_parameters" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Arbitrary extra parameters to pass to the model when generating
</ParamField>

## ModelCostMetric

**Union, One Of:**

* [🔗 PerThousandTokensCostMetric](#perthousandtokenscostmetric)
* [🔗 PerThousandEmbeddingTokensCostMetric](#perthousandembeddingtokenscostmetric)
* [🔗 PublicCostMetric](#publiccostmetric)

## ModelManifest

<ParamField body="name" type="str" required>
  Name of the model (alphanumeric characters, hyphens, and underscores only, max 256 characters)
</ParamField>

<ParamField body="metadata" type="typing.Dict[(str, typing.Any)]" required>
  Key value metadata. Should be valid JSON. For e.g. `\{"business-unit": "sales", "quality": "good", "rating": 4.5\}`
</ParamField>

<ParamField body="ml_repo" type="str" required>
  Name of the ML Repo that this model belongs to (must start and end with alphanumeric, 2-100 characters)
</ParamField>

<ParamField body="version" type="typing.Optional[int]">
  Version of the entity
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="model-version" required />

<ParamField body="description" type="typing.Optional[str]" />

<ParamField body="version_alias" type="typing.Optional[str]">
  Version alias is alternate, ideally human readable, version string to reference an artifact version. It should start with `v` followed by alphanumeric and it can include `.` and `-` in between (e.g. `v1.0.0`, `v1-prod`, `v3-dev`, etc)
</ParamField>

<ParamField body="source" type="ModelManifestSource" required>
  [🔗 ModelManifestSource](/docs/truefoundry_sdk/types#modelmanifestsource)
</ParamField>

<ParamField body="framework" type="typing.Optional[ModelManifestFramework]">
  [🔗 ModelManifestFramework](/docs/truefoundry_sdk/types#modelmanifestframework)

  Framework for the model version like Transformers, PyTorch, Sklearn, Xgboost etc with framework specific metadata. This will be used to infer model deployment configuration
</ParamField>

<ParamField body="environment" type="typing.Optional[ModelVersionEnvironment]">
  [🔗 ModelVersionEnvironment](/docs/truefoundry_sdk/types#modelversionenvironment)
</ParamField>

<ParamField body="step" type="typing.Optional[int]">
  Step/Epoch number in an iterative training loop the model version was created. Generally useful when logging a model version from a MLRepo Run
</ParamField>

<ParamField body="run_id" type="typing.Optional[str]">
  ID of the MLRepo Run that generated the model version
</ParamField>

## ModelManifestFramework

**Union, One Of:**

* [🔗 TransformersFramework](#transformersframework)
* [🔗 TensorFlowFramework](#tensorflowframework)
* [🔗 SklearnFramework](#sklearnframework)
* [🔗 PyTorchFramework](#pytorchframework)
* [🔗 KerasFramework](#kerasframework)
* [🔗 XgBoostFramework](#xgboostframework)
* [🔗 LightGbmFramework](#lightgbmframework)
* [🔗 FastAiFramework](#fastaiframework)
* [🔗 H2OFramework](#h2oframework)
* [🔗 OnnxFramework](#onnxframework)
* [🔗 SpaCyFramework](#spacyframework)
* [🔗 StatsModelsFramework](#statsmodelsframework)
* [🔗 GluonFramework](#gluonframework)
* [🔗 PaddleFramework](#paddleframework)

## ModelManifestSource

**Union, One Of:**

* [🔗 TrueFoundryManagedSource](#truefoundrymanagedsource)
* [🔗 ExternalBlobStorageSource](#externalblobstoragesource)
* [🔗 LocalModelSource](#localmodelsource)

## ModelProviderAccount

**Union, One Of:**

* [🔗 AwsBedrockProviderAccount](#awsbedrockprovideraccount)
* [🔗 GoogleVertexProviderAccount](#googlevertexprovideraccount)
* [🔗 GoogleGeminiProviderAccount](#googlegeminiprovideraccount)
* [🔗 AzureOpenAiProviderAccount](#azureopenaiprovideraccount)
* [🔗 AzureFoundryProviderAccount](#azurefoundryprovideraccount)
* [🔗 CohereProviderAccount](#cohereprovideraccount)
* [🔗 Ai21ProviderAccount](#ai21provideraccount)
* [🔗 AnthropicProviderAccount](#anthropicprovideraccount)
* [🔗 DeepinfraProviderAccount](#deepinfraprovideraccount)
* [🔗 GroqProviderAccount](#groqprovideraccount)
* [🔗 MistralAiProviderAccount](#mistralaiprovideraccount)
* [🔗 PerplexityAiProviderAccount](#perplexityaiprovideraccount)
* [🔗 TogetherAiProviderAccount](#togetheraiprovideraccount)
* [🔗 NomicProviderAccount](#nomicprovideraccount)
* [🔗 PalmProviderAccount](#palmprovideraccount)
* [🔗 OllamaProviderAccount](#ollamaprovideraccount)
* [🔗 OpenaiProviderAccount](#openaiprovideraccount)
* [🔗 DatabricksProviderAccount](#databricksprovideraccount)
* [🔗 ClouderaProviderAccount](#clouderaprovideraccount)
* [🔗 SelfHostedModelProviderAccount](#selfhostedmodelprovideraccount)
* [🔗 OpenRouterProviderAccount](#openrouterprovideraccount)
* [🔗 SambaNovaProviderAccount](#sambanovaprovideraccount)
* [🔗 XaiProviderAccount](#xaiprovideraccount)
* [🔗 BasetenProviderAccount](#basetenprovideraccount)
* [🔗 AwsSagemakerProviderAccount](#awssagemakerprovideraccount)
* [🔗 CerebrasProviderAccount](#cerebrasprovideraccount)
* [🔗 SnowflakeCortexProviderAccount](#snowflakecortexprovideraccount)
* [🔗 ElevenLabsProviderAccount](#elevenlabsprovideraccount)
* [🔗 DeepgramProviderAccount](#deepgramprovideraccount)
* [🔗 CartesiaProviderAccount](#cartesiaprovideraccount)
* [🔗 VirtualModelProviderAccount](#virtualmodelprovideraccount)
* [🔗 CustomEndpointProviderAccount](#customendpointprovideraccount)

## ModelVersion

<ParamField body="id" type="str" required>
  Unique identifier for the artifact version
</ParamField>

<ParamField body="fqn" type="str" required>
  Fully qualified name of the artifact version in the format '\{artifact\_type}:\{tenant\_name}/\{ml\_repo\_name}/\{artifact\_name}:\{version}'
</ParamField>

<ParamField body="created_by_subject" type="Subject" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)

  Subject (user, team, or service account) that created this artifact version
</ParamField>

<ParamField body="created_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was created
</ParamField>

<ParamField body="updated_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was last updated
</ParamField>

<ParamField body="manifest" type="ModelManifest" required>
  [🔗 ModelManifest](/docs/truefoundry_sdk/types#modelmanifest)

  Manifest containing metadata specific to the model version
</ParamField>

<ParamField body="ml_repo_id" type="str" required>
  ID of the ML Repo that this artifact version belongs to
</ParamField>

<ParamField body="tags" type="typing.Optional[typing.List[str]]">
  List of tags associated with this artifact version for filtering and organization
</ParamField>

<ParamField body="version_alias" type="typing.Optional[str]">
  Optional human-readable version alias (e.g. v1.0.0)
</ParamField>

<ParamField body="usage_code_snippet" type="typing.Optional[str]">
  Code snippet demonstrating how to use this artifact version
</ParamField>

<ParamField body="model_id" type="str" required>
  ID of the parent model that this version belongs to
</ParamField>

<ParamField body="metrics" type="typing.Optional[typing.List[Metric]]">
  [🔗 Metric](/docs/truefoundry_sdk/types#metric)

  List of metrics associated with this model version
</ParamField>

<ParamField body="deployable" type="typing.Optional[bool]">
  Whether this model version is ready for deployment
</ParamField>

## ModelVersionEnvironment

<ParamField body="python_version" type="typing.Optional[str]">
  Python version to use when running the model
</ParamField>

<ParamField body="pip_packages" type="typing.Optional[typing.List[str]]">
  pip dependencies needed for running the model
</ParamField>

## MultiPartUpload

<ParamField body="storage_provider" type="MultiPartUploadStorageProvider" required>
  [🔗 MultiPartUploadStorageProvider](/docs/truefoundry_sdk/enums#multipartuploadstorageprovider)

  Storage provider being used for the multipart upload (e.g., 'S3\_COMPATIBLE' or 'AZURE\_BLOB')
</ParamField>

<ParamField body="part_signed_urls" type="typing.List[SignedUrl]" required>
  [🔗 SignedUrl](/docs/truefoundry_sdk/types#signedurl)

  List of signed URLs for each part of the multipart upload
</ParamField>

<ParamField body="s3compatible_upload_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="azure_blob_block_ids" type="typing.Optional[typing.List[str]]">
  List of block IDs for Azure Blob Storage multipart upload
</ParamField>

<ParamField body="finalize_signed_url" type="SignedUrl" required>
  [🔗 SignedUrl](/docs/truefoundry_sdk/types#signedurl)

  Signed URL to call after all parts are uploaded to finalize the multipart upload
</ParamField>

## MultiPartUploadResponse

<ParamField body="data" type="MultiPartUpload" required>
  [🔗 MultiPartUpload](/docs/truefoundry_sdk/types#multipartupload)

  Multipart upload information including signed URLs for each part
</ParamField>

## NatsInputConfig

<ParamField body="type" type="typing.Literal[Any]" default="nats" required />

<ParamField body="nats_url" type="str" required>
  Input NATS URL
</ParamField>

<ParamField body="stream_name" type="str" required>
  Name of the NATS stream
</ParamField>

<ParamField body="root_subject" type="str" required>
  Root subject of input NATS
</ParamField>

<ParamField body="consumer_name" type="str" required>
  Consumer name of input NATS
</ParamField>

<ParamField body="wait_time_seconds" type="int" default="19" required>
  Wait timeout for long polling.
</ParamField>

<ParamField body="nats_metrics_url" type="typing.Optional[str]">
  URL for the NATS metrics endpoint. It is compulsory if you want to use NATS autoscaling.
</ParamField>

<ParamField body="auth" type="typing.Optional[NatsUserPasswordAuth]">
  [🔗 NatsUserPasswordAuth](/docs/truefoundry_sdk/types#natsuserpasswordauth)
</ParamField>

## NatsMetricConfig

<ParamField body="type" type="typing.Literal[Any]" default="nats" required />

<ParamField body="lag_threshold" type="int" required>
  Upper limit of the number of backlog messages the auto-scaler will try to maintain per replica. If you set this number to 10 and have 30 messages in the stream and one replica, the auto-scaler will scale the number of replicas to 3.
</ParamField>

## NatsOutputConfig

<ParamField body="type" type="typing.Literal[Any]" default="nats" required />

<ParamField body="nats_url" type="str" required>
  Output NATS URL
</ParamField>

<ParamField body="root_subject" type="str" required>
  Root subject of output NATS
</ParamField>

<ParamField body="auth" type="typing.Optional[NatsUserPasswordAuth]">
  [🔗 NatsUserPasswordAuth](/docs/truefoundry_sdk/types#natsuserpasswordauth)
</ParamField>

## NatsUserPasswordAuth

<ParamField body="account_name" type="str" default="$G" required>
  Name of the NATS account
</ParamField>

<ParamField body="user" type="str" required>
  User for NATS authentication
</ParamField>

<ParamField body="password" type="str" required>
  Password for NATS authentication
</ParamField>

## Nodepool

<ParamField body="name" type="str" required />

<ParamField body="description" type="typing.Optional[str]" />

## NodepoolSelector

<ParamField body="type" type="typing.Literal[Any]" default="nodepool_selector" required />

<ParamField body="nodepools" type="typing.Optional[typing.List[str]]">
  Nodepools where you want to run your workload. Multiple nodepools can be selected. The workload is guaranteed to be scheduled on one of the nodepool
</ParamField>

## NodeSelector

<ParamField body="type" type="typing.Literal[Any]" default="node_selector" required />

<ParamField body="instance_families" type="typing.Optional[typing.List[str]]">
  Instance family of the underlying machine to use. Multiple instance families can be supplied. The workload is guaranteed to be scheduled on one of them.
</ParamField>

<ParamField body="capacity_type" type="typing.Optional[NodeSelectorCapacityType]">
  [🔗 NodeSelectorCapacityType](/docs/truefoundry_sdk/enums#nodeselectorcapacitytype)

  Configure what type of nodes to run the app. By default no placement logic is applied. "spot\_fallback\_on\_demand" will try to place the application on spot nodes but will fallback to on-demand when spot nodes are not available. "spot" will strictly place the application on spot nodes. "on\_demand" will strictly place the application on on-demand nodes.
</ParamField>

## NomicKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for Nomic authentication
</ParamField>

## NomicModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/nomic" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The name of the Nomic model to use
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Nomic model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## NomicProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/nomic" required />

<ParamField body="name" type="str" required>
  The name of the Nomic provider account
</ParamField>

<ParamField body="auth_data" type="NomicKeyAuth" required>
  [🔗 NomicKeyAuth](/docs/truefoundry_sdk/types#nomickeyauth)
</ParamField>

<ParamField body="integrations" type="typing.List[NomicIntegrations]" required>
  List of integrations that are associated with the Nomic provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## Notebook

<ParamField body="type" type="typing.Literal[Any]" default="notebook" required />

<ParamField body="image" type="WorkbenchImage" required>
  [🔗 WorkbenchImage](/docs/truefoundry_sdk/types#workbenchimage)
</ParamField>

<ParamField body="cull_timeout" type="typing.Optional[int]" default="30">
  Stop the notebook instance after this much time in minutes of inactivity. The notebook instance will be stopped even if the notebook is open in your browser, but nothing is running on the notebook.
</ParamField>

## NotebookConfig

<ParamField body="base_domain" type="str" required>
  The base domain for the cluster with which you can access your Notebooks
</ParamField>

## NotificationTarget

**Union, One Of:**

* [🔗 Email](#email)
* [🔗 SlackWebhook](#slackwebhook)
* [🔗 SlackBot](#slackbot)
* [🔗 PagerDuty](#pagerduty)

## NotificationTargetForAlertRule

**Union, One Of:**

* [🔗 Email](#email)
* [🔗 SlackWebhook](#slackwebhook)
* [🔗 SlackBot](#slackbot)
* [🔗 PagerDuty](#pagerduty)

## NvidiaGpu

<ParamField body="type" type="typing.Literal[Any]" default="nvidia_gpu" required />

<ParamField body="name" type="typing.Optional[str]">
  Name of the Nvidia GPU. One of \[P4, P100, V100, T4, A10G, A100\_40GB, A100\_80GB] This field is required for Node Selector and can be ignored in Nodepool Selector. One instance of the card contains the following amount of memory - P4: 8 GB, P100: 16 GB, V100: 16 GB, T4: 16 GB, A10G: 24 GB, A100\_40GB: 40GB, A100\_80GB: 80 GB
</ParamField>

<ParamField body="count" type="int" required>
  Count of GPUs to provide to the application Note the exact count and max count available for a given GPU type depends on cloud provider and cluster type.
</ParamField>

## NvidiaMiggpu

<ParamField body="type" type="typing.Literal[Any]" default="nvidia_mig_gpu" required />

<ParamField body="name" type="typing.Optional[str]">
  Name of the Nvidia GPU. One of \[P4, P100, V100, T4, A10G, A100\_40GB, A100\_80GB] This field is required for Node Selector and can be ignored in Nodepool Selector. One instance of the card contains the following amount of memory - P4: 8 GB, P100: 16 GB, V100: 16 GB, T4: 16 GB, A10G: 24 GB, A100\_40GB: 40GB, A100\_80GB: 80 GB
</ParamField>

<ParamField body="profile" type="NvidiaMiggpuProfile" required>
  [🔗 NvidiaMiggpuProfile](/docs/truefoundry_sdk/enums#nvidiamiggpuprofile)

  Name of the MIG profile to use. One of the following based on gpu type Please refer to [https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#supported-mig-profiles](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#supported-mig-profiles) for more details A30 - \[1g.6gb, 2g.12gb, 4g.24gb] A100 40 GB - \[1g.5gb, 1g.10gb, 2g.10gb, 3g.20gb, 4g.20gb, 7g.40gb] A100 80 GB / H100 80 GB - \[1g.10gb, 1g.20gb, 2g.20gb, 3g.40gb, 4g.40gb, 7g.80gb] H100 94 GB - \[1g.12gb, 1g.24gb, 2g.24gb, 3g.47gb, 4g.47gb, 7g.94gb] H100 96 GB - \[1g.12gb, 1g.24gb, 2g.24gb, 3g.48gb, 4g.48gb, 7g.96gb] H200 141 GB - \[1g.18gb, 1g.35gb, 2g.35gb, 3g.71gb, 4g.71gb] B200 180 GB - \[1g.23gb, 1g.45gb, 2g.45gb, 3g.90gb, 4g.90gb, 7g.180gb]
</ParamField>

## NvidiaTimeslicingGpu

<ParamField body="type" type="typing.Literal[Any]" default="nvidia_timeslicing_gpu" required />

<ParamField body="name" type="typing.Optional[str]">
  Name of the Nvidia GPU. One of \[P4, P100, V100, T4, A10G, A100\_40GB, A100\_80GB] This field is required for Node Selector and can be ignored in Nodepool Selector. One instance of the card contains the following amount of memory - P4: 8 GB, P100: 16 GB, V100: 16 GB, T4: 16 GB, A10G: 24 GB, A100\_40GB: 40GB, A100\_80GB: 80 GB
</ParamField>

<ParamField body="gpu_memory" type="int" required>
  Amount of GPU memory (in MB) to allocate. Please note, this limit is not being enforced today but will be in future. Applications are expected to operate in co-opertative mode
</ParamField>

## OAuth2LoginProvider

<ParamField body="type" type="typing.Literal[Any]" default="oauth2" required />

## OciRepo

<ParamField body="type" type="typing.Literal[Any]" default="oci-repo" required />

<ParamField body="oci_chart_url" type="str" required>
  OCI chart URL - Need to be a valid URL.
</ParamField>

<ParamField body="integration_fqn" type="typing.Optional[str]">
  FQN of the container registry. If you can't find your registry here, add it through the [Integrations](/docs/integrations-overview) page
</ParamField>

<ParamField body="version" type="str" required>
  Helm chart version
</ParamField>

## OllamaKeyAuth

<ParamField body="custom_host" type="str" required>
  The custom host URL for Ollama API
</ParamField>

## OllamaModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/ollama" required />

<ParamField body="name" type="str" required>
  Name to identify this Ollama model in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The name of the Ollama model to use
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Ollama model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## OllamaProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/ollama" required />

<ParamField body="name" type="str" required>
  The name of the Ollama provider account
</ParamField>

<ParamField body="auth_data" type="OllamaKeyAuth" required>
  [🔗 OllamaKeyAuth](/docs/truefoundry_sdk/types#ollamakeyauth)
</ParamField>

<ParamField body="integrations" type="typing.List[OllamaIntegrations]" required>
  List of integrations that are associated with the Ollama provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## OnnxFramework

<ParamField body="type" type="typing.Literal[Any]" default="onnx" required />

## OpaAuth

**Union, One Of:**

* [🔗 OpaHeaderAuth](#opaheaderauth)
* [🔗 OpaBearerAuth](#opabearerauth)

## OpaBearerAuth

<ParamField body="type" type="typing.Literal[Any]" default="bearer-auth" required />

<ParamField body="bearer_token" type="str" required>
  The bearer token for OPA server authentication.
</ParamField>

## OpaGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Open Policy Agent (OPA) for policy-based access control and validation">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/opa" required />

<ParamField body="auth_data" type="typing.Optional[OpaAuth]">
  [🔗 OpaAuth](/docs/truefoundry_sdk/types#opaauth)
</ParamField>

<ParamField body="operation" type="typing.Literal[Any]" default="validate" required>
  The operation type for this guardrail. OPA guardrails can only be used for validation.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="OpaGuardrailConfigConfig" required>
  [🔗 OpaGuardrailConfigConfig](/docs/truefoundry_sdk/types#opaguardrailconfigconfig)
</ParamField>

## OpaGuardrailConfigConfig

<ParamField body="opa_url" type="str" required>
  The base URL of the OPA server (e.g., [https://opa.example.com:8181](https://opa.example.com:8181)). The policy will be queried at \{opa\_url}/v1/data/\{policy\_path}.
</ParamField>

<ParamField body="policy_path" type="str" required>
  The policy path to evaluate in OPA (e.g., "authz/allow", "guardrails/validate"). This corresponds to the package and rule name in your Rego policy. The full query URL will be \{opa\_url}/v1/data/\{policy\_path}.
</ParamField>

## OpaHeaderAuth

<ParamField body="type" type="typing.Literal[Any]" default="header" required />

<ParamField body="headers" type="typing.Dict[(str, str)]" required>
  Custom headers to include in requests to OPA server (e.g., \{"Authorization": "Bearer \<token>", "X-API-Key": "\<key>"})
</ParamField>

## OpenaiApiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  Your OpenAI API key for authentication
</ParamField>

## OpenAiModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/openai" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The OpenAI model identifier (e.g., gpt-4o, gpt-4-turbo, gpt-3.5-turbo, o1-mini). This is the standard model name from OpenAI's API documentation.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the OpenAI model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## OpenAiModerationsGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="OpenAI content moderation for hate, harassment, self-harm, sexual, violence, and illicit content">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/openai-moderations" required />

<ParamField body="auth_data" type="OpenaiApiKeyAuth" required>
  [🔗 OpenaiApiKeyAuth](/docs/truefoundry_sdk/types#openaiapikeyauth)
</ParamField>

<ParamField body="operation" type="typing.Literal[Any]" default="validate" required>
  The operation type for this guardrail. OpenAI Moderation guardrails can only be used for validation.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="OpenAiModerationsGuardrailConfigConfig" required>
  [🔗 OpenAiModerationsGuardrailConfigConfig](/docs/truefoundry_sdk/types#openaimoderationsguardrailconfigconfig)
</ParamField>

## OpenAiModerationsGuardrailConfigConfig

<ParamField body="model" type="str" default="omni-moderation-latest" required>
  The model to use for the OpenAI Moderation API.
</ParamField>

<ParamField body="base_url" type="typing.Optional[str]">
  Optional custom base URL for OpenAI API. If not provided, the default base URL will be used.
</ParamField>

<ParamField body="category_thresholds" type="typing.Optional[typing.Dict[(str, float)]]" />

## OpenaiProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/openai" required />

<ParamField body="name" type="str" required>
  The name of the OpenAI provider account
</ParamField>

<ParamField body="auth_data" type="OpenaiApiKeyAuth" required>
  [🔗 OpenaiApiKeyAuth](/docs/truefoundry_sdk/types#openaiapikeyauth)
</ParamField>

<ParamField body="base_url" type="typing.Optional[str]">
  Optional custom base URL for OpenAI API
</ParamField>

<ParamField body="integrations" type="typing.List[OpenAiIntegrations]" required>
  List of integrations that are associated with the OpenAI provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## OpenApimcpServerManifest

<ParamField body="type" type="typing.Literal[Any]" default="mcp-server/openapi" required />

<ParamField body="name" type="str" required>
  The name of the OpenAPI MCP Server.
</ParamField>

<ParamField body="description" type="str" required>
  Provide a brief description of the purpose of this OpenAPI MCP Server.
</ParamField>

<ParamField body="url" type="str" required>
  The base URL where API requests will be sent. This should be the root endpoint of your API server, without any path suffix.
</ParamField>

<ParamField body="openapi_spec_source" type="OpenApiSpecSource" required>
  [🔗 OpenApiSpecSource](/docs/truefoundry_sdk/types#openapispecsource)
</ParamField>

<ParamField body="tls_settings" type="typing.Optional[CustomTlsSettings]">
  [🔗 CustomTlsSettings](/docs/truefoundry_sdk/types#customtlssettings)
</ParamField>

<ParamField body="enable_all_tools" type="typing.Optional[bool]">
  When enabled, all tools from the OpenAPI spec will be available (up to 30 tools). Disable to select specific tools.
</ParamField>

<ParamField body="tool_settings" type="typing.Optional[typing.List[OpenApimcpToolSetting]]">
  [🔗 OpenApimcpToolSetting](/docs/truefoundry_sdk/types#openapimcptoolsetting)

  The tools to customize from the OpenAPI Server.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[McpServerAuth]">
  [🔗 McpServerAuth](/docs/truefoundry_sdk/types#mcpserverauth)
</ParamField>

<ParamField body="collaborators" type="typing.List[Collaborator]" required>
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  Users and Teams that have access to this OpenAPI Server
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

<ParamField body="tags" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Key-value pairs to categorize this OpenAPI MCP Server (e.g., by owner or environment).
</ParamField>

## OpenApimcpToolSetting

<ParamField body="method" type="OpenApimcpToolSettingMethod" required>
  [🔗 OpenApimcpToolSettingMethod](/docs/truefoundry_sdk/enums#openapimcptoolsettingmethod)

  The HTTP method for this endpoint.
</ParamField>

<ParamField body="path" type="str" required>
  The API endpoint path (e.g., /users/\{id}).
</ParamField>

<ParamField body="name" type="str" required>
  The unique name of this tool, derived from OpenAPI operationId.
</ParamField>

<ParamField body="description" type="str" required>
  Describe what this tool does. This helps AI models understand when to use it.
</ParamField>

## OpenApiSpecSource

**Union, One Of:**

* [🔗 RemoteSpecSource](#remotespecsource)
* [🔗 UploadSpecSource](#uploadspecsource)
* [🔗 InlineSpecSource](#inlinespecsource)

## OpenRouterApiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for OpenRouter authentication
</ParamField>

## OpenRouterModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/openrouter" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The OpenRouter model identifier (e.g., anthropic/claude-3-haiku, openai/gpt-4o-mini). This is the model name from OpenRouter's model catalog.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the OpenRouter model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## OpenRouterProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/openrouter" required />

<ParamField body="name" type="str" required>
  The name of the OpenRouter provider account
</ParamField>

<ParamField body="auth_data" type="OpenRouterApiKeyAuth" required>
  [🔗 OpenRouterApiKeyAuth](/docs/truefoundry_sdk/types#openrouterapikeyauth)
</ParamField>

<ParamField body="integrations" type="typing.List[OpenRouterIntegrations]" required>
  List of integrations that are associated with the OpenRouter provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## OtelExporterGrpcConfigBase

<ParamField body="endpoint" type="str" required>
  Endpoint URL where OpenTelemetry data will be sent
</ParamField>

<ParamField body="headers" type="typing.Optional[typing.Dict[(str, str)]]">
  gRPC metadata to include in OpenTelemetry export requests
</ParamField>

## OtelExporterHttpConfigBase

<ParamField body="endpoint" type="str" required>
  Endpoint URL where OpenTelemetry data will be sent
</ParamField>

<ParamField body="encoding" type="OtelExporterHttpConfigBaseEncoding" required>
  [🔗 OtelExporterHttpConfigBaseEncoding](/docs/truefoundry_sdk/enums#otelexporterhttpconfigbaseencoding)

  Encoding for OpenTelemetry data
</ParamField>

<ParamField body="headers" type="typing.Optional[typing.Dict[(str, str)]]">
  HTTP headers to include in OpenTelemetry export requests
</ParamField>

## OtelMetricsExporterGrpcConfig

<ParamField body="type" type="typing.Literal[Any]" default="grpc" required>
  Configuration type
</ParamField>

## OtelMetricsExporterHttpConfig

<ParamField body="type" type="typing.Literal[Any]" default="http" required>
  Configuration type
</ParamField>

## OtelTracesExporterCommonConfig

<ParamField body="additional_resource_attributes" type="typing.Optional[typing.Dict[(str, str)]]">
  Set additional attributes to append them to existing resource attributes of every exported trace
</ParamField>

<ParamField body="exclude_request_data" type="typing.Optional[bool]">
  Enable to prevent forwarding the LLM or MCP request and response body in exported traces. The following span attributes are dropped: tfy.input, tfy.output, tfy.input\_short\_hand
</ParamField>

<ParamField body="when" type="typing.Optional[typing.List[OtelTracesExporterSpanAttributeFilter]]">
  [🔗 OtelTracesExporterSpanAttributeFilter](/docs/truefoundry_sdk/types#oteltracesexporterspanattributefilter)

  Export spans only when they match all of the following filters. Only matching on spanAttributes with string values in supported.
</ParamField>

## OtelTracesExporterGrpcConfig

<ParamField body="type" type="typing.Literal[Any]" default="grpc" required>
  Configuration type
</ParamField>

## OtelTracesExporterHttpConfig

<ParamField body="type" type="typing.Literal[Any]" default="http" required>
  Configuration type
</ParamField>

## OtelTracesExporterSpanAttributeFilter

<ParamField body="field" type="typing.Literal[Any]" default="spanAttributes" required>
  Type of attribute field to filter on
</ParamField>

<ParamField body="key" type="str" required>
  Key name of the span attribute to filter on
</ParamField>

<ParamField body="operator" type="typing.Literal[Any]" default="IN" required>
  Comparison operator to use for filtering
</ParamField>

<ParamField body="value" type="typing.List[str]" required>
  Values
</ParamField>

## OwnDataAccessRule

<ParamField body="scope" type="typing.Literal[Any]" default="own_data" required>
  Data access scope - access to own data only
</ParamField>

## OwnedBy

<ParamField body="account" type="str" required>
  The name of the account that owns this resource
</ParamField>

## PaddleFramework

<ParamField body="type" type="typing.Literal[Any]" default="paddle" required />

## PagerDuty

<ParamField body="type" type="typing.Literal[Any]" default="pagerduty" required />

<ParamField body="notification_channel" type="str" required>
  Specify the notification channel to send alerts to
</ParamField>

## PagerDutyIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/notification-channel/pagerduty" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="auth_data" type="PagerDutyIntegrationKeyAuth" required>
  [🔗 PagerDutyIntegrationKeyAuth](/docs/truefoundry_sdk/types#pagerdutyintegrationkeyauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## PagerDutyIntegrationKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="pagerduty-integration-auth" required />

<ParamField body="integration_key" type="str" required>
  The integration key for the PagerDuty integration
</ParamField>

<ParamField body="integration_url" type="str" required>
  The integration URL for the PagerDuty integration
</ParamField>

## PagerDutyProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/pagerduty" required />

<ParamField body="name" type="str" required>
  The name of the PagerDuty provider account
</ParamField>

<ParamField body="integrations" type="typing.List[PagerDutyIntegrations]" required>
  [🔗 PagerDutyIntegration](/docs/truefoundry_sdk/types#pagerdutyintegration)

  List of integrations that are associated with the PagerDuty provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## Pagination

<ParamField body="total" type="int" required>
  Total number of items
</ParamField>

<ParamField body="offset" type="typing.Optional[int]">
  Number of items skipped
</ParamField>

<ParamField body="limit" type="typing.Optional[int]">
  Number of items per page
</ParamField>

## PalmKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  Your PaLM API key for authentication
</ParamField>

## PalmModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/palm" required />

<ParamField body="name" type="str" required>
  Name to identify this PaLM model in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The name of the PaLM model to use
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the PaLM model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## PalmProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/palm" required />

<ParamField body="name" type="str" required>
  The name of the PaLM provider account
</ParamField>

<ParamField body="auth_data" type="PalmKeyAuth" required>
  [🔗 PalmKeyAuth](/docs/truefoundry_sdk/types#palmkeyauth)
</ParamField>

<ParamField body="integrations" type="typing.List[PalmIntegrations]" required>
  List of integrations that are associated with the PaLM provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## PaloAltoPrismaAirsGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Palo Alto Prisma AIRS for AI security and content validation">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/palo-alto-prisma-airs" required />

<ParamField body="auth_data" type="PaloAltoPrismaAirsKeyAuth" required>
  [🔗 PaloAltoPrismaAirsKeyAuth](/docs/truefoundry_sdk/types#paloaltoprismaairskeyauth)
</ParamField>

<ParamField body="operation" type="typing.Literal[Any]" default="validate" required>
  The operation type for this guardrail. Palo Alto Prisma AIRS guardrails can only be used for validation.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="PaloAltoPrismaAirsGuardrailConfigConfig" required>
  [🔗 PaloAltoPrismaAirsGuardrailConfigConfig](/docs/truefoundry_sdk/types#paloaltoprismaairsguardrailconfigconfig)
</ParamField>

## PaloAltoPrismaAirsGuardrailConfigConfig

<ParamField body="base_url" type="typing.Optional[str]">
  Optional override for the base URL for Palo Alto Prisma AIRS. Defaults to [https://service.api.aisecurity.paloaltonetworks.com/v1/](https://service.api.aisecurity.paloaltonetworks.com/v1/) if not provided.
</ParamField>

<ParamField body="profile_name" type="str" required>
  The profile name associated with this Guardrail Config.
</ParamField>

<ParamField body="mode" type="typing.Optional[PaloAltoPrismaAirsGuardrailConfigConfigMode]">
  [🔗 PaloAltoPrismaAirsGuardrailConfigConfigMode](/docs/truefoundry_sdk/enums#paloaltoprismaairsguardrailconfigconfigmode)

  Execution mode for the guardrail. Sync waits for the guardrail check to complete before proceeding. Async triggers the check without waiting. Defaults to sync.
</ParamField>

<ParamField body="metadata_key_mapping" type="typing.Optional[typing.Dict[(str, str)]]">
  Map Palo Alto AIRS metadata fields to TrueFoundry request metadata keys. Key is the Palo Alto AIRS metadata field name, value is the corresponding key from X-TFY-METADATA header on the TrueFoundry side. Example: \{"app\_user": "user\_email", "ai\_model": "model\_name"}. Reserved AIRS keys: ai\_model, app\_user, app\_name. [Docs](https://www.truefoundry.com/docs/ai-gateway/palo-alto-airs)
</ParamField>

## PaloAltoPrismaAirsKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  API key for the Palo Alto Prisma AIRS account
</ParamField>

## PangeaGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Pangea textGuard for text security or PII detection and redaction">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/pangea" required />

<ParamField body="auth_data" type="PangeaKeyAuth" required>
  [🔗 PangeaKeyAuth](/docs/truefoundry_sdk/types#pangeakeyauth)
</ParamField>

<ParamField body="operation" type="PangeaGuardrailConfigOperation" required>
  [🔗 PangeaGuardrailConfigOperation](/docs/truefoundry_sdk/enums#pangeaguardrailconfigoperation)

  The operation type to use for the Guardrail. Validate guardrails are used to validate requests and mutate can validate as well as mutate requests.
</ParamField>

<ParamField body="priority" type="typing.Optional[int]" default="1">
  Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="PangeaGuardrailConfigConfig" required>
  [🔗 PangeaGuardrailConfigConfig](/docs/truefoundry_sdk/types#pangeaguardrailconfigconfig)
</ParamField>

## PangeaGuardrailConfigConfig

<ParamField body="guard_type" type="PangeaGuardType" required>
  [🔗 PangeaGuardType](/docs/truefoundry_sdk/enums#pangeaguardtype)
</ParamField>

<ParamField body="domain" type="str" required>
  Domain of the cloud provider and region where your Pangea project is configured. Example: if endpoint is: https\://\<service\_name>.aws.us-west-2.pangea.cloud/v1/text/guard, the input should be: aws.us-west-2.pangea.cloud
</ParamField>

<ParamField body="recipe" type="typing.Optional[str]">
  Recipe key from Pangea console defining security rules and data types to apply
</ParamField>

<ParamField body="overrides" type="typing.Optional[typing.Dict[(str, str)]]">
  Overrides for the Pangea account
</ParamField>

## PangeaKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  API key for the Pangea account
</ParamField>

## Param

<ParamField body="name" type="str" required>
  Name of the param
</ParamField>

<ParamField body="description" type="typing.Optional[str]">
  Description of param
</ParamField>

<ParamField body="default" type="typing.Optional[str]">
  Default value or placeholder
</ParamField>

<ParamField body="param_type" type="typing.Optional[ParamParamType]">
  [🔗 ParamParamType](/docs/truefoundry_sdk/enums#paramparamtype)
</ParamField>

## Parameters

<ParamField body="max_tokens" type="typing.Optional[int]" />

<ParamField body="temperature" type="typing.Optional[float]" />

<ParamField body="top_k" type="typing.Optional[float]" />

<ParamField body="top_p" type="typing.Optional[float]" />

<ParamField body="stop" type="typing.Optional[ParametersStop]">
  [🔗 ParametersStop](/docs/truefoundry_sdk/types#parametersstop)
</ParamField>

## ParametersStop

**Union, One Of:**

* [🔗 str](#str)

## PatronusAnswerRelevanceEvaluator

<ParamField body="type" type="typing.Literal[Any]" default="answer-relevance" required>
  The type of the evaluator to use for the Patronus Guardrail.
</ParamField>

<ParamField body="criteria" type="PatronusAnswerRelevanceCriteria" default="patronus:answer-relevance" required />

## PatronusEvaluator

**Union, One Of:**

* [🔗 PatronusAnswerRelevanceEvaluator](#patronusanswerrelevanceevaluator)
* [🔗 PatronusGliderEvaluator](#patronusgliderevaluator)
* [🔗 PatronusJudgeEvaluator](#patronusjudgeevaluator)
* [🔗 PatronusPiiEvaluator](#patronuspiievaluator)
* [🔗 PatronusPhiEvaluator](#patronusphievaluator)
* [🔗 PatronusToxicityEvaluator](#patronustoxicityevaluator)

## PatronusGliderEvaluator

<ParamField body="type" type="typing.Literal[Any]" default="glider" required>
  The type of the evaluator to use for the Patronus Guardrail.
</ParamField>

<ParamField body="criteria" type="PatronusGliderCriteria" required>
  [🔗 PatronusGliderCriteria](/docs/truefoundry_sdk/enums#patronusglidercriteria)
</ParamField>

## PatronusGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Patronus evaluators for relevance, safety, PII, PHI, toxicity, and more">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/patronus" required />

<ParamField body="auth_data" type="PatronusKeyAuth" required>
  [🔗 PatronusKeyAuth](/docs/truefoundry_sdk/types#patronuskeyauth)
</ParamField>

<ParamField body="operation" type="typing.Literal[Any]" default="validate" required>
  The operation type for this guardrail. Patronus guardrails can only be used for validation.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="PatronusGuardrailConfigConfig" required>
  [🔗 PatronusGuardrailConfigConfig](/docs/truefoundry_sdk/types#patronusguardrailconfigconfig)
</ParamField>

## PatronusGuardrailConfigConfig

<ParamField body="target" type="PatronusGuardrailConfigConfigTarget" required>
  [🔗 PatronusGuardrailConfigConfigTarget](/docs/truefoundry_sdk/enums#patronusguardrailconfigconfigtarget)

  Where to apply evaluation: request (evaluate user input) or response (evaluate model response)
</ParamField>

<ParamField body="evaluators" type="typing.List[PatronusEvaluator]" required>
  [🔗 PatronusEvaluator](/docs/truefoundry_sdk/types#patronusevaluator)

  Patronus evaluators guard against GenAI failures by checking for evaluation criteria, refer to [docs](https://docs.patronus.ai/docs/evaluators/reference_guide)
</ParamField>

## PatronusJudgeEvaluator

<ParamField body="type" type="typing.Literal[Any]" default="judge" required>
  The type of the evaluator to use for the Patronus Guardrail.
</ParamField>

<ParamField body="criteria" type="PatronusJudgeCriteria" required>
  [🔗 PatronusJudgeCriteria](/docs/truefoundry_sdk/enums#patronusjudgecriteria)
</ParamField>

## PatronusKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  API key for the Patronus account
</ParamField>

## PatronusPhiEvaluator

<ParamField body="type" type="typing.Literal[Any]" default="phi" required>
  The type of the evaluator to use for the Patronus Guardrail.
</ParamField>

<ParamField body="criteria" type="PatronusPhiCriteria" default="patronus:phi" required />

## PatronusPiiEvaluator

<ParamField body="type" type="typing.Literal[Any]" default="pii" required>
  The type of the evaluator to use for the Patronus Guardrail.
</ParamField>

<ParamField body="criteria" type="PatronusPiiCriteria" default="patronus:pii" required />

## PatronusToxicityEvaluator

<ParamField body="type" type="typing.Literal[Any]" default="toxicity" required>
  The type of the evaluator to use for the Patronus Guardrail.
</ParamField>

<ParamField body="criteria" type="PatronusToxicityCriteria" default="patronus:toxicity" required />

## Permissions

<ParamField body="resource_fqn" type="str" required>
  The fully qualified name of the resource
</ParamField>

<ParamField body="resource_type" type="str" required>
  The type of the resource (cluster, workspace, etc.)
</ParamField>

<ParamField body="role_id" type="str" required>
  The role id of the role to be assigned to the service account for that resource
</ParamField>

## PerplexityAiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for Perplexity AI authentication
</ParamField>

## PerplexityAiModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/perplexity-ai" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The Perplexity AI model identifier (e.g., sonar-reasoning, sonar). This is the model name from Perplexity AI's API documentation.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Perplexity AI model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## PerplexityAiProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/perplexity-ai" required />

<ParamField body="name" type="str" required>
  The name of the Perplexity AI provider account
</ParamField>

<ParamField body="auth_data" type="PerplexityAiKeyAuth" required>
  [🔗 PerplexityAiKeyAuth](/docs/truefoundry_sdk/types#perplexityaikeyauth)
</ParamField>

<ParamField body="integrations" type="typing.List[PerplexityIntegrations]" required>
  List of integrations that are associated with the Perplexity AI provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## PersonalAccessTokenManifest

<ParamField body="name" type="str" required>
  Personal Access Token Name
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="pat" required />

<ParamField body="expiration_date" type="typing.Optional[str]">
  Expiration Date of the Personal Access Token (should be in the ISO 8601 format)
</ParamField>

<ParamField body="user_fqn" type="str" required>
  The fully qualified name of the user
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## PerThousandEmbeddingTokensCostMetric

<ParamField body="metric" type="str" required />

<ParamField body="value" type="NonNegativeFloat" required />

## PerThousandTokensCostMetric

<ParamField body="metric" type="str" required />

<ParamField body="value" type="InputOutputBasedCostMetricValue" required>
  [🔗 InputOutputBasedCostMetricValue](/docs/truefoundry_sdk/types#inputoutputbasedcostmetricvalue)
</ParamField>

## Pip

<ParamField body="type" type="typing.Literal[Any]" default="pip" required />

<ParamField body="requirements_path" type="typing.Optional[str]">
  Path to `requirements.txt` relative to `Path to build context`
</ParamField>

<ParamField body="pip_packages" type="typing.Optional[typing.List[str]]">
  Define pip package requirements. In Python/YAML E.g. \["fastapi>=0.90,\<1.0", "uvicorn"]
</ParamField>

## Poetry

<ParamField body="type" type="typing.Literal[Any]" default="poetry" required />

<ParamField body="poetry_version" type="typing.Optional[str]" default="latest">
  Poetry version to use
</ParamField>

<ParamField body="install_options" type="typing.Optional[str]">
  install options to pass to poetry command
</ParamField>

## PolicyFilters

<ParamField body="cluster_names" type="typing.Optional[typing.List[str]]">
  Cluster names where Policy applies
</ParamField>

<ParamField body="workspace_names" type="typing.Optional[typing.List[str]]">
  Workspace names where Policy applies
</ParamField>

<ParamField body="env_names" type="typing.Optional[typing.List[str]]">
  Environment names where Policy applies
</ParamField>

## PolicyManifest

<ParamField body="type" type="typing.Literal[Any]" default="policy" required />

<ParamField body="name" type="str" required>
  Unique identifier of the policy across the organisation
</ParamField>

<ParamField body="description" type="str" required>
  Description of the policy that explains what the policy does, its purpose, and how it affects resources. This helps other users understand the policy's behavior and impact.
</ParamField>

<ParamField body="operation" type="PolicyManifestOperation" required>
  [🔗 PolicyManifestOperation](/docs/truefoundry_sdk/types#policymanifestoperation)

  Defines if the policy validates or mutates resources. Validation policies check TrueFoundry manifests to ensure they meet conditions and can block deployments. Mutation policies modify Kubernetes manifests before they're applied to the cluster. See this [documentation](https://docs.truefoundry.com/docs/applying-custom-policies#applying-custom-policies) for more details.
</ParamField>

<ParamField body="mode" type="PolicyManifestMode" required>
  [🔗 PolicyManifestMode](/docs/truefoundry_sdk/enums#policymanifestmode)

  Mode of the policy: `Audit` logs all policy evaluations without blocking deployments. `Enforce` blocks deployments if the policy fails. `Disabled` deactivates the policy.
</ParamField>

<ParamField body="entities" type="typing.List[PolicyEntityTypes]" required>
  [🔗 PolicyEntityTypes](/docs/truefoundry_sdk/enums#policyentitytypes)

  Types of applications this policy applies to
</ParamField>

<ParamField body="actions" type="typing.List[PolicyActions]" required>
  Actions this policy applies to
</ParamField>

<ParamField body="filters" type="typing.Optional[PolicyFilters]">
  [🔗 PolicyFilters](/docs/truefoundry_sdk/types#policyfilters)
</ParamField>

<ParamField body="code" type="str" required>
  TypeScript code for Policy logic. To write and test your policy code, please refer to this [repository](https://github.com/truefoundry/tfy-typescript-policy)
</ParamField>

## PolicyManifestOperation

**Union, One Of:**

* [🔗 PolicyMutationOperation](#policymutationoperation)
* [🔗 PolicyValidationOperation](#policyvalidationoperation)

## PolicyMutationOperation

<ParamField body="type" type="typing.Literal[Any]" default="mutate" required>
  Mutates or Validates Resources
</ParamField>

<ParamField body="order" type="int" required>
  Determines the sequence in which mutation policies are executed. Policies with lower order value run first, followed by higher value. For example, a policy with order 10 runs before one with order 20. This is crucial when multiple mutation policies need to run in a specific sequence. The order must be between 1 and 100.
</ParamField>

## PolicyValidationOperation

<ParamField body="type" type="typing.Literal[Any]" default="validate" required>
  Mutates or Validates Resources
</ParamField>

## Port

<ParamField body="port" type="int" default="80" required>
  Port number to expose.
</ParamField>

<ParamField body="protocol" type="PortProtocol" required>
  [🔗 PortProtocol](/docs/truefoundry_sdk/enums#portprotocol)

  Protocol for the port.
</ParamField>

<ParamField body="expose" type="bool" required>
  Expose the port
</ParamField>

<ParamField body="app_protocol" type="typing.Optional[PortAppProtocol]">
  [🔗 PortAppProtocol](/docs/truefoundry_sdk/enums#portappprotocol)

  Application Protocol for the port. Select the application protocol used by your service. For most use cases, this should be `http`(HTTP/1.1). If you are running a gRPC server, select the `grpc` option. This is only applicable if `expose=true`.
</ParamField>

<ParamField body="host" type="typing.Optional[str]">
  Host e.g. ai.example.com, app.truefoundry.com
</ParamField>

<ParamField body="path" type="typing.Optional[str]">
  Path e.g. /v1/api/ml/, /v2/docs/
</ParamField>

<ParamField body="rewrite_path_to" type="typing.Optional[str]">
  Rewrite the path prefix to a different path. If `path` is `/v1/api` and `rewrite_path_to` is `/api`. The URI in the HTTP request `http://0.0.0.0:8080/v1/api/houses` will be rewritten to `http://0.0.0.0:8080/api/houses` before the request is forwarded your service. Defaults to `/`. This is only applicable if `path` is given.
</ParamField>

<ParamField body="auth" type="typing.Optional[PortAuth]">
  [🔗 PortAuth](/docs/truefoundry_sdk/types#portauth)

  Authentication method for inbound traffic
</ParamField>

## PortAuth

**Union, One Of:**

* [🔗 BasicAuthCreds](#basicauthcreds)
* [🔗 JwtAuthConfig](#jwtauthconfig)
* [🔗 TrueFoundryInteractiveLogin](#truefoundryinteractivelogin)

## PresetRegexPattern

<ParamField body="presets" type="typing.List[PresetRegexPatternEnum]" required>
  [🔗 PresetRegexPatternEnum](/docs/truefoundry_sdk/enums#presetregexpatternenum)

  Select one or more common regex patterns from the predefined list.
</ParamField>

## PresignedUrlObject

<ParamField body="uri" type="str" required />

<ParamField body="url" type="str" required />

<ParamField body="headers" type="typing.Optional[typing.Dict[(str, typing.Any)]]" />

## PriorityBasedLoadBalanceTarget

<ParamField body="target" type="str" required>
  Target model or provider FQN
</ParamField>

<ParamField body="priority" type="int" required>
  Priority for the target, Lower the number, higher the priority (0 is the highest priority)
</ParamField>

<ParamField body="sla_cutoff" type="typing.Optional[SlaCutoff]">
  [🔗 SlaCutoff](/docs/truefoundry_sdk/types#slacutoff)
</ParamField>

<ParamField body="retry_config" type="typing.Optional[RetryConfig]">
  [🔗 RetryConfig](/docs/truefoundry_sdk/types#retryconfig)
</ParamField>

<ParamField body="fallback_status_codes" type="typing.Optional[typing.List[str]]">
  Status Codes for which the request will fallback to other targets. If the status code is not present in fallback\_status\_codes, it fails immediately.
</ParamField>

<ParamField body="fallback_candidate" type="typing.Optional[bool]">
  Whether this target is a fallback candidate. If set to false, this model will not be considered as a fallback option for targets of this load-balance-rule
</ParamField>

<ParamField body="override_params" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Optional parameters to override in the request
</ParamField>

<ParamField body="headers_override" type="typing.Optional[HeadersOverride]">
  [🔗 HeadersOverride](/docs/truefoundry_sdk/types#headersoverride)
</ParamField>

<ParamField body="metadata_match" type="typing.Optional[typing.Dict[(str, str)]]">
  Optional metadata key-value pairs that must match incoming request metadata headers for this target to be considered for routing.
</ParamField>

## PriorityBasedLoadBalancing

<ParamField body="type" type="typing.Literal[Any]" default="priority-based-routing" required />

<ParamField body="load_balance_targets" type="typing.List[PriorityBasedLoadBalanceTarget]" required>
  [🔗 PriorityBasedLoadBalanceTarget](/docs/truefoundry_sdk/types#prioritybasedloadbalancetarget)

  List of targets for priority-based load balancing
</ParamField>

## PriorityBasedLoadBalancingRule

<ParamField body="id" type="str" required>
  Unique identifier for the rule
</ParamField>

<ParamField body="when" type="LoadBalancingWhen" required>
  [🔗 LoadBalancingWhen](/docs/truefoundry_sdk/types#loadbalancingwhen)
</ParamField>

## PrivatePricingTier

<ParamField body="from_" type="typing_extensions.Annotated[(int, Any, Any)]" required />

<ParamField body="cost_per_token" type="NonNegativeFloat" required />

## PrometheusAlertRule

<ParamField body="type" type="typing.Literal[Any]" default="prometheus-alert-rule" required>
  Type
</ParamField>

<ParamField body="name" type="str" required>
  Enter a unique, descriptive name for your Prometheus alert rule. Choose a name that clearly indicates the condition being monitored. Please note that reserved alert names for TrueFoundry managed alerts are not allowed. For checking the list of reserved alert names, please refer to the documentation.
</ParamField>

<ParamField body="expression" type="str" required>
  Enter a valid PromQL expression that defines the condition for triggering this alert. The alert will fire when this expression evaluates to true for the duration specified in the duration to trigger alert field.
</ParamField>

<ParamField body="for_" type="typing_extensions.Annotated[(float, Any, Any)]" required />

<ParamField body="severity" type="AlertSeverity" required>
  [🔗 AlertSeverity](/docs/truefoundry_sdk/enums#alertseverity)
</ParamField>

<ParamField body="description" type="typing.Optional[str]">
  Description of the alert rule which will be displayed in the alert rule list. This can be used to provide more context about the alert rule.
</ParamField>

<ParamField body="notification_enabled" type="bool" required>
  When enabled, notifications will be sent to all configured target channels when the alert conditions are met.
</ParamField>

## Prompt

<ParamField body="id" type="str" required>
  Unique identifier for the artifact
</ParamField>

<ParamField body="ml_repo_id" type="str" required>
  ID of the ML Repo that this artifact belongs to
</ParamField>

<ParamField body="type" type="typing.Optional[typing.Literal[Any]]">
  Type of the artifact, always 'chat\_prompt' for Prompt entities
</ParamField>

<ParamField body="name" type="str" required>
  Name of the artifact (alphanumeric characters, hyphens, and underscores only, max 256 characters)
</ParamField>

<ParamField body="fqn" type="str" required>
  Fully qualified name of the artifact in the format '\{artifact\_type}:\{tenant\_name}/\{ml\_repo\_name}/\{artifact\_name}'
</ParamField>

<ParamField body="created_by_subject" type="Subject" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)

  Subject (user, team, or service account) that created this artifact
</ParamField>

<ParamField body="created_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact was created
</ParamField>

<ParamField body="updated_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact was last updated
</ParamField>

<ParamField body="latest_version" type="typing.Optional[PromptVersion]">
  [🔗 PromptVersion](/docs/truefoundry_sdk/types#promptversion)

  The most recent version of this prompt
</ParamField>

<ParamField body="run_steps" type="typing.Optional[typing.List[int]]">
  List of run step numbers where this artifact was created or updated
</ParamField>

## PromptSource

<ParamField body="type" type="typing.Literal[Any]" default="prompt" required>
  Type of agent source
</ParamField>

<ParamField body="prompt_version_fqn" type="str" required>
  Fully qualified name of the prompt version to use as the agent source
</ParamField>

<ParamField body="skills" type="typing.Optional[typing.List[AgentSkill]]">
  [🔗 AgentSkill](/docs/truefoundry_sdk/types#agentskill)

  List of skills associated with the agent
</ParamField>

## PromptVersion

<ParamField body="id" type="str" required>
  Unique identifier for the artifact version
</ParamField>

<ParamField body="fqn" type="str" required>
  Fully qualified name of the artifact version in the format '\{artifact\_type}:\{tenant\_name}/\{ml\_repo\_name}/\{artifact\_name}:\{version}'
</ParamField>

<ParamField body="created_by_subject" type="Subject" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)

  Subject (user, team, or service account) that created this artifact version
</ParamField>

<ParamField body="created_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was created
</ParamField>

<ParamField body="updated_at" type="typing.Optional[dt.datetime]">
  Timestamp when the artifact version was last updated
</ParamField>

<ParamField body="manifest" type="ChatPromptManifest" required>
  [🔗 ChatPromptManifest](/docs/truefoundry_sdk/types#chatpromptmanifest)

  Manifest containing metadata specific to the chat prompt version
</ParamField>

<ParamField body="ml_repo_id" type="str" required>
  ID of the ML Repo that this artifact version belongs to
</ParamField>

<ParamField body="tags" type="typing.Optional[typing.List[str]]">
  List of tags associated with this artifact version for filtering and organization
</ParamField>

<ParamField body="version_alias" type="typing.Optional[str]">
  Optional human-readable version alias (e.g. v1.0.0)
</ParamField>

<ParamField body="usage_code_snippet" type="typing.Optional[str]">
  Code snippet demonstrating how to use this artifact version
</ParamField>

<ParamField body="usage_code_snippets" type="typing.Optional[typing.List[UsageCodeSnippet]]">
  [🔗 UsageCodeSnippet](/docs/truefoundry_sdk/types#usagecodesnippet)

  List of code snippets demonstrating how to use this prompt version in different languages
</ParamField>

<ParamField body="prompt_id" type="str" required>
  ID of the parent prompt that this version belongs to
</ParamField>

## ProviderAccounts

**Union, One Of:**

* [🔗 InfraProviderAccount](#infraprovideraccount)
* [🔗 ModelProviderAccount](#modelprovideraccount)
* [🔗 McpServerProviderAccount](#mcpserverprovideraccount)
* [🔗 GuardrailConfigGroup](#guardrailconfiggroup)

## PublicCostMetric

<ParamField body="metric" type="str" required />

## PySparkTaskConfig

<ParamField body="type" type="typing.Literal[Any]" default="pyspark-task-config" required />

<ParamField body="image" type="TaskPySparkBuild" required>
  [🔗 TaskPySparkBuild](/docs/truefoundry_sdk/types#taskpysparkbuild)
</ParamField>

<ParamField body="driver_config" type="SparkDriverConfig" required>
  [🔗 SparkDriverConfig](/docs/truefoundry_sdk/types#sparkdriverconfig)
</ParamField>

<ParamField body="executor_config" type="SparkExecutorConfig" required>
  [🔗 SparkExecutorConfig](/docs/truefoundry_sdk/types#sparkexecutorconfig)
</ParamField>

<ParamField body="spark_conf" type="typing.Optional[typing.Dict[(str, typing.Optional[str])]]">
  Extra configuration properties to be passed to the spark job. [Docs](https://spark.apache.org/docs/latest/configuration.html)
</ParamField>

<ParamField body="env" type="typing.Optional[typing.Dict[(str, typing.Optional[str])]]">
  Configure environment variables to be injected in the task either as plain text or secrets. [Docs](https://docs.truefoundry.com/docs/env-variables)
</ParamField>

<ParamField body="mounts" type="typing.Optional[typing.List[VolumeMount]]">
  [🔗 VolumeMount](/docs/truefoundry_sdk/types#volumemount)

  Configure data to be mounted to Workflow pod(s) as a volume.
</ParamField>

<ParamField body="service_account" type="typing.Optional[str]">
  Service Account
</ParamField>

## PythonBuild

<ParamField body="type" type="typing.Literal[Any]" default="tfy-python-buildpack" required />

<ParamField body="python_version" type="typing.Optional[str]">
  Python version to run your application. Should be one of the tags listed on [Official Python Docker Page](https://hub.docker.com/_/python)
</ParamField>

<ParamField body="build_context_path" type="str" default="./" required>
  Build path relative to project root path.
</ParamField>

<ParamField body="requirements_path" type="typing.Optional[str]">
  Path to `requirements.txt` relative to `Path to build context`
</ParamField>

<ParamField body="pip_packages" type="typing.Optional[typing.List[str]]">
  Define pip package requirements. In Python/YAML E.g. \["fastapi>=0.90,\<1.0", "uvicorn"]
</ParamField>

<ParamField body="python_dependencies" type="typing.Optional[PythonBuildPythonDependencies]">
  [🔗 PythonBuildPythonDependencies](/docs/truefoundry_sdk/types#pythonbuildpythondependencies)

  Python dependencies to install
</ParamField>

<ParamField body="apt_packages" type="typing.Optional[typing.List[str]]">
  Debian packages to install via `apt get`. In Python/YAML E.g. \["git", "ffmpeg", "htop"]
</ParamField>

<ParamField body="command" type="PythonBuildCommand" required>
  [🔗 PythonBuildCommand](/docs/truefoundry_sdk/types#pythonbuildcommand)

  Command to run when the container starts. Command will be set as the Entrypoint of the generated image. When deploying a Job, the command can be templatized by defining `params` and referencing them in command E.g. `python main.py --learning_rate \{\{learning_rate\}\}`
</ParamField>

<ParamField body="cuda_version" type="typing.Optional[str]">
  Version of CUDA Toolkit and CUDNN to install in the image These combinations are based off of publically available docker images on docker hub You can also specify a valid tag of the form \{cuda\_version\_number}-cudnn\{cudnn\_version\_number}-\{runtime|devel}-ubuntu\{ubuntu\_version} Refer [https://hub.docker.com/r/nvidia/cuda/tags](https://hub.docker.com/r/nvidia/cuda/tags) for valid set of values Note: We use deadsnakes ubuntu ppa to add Python that currently supports only Ubuntu 18.04, 20.04 and 22.04
</ParamField>

## PythonBuildCommand

**Union, One Of:**

* [🔗 str](#str)

## PythonBuildPythonDependencies

**Union, One Of:**

* [🔗 Pip](#pip)
* [🔗 Uv](#uv)
* [🔗 Poetry](#poetry)

## PythonTaskConfig

<ParamField body="type" type="typing.Literal[Any]" default="python-task-config" required />

<ParamField body="image" type="PythonTaskConfigImage" required>
  [🔗 PythonTaskConfigImage](/docs/truefoundry_sdk/types#pythontaskconfigimage)

  Specify the image spec for the task
</ParamField>

<ParamField body="env" type="typing.Optional[typing.Dict[(str, typing.Optional[str])]]">
  Configure environment variables to be injected in the task either as plain text or secrets. [Docs](https://docs.truefoundry.com/docs/env-variables)
</ParamField>

<ParamField body="resources" type="typing.Optional[Resources]">
  [🔗 Resources](/docs/truefoundry_sdk/types#resources)
</ParamField>

<ParamField body="mounts" type="typing.Optional[typing.List[PythonTaskConfigMountsItem]]">
  [🔗 PythonTaskConfigMountsItem](/docs/truefoundry_sdk/types#pythontaskconfigmountsitem)

  Configure data to be mounted to Workflow pod(s) as a volume.
</ParamField>

<ParamField body="service_account" type="typing.Optional[str]">
  Service Account
</ParamField>

## PythonTaskConfigImage

**Union, One Of:**

* [🔗 TaskPythonBuild](#taskpythonbuild)
* [🔗 TaskDockerFileBuild](#taskdockerfilebuild)

## PythonTaskConfigMountsItem

**Union, One Of:**

* [🔗 SecretMount](#secretmount)
* [🔗 StringDataMount](#stringdatamount)
* [🔗 VolumeMount](#volumemount)

## PyTorchFramework

<ParamField body="type" type="typing.Literal[Any]" default="pytorch" required />

## QuayArtifactsRegistry

<ParamField body="type" type="typing.Literal[Any]" default="integration/docker-registry/quay" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="registry_url" type="str" required>
  The URL of the registry.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[QuayBasicAuth]">
  [🔗 QuayBasicAuth](/docs/truefoundry_sdk/types#quaybasicauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## QuayBasicAuth

<ParamField body="type" type="typing.Literal[Any]" default="basic-auth" required />

<ParamField body="username" type="str" required>
  The username for the basic authentication.
</ParamField>

<ParamField body="password" type="str" required>
  The password for the basic authentication.
</ParamField>

## QuayProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/quay" required />

<ParamField body="name" type="str" required>
  The name of the provider account.
</ParamField>

<ParamField body="account_name" type="typing.Optional[str]">
  The name of the account on Quay.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[QuayBasicAuth]">
  [🔗 QuayBasicAuth](/docs/truefoundry_sdk/types#quaybasicauth)
</ParamField>

<ParamField body="integrations" type="typing.List[QuayIntegrations]" required>
  List of integrations that are associated with the provider account.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## QuerySpansRequestFiltersItem

**Union, One Of:**

* [🔗 SpanFieldFilter](#spanfieldfilter)
* [🔗 SpanAttributeFilter](#spanattributefilter)
* [🔗 GatewayRequestMetadataFilter](#gatewayrequestmetadatafilter)

## QuerySpansResponse

<ParamField body="data" type="typing.List[TraceSpan]" required>
  [🔗 TraceSpan](/docs/truefoundry_sdk/types#tracespan)

  Array of flat spans
</ParamField>

<ParamField body="pagination" type="TokenPagination" required>
  [🔗 TokenPagination](/docs/truefoundry_sdk/types#tokenpagination)

  Pagination information
</ParamField>

## RateLimitConfig

<ParamField body="type" type="typing.Literal[Any]" default="gateway-rate-limiting-config" required />

<ParamField body="rules" type="typing.List[RateLimitRule]" required>
  [🔗 RateLimitRule](/docs/truefoundry_sdk/types#ratelimitrule)

  List of rate limit rules
</ParamField>

## RateLimitRule

<ParamField body="id" type="str" required>
  Unique identifier for the rule
</ParamField>

<ParamField body="when" type="RateLimitWhen" required>
  [🔗 RateLimitWhen](/docs/truefoundry_sdk/types#ratelimitwhen)
</ParamField>

<ParamField body="limit_to" type="int" required>
  Maximum number of requests or tokens allowed
</ParamField>

<ParamField body="unit" type="RateLimitUnit" required>
  [🔗 RateLimitUnit](/docs/truefoundry_sdk/enums#ratelimitunit)
</ParamField>

<ParamField body="rate_limit_applies_per" type="typing.Optional[typing.List[str]]">
  Create separate rate limiting rules for each unique value of the selected entity. For example, if "user" is selected, a separate rate limit rule will be created for each unique user making requests. Options: user, virtualaccount, model, or a metadata key (e.g., metadata.appId).
</ParamField>

## RateLimitWhen

<ParamField body="subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that this rule applies to
</ParamField>

<ParamField body="models" type="typing.Optional[typing.List[str]]">
  List of models that this rule applies to
</ParamField>

<ParamField body="metadata" type="typing.Optional[typing.Dict[(str, str)]]">
  Metadata key-value pairs that this rule applies to
</ParamField>

## Recommendation

<ParamField body="id" type="typing.Optional[str]" />

<ParamField body="cluster_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="application_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="deployment_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="application_version" type="typing_extensions.Annotated[(typing.Optional[int], Any, Any)]" />

<ParamField body="recommendation_data" type="typing_extensions.Annotated[(typing.Dict[(str, typing.Any)], Any, Any)]" required />

<ParamField body="recommendation_type" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="applied_deployment_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="expiry_timestamp" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="created_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="updated_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

## RefusalContentPart

<ParamField body="type" type="str" required>
  Type of the content part
</ParamField>

<ParamField body="refusal" type="str" required>
  Reason
</ParamField>

## RegexGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Regex pattern matching for content filtering or redaction">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/regex" required />

<ParamField body="operation" type="RegexGuardrailConfigOperation" required>
  [🔗 RegexGuardrailConfigOperation](/docs/truefoundry_sdk/enums#regexguardrailconfigoperation)

  Validate blocks when pattern matches. Mutate replaces matched text and continues.
</ParamField>

<ParamField body="priority" type="typing.Optional[int]" default="1">
  Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="RegexGuardrailConfigConfig" required>
  [🔗 RegexGuardrailConfigConfig](/docs/truefoundry_sdk/types#regexguardrailconfigconfig)
</ParamField>

## RegexGuardrailConfigConfig

<ParamField body="preset_patterns" type="typing.Optional[PresetRegexPattern]">
  [🔗 PresetRegexPattern](/docs/truefoundry_sdk/types#presetregexpattern)
</ParamField>

<ParamField body="custom_patterns" type="typing.Optional[typing.List[CustomRegexPattern]]">
  [🔗 CustomRegexPattern](/docs/truefoundry_sdk/types#customregexpattern)

  Enter your own regex patterns to match against content, each with its own redaction text (used in mutate mode).
</ParamField>

## RegisterUsersResponse

**Union, One Of:**

* [🔗 UniversalBaseModel](#universalbasemodel)

## RemoteMcpServerManifest

<ParamField body="type" type="typing.Literal[Any]" default="mcp-server/remote" required />

<ParamField body="name" type="str" required>
  The name of the MCP Server.
</ParamField>

<ParamField body="description" type="str" required>
  Provide a brief description of the purpose of this MCP Server.
</ParamField>

<ParamField body="url" type="str" required>
  The endpoint URL for the MCP Server.
</ParamField>

<ParamField body="tls_settings" type="typing.Optional[CustomTlsSettings]">
  [🔗 CustomTlsSettings](/docs/truefoundry_sdk/types#customtlssettings)
</ParamField>

<ParamField body="tool_settings" type="typing.Optional[typing.List[McpToolSetting]]">
  [🔗 McpToolSetting](/docs/truefoundry_sdk/types#mcptoolsetting)

  Customize tool descriptions or enable/disable specific tools from the MCP Server.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[McpServerAuth]">
  [🔗 McpServerAuth](/docs/truefoundry_sdk/types#mcpserverauth)
</ParamField>

<ParamField body="collaborators" type="typing.List[Collaborator]" required>
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  Users and Teams that have access to this MCP Server
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

<ParamField body="tags" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Key-value pairs to categorize this MCP Server (e.g., by owner or environment).
</ParamField>

## RemoteSource

<ParamField body="type" type="typing.Literal[Any]" default="remote" required />

<ParamField body="remote_uri" type="str" required>
  Remote repository URI
</ParamField>

## RemoteSpecSource

<ParamField body="type" type="typing.Literal[Any]" default="remote" required />

<ParamField body="url" type="str" required>
  URL to fetch the OpenAPI specification (JSON or YAML format).
</ParamField>

## Resources

<ParamField body="cpu_request" type="float" default="0.2" required>
  Requested CPU which determines the minimum cost incurred. The CPU usage can exceed the requested amount, but not the value specified in the limit. 1 CPU means 1 CPU core. Fractional CPU can be requested like `0.5` or `0.05`
</ParamField>

<ParamField body="cpu_limit" type="float" default="0.5" required>
  CPU limit beyond which the usage cannot be exceeded. 1 CPU means 1 CPU core. Fractional CPU can be requested like `0.5`. CPU limit should be >= cpu request.
</ParamField>

<ParamField body="memory_request" type="int" default="200" required>
  Requested memory which determines the minimum cost incurred. The unit of memory is in megabytes(MB). So 1 means 1 MB and 2000 means 2GB.
</ParamField>

<ParamField body="memory_limit" type="int" default="500" required>
  Memory limit after which the application will be killed with an OOM error. The unit of memory is in megabytes(MB). So 1 means 1 MB and 2000 means 2GB. MemoryLimit should be greater than memory request.
</ParamField>

<ParamField body="ephemeral_storage_request" type="int" default="1000" required>
  Requested disk storage. The unit of memory is in megabytes(MB). This is ephemeral storage and will be wiped out on pod restarts or eviction
</ParamField>

<ParamField body="ephemeral_storage_limit" type="int" default="2000" required>
  Disk storage limit. The unit of memory is in megabytes(MB). Exceeding this limit will result in eviction. It should be greater than the request. This is ephemeral storage and will be wiped out on pod restarts or eviction
</ParamField>

<ParamField body="shared_memory_size" type="typing.Optional[int]">
  Define the shared memory requirements for your workload. Machine learning libraries like Pytorch can use Shared Memory for inter-process communication. If you use this, we will mount a `tmpfs` backed volume at the `/dev/shm` directory. Any usage will also count against the workload's memory limit (`resources.memory_limit`) along with your workload's memory usage. If the overall usage goes above `resources.memory_limit` the user process may get killed. Shared Memory Size cannot be more than the defined Memory Limit for the workload.
</ParamField>

<ParamField body="node" type="typing.Optional[ResourcesNode]">
  [🔗 ResourcesNode](/docs/truefoundry_sdk/types#resourcesnode)

  This field determines how the underlying node resource is to be utilized
</ParamField>

<ParamField body="devices" type="typing.Optional[typing.List[ResourcesDevicesItem]]">
  [🔗 ResourcesDevicesItem](/docs/truefoundry_sdk/types#resourcesdevicesitem)

  Define custom device or accelerator requirements for your workload. We currently support NVIDIA GPUs, AWS Inferentia Accelerators, Single Host TPU Slices.
</ParamField>

## ResourcesDevicesItem

**Union, One Of:**

* [🔗 NvidiaGpu](#nvidiagpu)
* [🔗 AwsInferentia](#awsinferentia)
* [🔗 NvidiaMiggpu](#nvidiamiggpu)
* [🔗 NvidiaTimeslicingGpu](#nvidiatimeslicinggpu)
* [🔗 GcpTpu](#gcptpu)

## ResourcesNode

**Union, One Of:**

* [🔗 NodeSelector](#nodeselector)
* [🔗 NodepoolSelector](#nodepoolselector)

## ResponseFormatJsonObject

<ParamField body="type" type="typing.Literal[Any]" default="json_object" required />

## ResponseFormatJsonSchema

<ParamField body="type" type="typing.Literal[Any]" default="json_schema" required />

<ParamField body="json_schema" type="ResponseFormatJsonSchemaJsonSchema" required>
  [🔗 ResponseFormatJsonSchemaJsonSchema](/docs/truefoundry_sdk/types#responseformatjsonschemajsonschema)
</ParamField>

## ResponseFormatJsonSchemaJsonSchema

<ParamField body="name" type="str" required />

<ParamField body="description" type="typing.Optional[str]" />

<ParamField body="schema_" type="typing_extensions.Annotated[(typing.Optional[typing.Dict[(str, typing.Any)]], Any, Any)]" />

<ParamField body="strict" type="typing.Optional[bool]" />

## ResponseFormatText

<ParamField body="type" type="typing.Literal[Any]" default="text" required />

## RetryConfig

<ParamField body="attempts" type="int" required>
  Number of attempts to retry the request
</ParamField>

<ParamField body="delay" type="typing.Optional[int]" default="100">
  Delay between retries in milliseconds
</ParamField>

<ParamField body="on_status_codes" type="typing.Optional[typing.List[str]]">
  Status codes to retry on
</ParamField>

## RevokeAllPersonalAccessTokenResponse

**Union, One Of:**

* [🔗 UniversalBaseModel](#universalbasemodel)

## RoleBindingManifest

<ParamField body="type" type="typing.Literal[Any]" default="role-binding" required />

<ParamField body="name" type="str" required>
  Unique name for this role binding.
</ParamField>

<ParamField body="subjects" type="typing.List[RoleBindingSubject]" required>
  [🔗 RoleBindingSubject](/docs/truefoundry_sdk/types#rolebindingsubject)

  One row per principal; set type and name (email, team name, virtual account name, or external identity name).
</ParamField>

<ParamField body="permissions" type="typing.List[RoleBindingPermission]" required>
  [🔗 RoleBindingPermission](/docs/truefoundry_sdk/types#rolebindingpermission)

  Resource-scoped role grants (resource type, FQN, and role name).
</ParamField>

## RoleBindingPermission

<ParamField body="resource_type" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="resource_fqn" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="role" type="str" required>
  Name of the role to bind (e.g. workspace-editor, model-user).
</ParamField>

## RoleBindingSubject

<ParamField body="type" type="RoleBindingSubjectType" required>
  [🔗 RoleBindingSubjectType](/docs/truefoundry_sdk/enums#rolebindingsubjecttype)

  Whether this row identifies a user (email), a team (name), a virtual account (name), or an external identity (name).
</ParamField>

<ParamField body="name" type="str" required>
  User email when type is user; team or virtual account name when type is team or virtualaccount; external identity name when type is external-identity.
</ParamField>

## RoleManifest

<ParamField body="type" type="typing.Literal[Any]" default="role" required />

<ParamField body="name" type="str" required>
  Unique identifier of the role across the organization
</ParamField>

<ParamField body="display_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="description" type="str" required>
  Description of the role that explains its purpose and permissions
</ParamField>

<ParamField body="resource_type" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="permissions" type="typing.List[str]" required>
  Define the resource type and the corresponding actions this role can perform on the resource
</ParamField>

## RoleWithResource

<ParamField body="role_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="resource_type" type="typing_extensions.Annotated[(RoleWithResourceResourceType, Any, Any)]" required>
  [🔗 RoleWithResourceResourceType](/docs/truefoundry_sdk/enums#rolewithresourceresourcetype)
</ParamField>

<ParamField body="resource_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

## Rolling

<ParamField body="type" type="typing.Literal[Any]" default="rolling_update" required />

<ParamField body="max_unavailable_percentage" type="int" default="25" required>
  Percentage of total replicas that can be brought down at one time. For a value of 25 when replicas are set to 12 this would mean minimum (25% of 12) = 3 pods might be unavailable during the deployment. Setting this to a higher value can help in speeding up the deployment process.
</ParamField>

<ParamField body="max_surge_percentage" type="int" default="25" required>
  Percentage of total replicas of updated image that can be brought up over the total replicas count. For a value of 25 when replicas are set to 12 this would mean (12+(25% of 12) = 15) pods might be running at one time. Setting this to a higher value can help in speeding up the deployment process.
</ParamField>

## RpsMetric

<ParamField body="type" type="typing.Literal[Any]" default="rps" required />

<ParamField body="value" type="float" required>
  Average request per second averaged over all replicas that autoscaler should try to maintain
</ParamField>

## RStudio

<ParamField body="type" type="typing.Literal[Any]" default="rstudio" required />

<ParamField body="image" type="WorkbenchImage" required>
  [🔗 WorkbenchImage](/docs/truefoundry_sdk/types#workbenchimage)
</ParamField>

## SagemakerModel

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The SageMaker endpoint name you created for your model deployment. This is the name of the inference endpoint in AWS SageMaker, not the model name.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/sagemaker" required />

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Sagemaker model
</ParamField>

<ParamField body="region" type="typing.Optional[AwsRegion]">
  [🔗 AwsRegion](/docs/truefoundry_sdk/enums#awsregion)
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## SambaNovaKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for SambaNova authentication
</ParamField>

## SambaNovaModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/sambanova" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The SambaNova model identifier (e.g., DeepSeek-R1-0528, Meta-Llama-3.3-70B-Instruct). This is the standard Model ID from SambaNova's model catalog.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the SambaNova model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## SambaNovaProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/sambanova" required />

<ParamField body="name" type="str" required>
  The name of the SambaNova provider account
</ParamField>

<ParamField body="auth_data" type="SambaNovaKeyAuth" required>
  [🔗 SambaNovaKeyAuth](/docs/truefoundry_sdk/types#sambanovakeyauth)
</ParamField>

<ParamField body="integrations" type="typing.List[SambaNovaIntegrations]" required>
  List of integrations that are associated with the SambaNova provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## SampleAgentInput

<ParamField body="text" type="typing.Optional[str]">
  Input for the agent
</ParamField>

<ParamField body="variables" type="typing.Optional[typing.Dict[(str, str)]]">
  Variable inputs for Prompt Variables defined in the Prompt
</ParamField>

## Schedule

<ParamField body="type" type="typing.Literal[Any]" default="scheduled" required />

<ParamField body="schedule" type="str" required>
  Specify the schedule for this job to be run periodically in cron format. `* * * * * | | | | | | | | | |___ day of week (0-6) (Sunday is 0) | | | |_____ month (1-12) | | |_______ day of month (1-31) | |_________ hour (0-23) |___________ minute (0-59)`
</ParamField>

<ParamField body="concurrency_policy" type="ScheduleConcurrencyPolicy" required>
  [🔗 ScheduleConcurrencyPolicy](/docs/truefoundry_sdk/enums#scheduleconcurrencypolicy)

  Choose whether to allow this job to run while another instance of the job is running, or to replace the currently running instance. Allow will enable multiple instances of this job to run. Forbid will keep the current instance of the job running and stop a new instance from being run. Replace will terminate any currently running instance of the job and start a new one.
</ParamField>

<ParamField body="timezone" type="typing.Optional[str]">
  Timezone against which the cron schedule will be calculated, e.g. "Asia/Tokyo". Default is machine's local time. [https://docs.truefoundry.com/docs/list-of-supported-timezones](https://docs.truefoundry.com/docs/list-of-supported-timezones)
</ParamField>

## Secret

<ParamField body="id" type="str" required />

<ParamField body="fqn" type="str" required />

<ParamField body="name" type="str" required />

<ParamField body="secret_group_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="value" type="typing.Optional[str]" />

<ParamField body="created_by_subject" type="typing_extensions.Annotated[(typing.Optional[Subject], Any, Any)]">
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="created_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="updated_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="secret_versions" type="typing_extensions.Annotated[(typing.Optional[typing.List[Any]], Any, Any)]" />

<ParamField body="active_deployments_count" type="typing_extensions.Annotated[(typing.Optional[int], Any, Any)]" />

<ParamField body="created_by" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## SecretDetectionGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Detects likely credentials/secrets (AWS keys, API keys, JWT tokens, private keys)">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/secret-detection" required />

<ParamField body="operation" type="SecretDetectionGuardrailConfigOperation" required>
  [🔗 SecretDetectionGuardrailConfigOperation](/docs/truefoundry_sdk/enums#secretdetectionguardrailconfigoperation)

  The operation type to use for the Guardrail. Validate guardrails are used to validate requests and mutate can validate as well as mutate requests. Validate guardrails are run in parallel while mutate guardrails are run sequentially.
</ParamField>

<ParamField body="priority" type="typing.Optional[int]" default="1">
  Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="typing.Optional[SecretDetectionGuardrailConfigConfig]">
  [🔗 SecretDetectionGuardrailConfigConfig](/docs/truefoundry_sdk/types#secretdetectionguardrailconfigconfig)
</ParamField>

## SecretDetectionGuardrailConfigConfig

<ParamField body="redaction_text" type="typing.Optional[str]" default="[REDACTED]">
  Text to use when redacting detected secrets in logs and error messages. Defaults to '\[REDACTED]'.Only applicable in mutate mode.
</ParamField>

## SecretGroup

<ParamField body="id" type="typing.Optional[str]" />

<ParamField body="fqn" type="typing.Optional[str]" />

<ParamField body="tenant_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="created_by_subject" type="typing_extensions.Annotated[(Subject, Any, Any)]" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="associated_secrets" type="typing_extensions.Annotated[(typing.List[Any], Any, Any)]" required />

<ParamField body="integration_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="manifest" type="typing.Optional[typing.Dict[(str, typing.Any)]]" />

<ParamField body="account_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="created_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="updated_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="created_by" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## SecretGroupManifest

<ParamField body="type" type="typing.Literal[Any]" default="secret-group" required />

<ParamField body="name" type="str" required>
  Name of the secret group
</ParamField>

<ParamField body="integration_fqn" type="str" required>
  Secret Store to be associated with the secret group
</ParamField>

<ParamField body="collaborators" type="typing.List[Collaborator]" required>
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  Users and Teams that have access to Secret Group
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## SecretInput

<ParamField body="key" type="str" required>
  Key of the secret.
</ParamField>

<ParamField body="value" type="str" required>
  Value of the secret.
</ParamField>

## SecretMount

<ParamField body="type" type="typing.Literal[Any]" default="secret" required />

<ParamField body="mount_path" type="str" required>
  Absolute file path where the file will be created.
</ParamField>

<ParamField body="secret_fqn" type="str" required>
  The TrueFoundry secret whose value will be the file content.
</ParamField>

## SecretStoreConfig

<ParamField body="integration_fqn" type="str" required>
  The secret store to store the virtual account token in
</ParamField>

<ParamField body="secret_path" type="str" required>
  The path where the virtual account token will be stored in the secret store (example: secret/path/to/virtual-account-token)
</ParamField>

## SecretVersion

<ParamField body="id" type="str" required />

<ParamField body="fqn" type="str" required />

<ParamField body="value" type="typing.Optional[str]" />

<ParamField body="version" type="typing.Optional[float]" />

<ParamField body="secret" type="typing.Optional[Any]" />

<ParamField body="secret_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="created_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

<ParamField body="updated_at" type="typing_extensions.Annotated[(typing.Optional[dt.datetime], Any, Any)]" />

## SelfHostedAgent

<ParamField body="type" type="typing.Literal[Any]" default="remote-agent/self-hosted" required>
  Type of the manifest
</ParamField>

<ParamField body="url" type="str" required>
  The URL of the server
</ParamField>

<ParamField body="auth_data" type="typing.Optional[CustomAgentServerAuth]">
  [🔗 CustomAgentServerAuth](/docs/truefoundry_sdk/types#customagentserverauth)
</ParamField>

<ParamField body="framework" type="AgentFramework" required>
  [🔗 AgentFramework](/docs/truefoundry_sdk/types#agentframework)
</ParamField>

## SelfHostedModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/self-hosted-model" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this self-hosted model in the UI
</ParamField>

<ParamField body="hosted_model_name" type="str" required>
  The name of the hosted model
</ParamField>

<ParamField body="url" type="str" required>
  The URL where the model is hosted
</ParamField>

<ParamField body="model_server" type="SelfHostedModelModelServer" required>
  [🔗 SelfHostedModelModelServer](/docs/truefoundry_sdk/enums#selfhostedmodelmodelserver)

  The type of model server being used
</ParamField>

<ParamField body="tfy_application_id" type="typing.Optional[str]" />

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the model
</ParamField>

<ParamField body="tls_settings" type="typing.Optional[CustomTlsSettings]">
  [🔗 CustomTlsSettings](/docs/truefoundry_sdk/types#customtlssettings)
</ParamField>

<ParamField body="auth_data" type="typing.Optional[SelfHostedModelAuthData]">
  [🔗 SelfHostedModelAuthData](/docs/truefoundry_sdk/types#selfhostedmodelauthdata)

  Self Hosted Model authentication data for the integration.
</ParamField>

<ParamField body="headers" type="typing.Optional[typing.Dict[(str, str)]]">
  Self Hosted Model headers for the integration. Forwarded to the provider as is. For example: `\{"Authorization": "APIKey \<token\>"\}`
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## SelfHostedModelAuthData

**Union, One Of:**

* [🔗 CustomBasicAuth](#custombasicauth)
* [🔗 CustomBearerAuth](#custombearerauth)

## SelfHostedModelProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/self-hosted-model" required />

<ParamField body="name" type="str" required>
  The name of the provider account.
</ParamField>

<ParamField body="integrations" type="typing.List[SelfHostedModelIntegrations]" required>
  [🔗 SelfHostedModel](/docs/truefoundry_sdk/types#selfhostedmodel)

  List of integrations that are associated with the provider account.
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  Collaborators
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## SemanticCacheConfig

<ParamField body="type" type="typing.Literal[Any]" default="semantic" required />

<ParamField body="similarity_threshold" type="float" required>
  Similarity threshold for semantic matching (between 0 and 1)
</ParamField>

<ParamField body="namespace" type="typing.Optional[str]">
  Cache namespace (defaults to 'default' if not provided)
</ParamField>

<ParamField body="ttl" type="float" default="3600.0" required>
  Time-to-live for cached entries in seconds (max 3 days)
</ParamField>

## SemanticCacheSettings

<ParamField body="semantic_cache_embedding_model" type="str" required>
  Select the embedding model to use for semantic caching across the gateway. This model will be used to generate embeddings for cache lookups when semantic caching is enabled. The embedding model helps identify semantically similar requests to serve cached responses, improving performance for similar queries.
</ParamField>

## Service

<ParamField body="type" type="typing.Literal[Any]" default="service" required />

<ParamField body="replicas" type="ServiceReplicas" required>
  [🔗 ServiceReplicas](/docs/truefoundry_sdk/types#servicereplicas)

  Deploy multiple instances of your pods to distribute incoming traffic across them, ensuring effective load balancing.
</ParamField>

<ParamField body="auto_shutdown" type="typing.Optional[Autoshutdown]">
  [🔗 Autoshutdown](/docs/truefoundry_sdk/types#autoshutdown)
</ParamField>

<ParamField body="allow_interception" type="typing.Optional[bool]">
  Whether to allow intercepts to be applied for this service. This would inject an additional sidecar in each pod of the service. Not recommended on production
</ParamField>

<ParamField body="rollout_strategy" type="typing.Optional[ServiceRolloutStrategy]">
  [🔗 ServiceRolloutStrategy](/docs/truefoundry_sdk/types#servicerolloutstrategy)

  Strategy to dictate how a rollout should happen when a new release for this service is made [Docs](https://docs.truefoundry.com/docs/rollout-strategy)
</ParamField>

## ServiceAutoscaling

<ParamField body="metrics" type="ServiceAutoscalingMetrics" required>
  [🔗 ServiceAutoscalingMetrics](/docs/truefoundry_sdk/types#serviceautoscalingmetrics)

  Metrics to use for the autoscaler
</ParamField>

## ServiceAutoscalingMetrics

**Union, One Of:**

* [🔗 CpuUtilizationMetric](#cpuutilizationmetric)
* [🔗 RpsMetric](#rpsmetric)
* [🔗 CronMetric](#cronmetric)

## ServiceReplicas

**Union, One Of:**

* [🔗 float](#float)
* [🔗 ServiceAutoscaling](#serviceautoscaling)

## ServiceRolloutStrategy

**Union, One Of:**

* [🔗 Rolling](#rolling)
* [🔗 Canary](#canary)
* [🔗 BlueGreen](#bluegreen)

## Session

<ParamField body="id" type="str" required />

<ParamField body="user_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="subject_slug" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="subject_controller_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="subject_pat_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="email" type="typing.Optional[str]" />

<ParamField body="subject_type" type="typing_extensions.Annotated[(SubjectType, Any, Any)]" required>
  [🔗 SubjectType](/docs/truefoundry_sdk/enums#subjecttype)
</ParamField>

<ParamField body="tenant_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="roles" type="typing.List[str]" required />

<ParamField body="teams" type="typing.List[SessionTeam]" required>
  [🔗 SessionTeam](/docs/truefoundry_sdk/types#sessionteam)
</ParamField>

<ParamField body="accounts" type="typing.List[SessionAccount]" required>
  [🔗 SessionAccount](/docs/truefoundry_sdk/types#sessionaccount)
</ParamField>

<ParamField body="metadata" type="typing.Optional[UserMetadata]">
  [🔗 UserMetadata](/docs/truefoundry_sdk/types#usermetadata)
</ParamField>

<ParamField body="is_billing_enabled" type="typing_extensions.Annotated[(typing.Optional[bool], Any, Any)]" />

<ParamField body="service_account_metadata" type="typing_extensions.Annotated[(typing.Optional[typing.Dict[(str, typing.Any)]], Any, Any)]" />

<ParamField body="account" type="typing.Optional[Account]">
  [🔗 Account](/docs/truefoundry_sdk/types#account)
</ParamField>

<ParamField body="root_account" type="typing_extensions.Annotated[(typing.Optional[Account], Any, Any)]">
  [🔗 Account](/docs/truefoundry_sdk/types#account)
</ParamField>

<ParamField body="effective_user_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

## SessionAccount

<ParamField body="name" type="str" required />

<ParamField body="id" type="str" required />

## SessionTeam

<ParamField body="name" type="str" required />

<ParamField body="id" type="str" required />

## SignedUrl

<ParamField body="path" type="str" required>
  Relative path of the file within the artifact storage
</ParamField>

<ParamField body="signed_url" type="str" required>
  Pre-signed URL that can be used to access the file directly
</ParamField>

## SklearnFramework

<ParamField body="type" type="typing.Literal[Any]" default="sklearn" required />

<ParamField body="model_filepath" type="typing.Optional[str]">
  Relative path to the model file in the model version contents
</ParamField>

<ParamField body="serialization_format" type="typing.Optional[SklearnSerializationFormat]">
  [🔗 SklearnSerializationFormat](/docs/truefoundry_sdk/enums#sklearnserializationformat)
</ParamField>

<ParamField body="model_schema" type="typing.Optional[SklearnModelSchema]">
  [🔗 SklearnModelSchema](/docs/truefoundry_sdk/types#sklearnmodelschema)
</ParamField>

## SklearnModelSchema

<ParamField body="infer_method_name" type="InferMethodName" required>
  [🔗 InferMethodName](/docs/truefoundry_sdk/enums#infermethodname)

  Name of the method used for inference
</ParamField>

<ParamField body="inputs" type="typing.List[typing.Dict[(str, typing.Any)]]" required>
  Schema of the input
</ParamField>

<ParamField body="outputs" type="typing.List[typing.Dict[(str, typing.Any)]]" required>
  Schema of the output
</ParamField>

## SlackBot

<ParamField body="type" type="typing.Literal[Any]" default="slack-bot" required />

<ParamField body="notification_channel" type="str" required>
  Specify the notification channel to send alerts to
</ParamField>

<ParamField body="channels" type="typing.List[str]" required>
  List of channels to send messages to.
</ParamField>

## SlackBotAuth

<ParamField body="type" type="typing.Literal[Any]" default="slack-bot" required />

<ParamField body="bot_token" type="str" required>
  The bot token for the slack bot to send messages to the channels. This bot should have the following permissions: chat:write, chat:write.public
</ParamField>

## SlackBotIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/notification-channel/slack-bot" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="auth_data" type="SlackBotAuth" required>
  [🔗 SlackBotAuth](/docs/truefoundry_sdk/types#slackbotauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## SlackIntegrations

**Union, One Of:**

* [🔗 SlackWebhookIntegration](#slackwebhookintegration)
* [🔗 SlackBotIntegration](#slackbotintegration)

## SlackProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/slack" required />

<ParamField body="name" type="str" required>
  The name of the provider account.
</ParamField>

<ParamField body="integrations" type="typing.List[SlackIntegrations]" required>
  [🔗 SlackIntegrations](/docs/truefoundry_sdk/types#slackintegrations)

  List of integrations that are associated with the provider account.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## SlackWebhook

<ParamField body="type" type="typing.Literal[Any]" default="slack-webhook" required />

<ParamField body="notification_channel" type="str" required>
  Specify the notification channel to send alerts to
</ParamField>

## SlackWebhookAuth

<ParamField body="type" type="typing.Literal[Any]" default="slack-webhook" required />

<ParamField body="webhook_url" type="str" required>
  The URL of the slack webhook
</ParamField>

## SlackWebhookIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/notification-channel/slack-webhook" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="auth_data" type="SlackWebhookAuth" required>
  [🔗 SlackWebhookAuth](/docs/truefoundry_sdk/types#slackwebhookauth)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## SlaCutoff

<ParamField body="time_per_output_token_ms" type="typing.Optional[int]">
  Time per output token threshold in milliseconds. If time per output token exceeds this value, the target will be marked as unhealthy
</ParamField>

## SmtpCredentials

<ParamField body="type" type="typing.Literal[Any]" default="smtp-credentials" required />

<ParamField body="host" type="str" required>
  The SMTP host of the email server.
</ParamField>

<ParamField body="username" type="typing.Optional[str]">
  The username for the SMTP server.
</ParamField>

<ParamField body="password" type="typing.Optional[str]">
  The password for the SMTP server.
</ParamField>

<ParamField body="port" type="int" default="587" required>
  The port of the SMTP server.
</ParamField>

<ParamField body="tls" type="bool" required>
  Whether to use TLS for the SMTP server.
</ParamField>

## SnowflakeCortexModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/snowflake-cortex" required />

<ParamField body="name" type="str" required>
  Name to identify this Snowflake Cortex model in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  ID of the Snowflake Cortex model to use
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Snowflake Cortex model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## SnowflakeCortexPatTokenAuth

<ParamField body="type" type="typing.Literal[Any]" default="pat-token" required />

<ParamField body="pat_token" type="str" required>
  PAT token for Snowflake Cortex authentication
</ParamField>

## SnowflakeCortexProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/snowflake-cortex" required />

<ParamField body="name" type="str" required>
  The name of the Snowflake Cortex provider account
</ParamField>

<ParamField body="auth_data" type="SnowflakeCortexPatTokenAuth" required>
  [🔗 SnowflakeCortexPatTokenAuth](/docs/truefoundry_sdk/types#snowflakecortexpattokenauth)
</ParamField>

<ParamField body="account_identifier" type="str" required>
  Snowflake account identifier. You can find it in the URL of your Snowflake account. Example: https\://\<account\_identifier>.snowflakecomputing.com. Insert the account identifier only, without the URL.
</ParamField>

<ParamField body="integrations" type="typing.List[SnowflakeCortexIntegrations]" required>
  List of integrations that are associated with the Snowflake Cortex provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## SpaCyFramework

<ParamField body="type" type="typing.Literal[Any]" default="spacy" required />

## SpanAttributeFilter

<ParamField body="span_attribute_key" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="operator" type="SpanAttributeFilterOperator" required>
  [🔗 SpanAttributeFilterOperator](/docs/truefoundry_sdk/enums#spanattributefilteroperator)
</ParamField>

<ParamField body="value" type="SpanAttributeFilterValue" required>
  [🔗 SpanAttributeFilterValue](/docs/truefoundry_sdk/types#spanattributefiltervalue)
</ParamField>

## SpanAttributeFilterValue

**Union, One Of:**

* [🔗 str](#str)
* [🔗 float](#float)
* [🔗 bool](#bool)

## SpanFieldFilter

<ParamField body="span_field_name" type="typing_extensions.Annotated[(SpanFieldFilterSpanFieldName, Any, Any)]" required>
  [🔗 SpanFieldFilterSpanFieldName](/docs/truefoundry_sdk/enums#spanfieldfilterspanfieldname)
</ParamField>

<ParamField body="operator" type="SpanFieldFilterOperator" required>
  [🔗 SpanFieldFilterOperator](/docs/truefoundry_sdk/enums#spanfieldfilteroperator)
</ParamField>

<ParamField body="value" type="SpanFieldFilterValue" required>
  [🔗 SpanFieldFilterValue](/docs/truefoundry_sdk/types#spanfieldfiltervalue)
</ParamField>

## SpanFieldFilterValue

**Union, One Of:**

* [🔗 str](#str)
* [🔗 float](#float)
* [🔗 bool](#bool)

## SparkBuild

<ParamField body="type" type="typing.Literal[Any]" default="tfy-spark-buildpack" required />

<ParamField body="spark_version" type="str" default="3.5.2" required>
  Spark version should match the spark version installed in the image.
</ParamField>

<ParamField body="build_context_path" type="str" default="./" required>
  Build path relative to project root path.
</ParamField>

<ParamField body="requirements_path" type="typing.Optional[str]">
  Path to `requirements.txt` relative to `Path to build context`
</ParamField>

## SparkConfig

<ParamField body="ui_base_domain" type="str" required>
  The base domain for the cluster with which you can access your Spark UI
</ParamField>

## SparkDriverConfig

<ParamField body="resources" type="typing.Optional[Resources]">
  [🔗 Resources](/docs/truefoundry_sdk/types#resources)
</ParamField>

## SparkExecutorConfig

<ParamField body="instances" type="SparkExecutorConfigInstances" required>
  [🔗 SparkExecutorConfigInstances](/docs/truefoundry_sdk/types#sparkexecutorconfiginstances)

  Executor Instances
</ParamField>

<ParamField body="resources" type="typing.Optional[Resources]">
  [🔗 Resources](/docs/truefoundry_sdk/types#resources)
</ParamField>

## SparkExecutorConfigInstances

**Union, One Of:**

* [🔗 SparkExecutorFixedInstances](#sparkexecutorfixedinstances)
* [🔗 SparkExecutorDynamicScaling](#sparkexecutordynamicscaling)

## SparkExecutorDynamicScaling

<ParamField body="type" type="typing.Literal[Any]" default="dynamic" required />

<ParamField body="min" type="int" default="1" required>
  Minimum number of instances to start / scale down to
</ParamField>

<ParamField body="max" type="int" default="1" required>
  Maximum number of instances to scale up to
</ParamField>

## SparkExecutorFixedInstances

<ParamField body="type" type="typing.Literal[Any]" default="fixed" required />

<ParamField body="count" type="int" default="1" required>
  Number of instances to start
</ParamField>

## SparkImage

<ParamField body="type" type="typing.Literal[Any]" default="spark-image" required />

<ParamField body="spark_version" type="str" default="3.5.2" required>
  Spark version should match the spark version installed in the image.
</ParamField>

<ParamField body="image_uri" type="str" required>
  The image URI. Specify the name of the image and the tag. If the image is in Dockerhub, you can skip registry-url (for e.g. `tensorflow/tensorflow`). You can use an image from a private registry using Advanced fields
</ParamField>

<ParamField body="docker_registry" type="typing.Optional[str]">
  FQN of the container registry. If you can't find your registry here, add it through the [Integrations](/docs/integrations-overview) page
</ParamField>

## SparkImageBuild

<ParamField body="type" type="typing.Literal[Any]" default="spark-image-build" required />

<ParamField body="docker_registry" type="typing.Optional[str]">
  FQN of the container registry. If you can't find your registry here, add it through the [Integrations](/docs/integrations-overview) page
</ParamField>

<ParamField body="build_source" type="SparkImageBuildBuildSource" required>
  [🔗 SparkImageBuildBuildSource](/docs/truefoundry_sdk/types#sparkimagebuildbuildsource)

  Fetch source code
</ParamField>

<ParamField body="build_spec" type="SparkBuild" required>
  [🔗 SparkBuild](/docs/truefoundry_sdk/types#sparkbuild)
</ParamField>

## SparkImageBuildBuildSource

**Union, One Of:**

* [🔗 GitSource](#gitsource)
* [🔗 RemoteSource](#remotesource)

## SparkJob

<ParamField body="type" type="typing.Literal[Any]" default="spark-job" required />

<ParamField body="name" type="str" required>
  Name of the job
</ParamField>

<ParamField body="image" type="SparkJobImage" required>
  [🔗 SparkJobImage](/docs/truefoundry_sdk/types#sparkjobimage)

  The image to use for driver and executors. Must have spark installed. Spark version must match the version in the image.
</ParamField>

<ParamField body="entrypoint" type="SparkJobEntrypoint" required>
  [🔗 SparkJobEntrypoint](/docs/truefoundry_sdk/types#sparkjobentrypoint)

  Entrypoint
</ParamField>

<ParamField body="driver_config" type="SparkDriverConfig" required>
  [🔗 SparkDriverConfig](/docs/truefoundry_sdk/types#sparkdriverconfig)
</ParamField>

<ParamField body="executor_config" type="SparkExecutorConfig" required>
  [🔗 SparkExecutorConfig](/docs/truefoundry_sdk/types#sparkexecutorconfig)
</ParamField>

<ParamField body="env" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Configure environment variables to be injected in the service either as plain text. [Docs](https://docs.truefoundry.com/docs/env-variables)
</ParamField>

<ParamField body="spark_conf" type="typing.Optional[typing.Dict[(str, typing.Optional[str])]]">
  Extra configuration properties to be passed to the spark job. [Docs](https://spark.apache.org/docs/latest/configuration.html)
</ParamField>

<ParamField body="mounts" type="typing.Optional[typing.List[VolumeMount]]">
  [🔗 VolumeMount](/docs/truefoundry_sdk/types#volumemount)

  Configure volumes to be mounted to driver and executors. [Docs](https://docs.truefoundry.com/docs/mounting-volumes-job)
</ParamField>

<ParamField body="retries" type="typing.Optional[int]">
  Specify the maximum number of attempts to retry a job before it is marked as failed.
</ParamField>

<ParamField body="service_account" type="typing.Optional[str]">
  Service Account
</ParamField>

<ParamField body="workspace_fqn" type="typing.Optional[str]">
  Fully qualified name of the workspace
</ParamField>

## SparkJobEntrypoint

**Union, One Of:**

* [🔗 SparkJobPythonEntrypoint](#sparkjobpythonentrypoint)
* [🔗 SparkJobScalaEntrypoint](#sparkjobscalaentrypoint)
* [🔗 SparkJobJavaEntrypoint](#sparkjobjavaentrypoint)
* [🔗 SparkJobPythonNotebookEntrypoint](#sparkjobpythonnotebookentrypoint)
* [🔗 SparkJobScalaNotebookEntrypoint](#sparkjobscalanotebookentrypoint)

## SparkJobImage

**Union, One Of:**

* [🔗 SparkImage](#sparkimage)
* [🔗 SparkImageBuild](#sparkimagebuild)

## SparkJobJavaEntrypoint

<ParamField body="type" type="typing.Literal[Any]" default="java" required />

<ParamField body="main_application_file" type="str" required>
  The main application file to be executed by the spark job.
</ParamField>

<ParamField body="main_class" type="str" required>
  The main class to be executed by the spark job.
</ParamField>

<ParamField body="arguments" type="typing.Optional[str]">
  Arguments to be passed to the main application file.
</ParamField>

## SparkJobPythonEntrypoint

<ParamField body="type" type="typing.Literal[Any]" default="python" required />

<ParamField body="main_application_file" type="str" required>
  The main application file to be executed by the spark job. Relative path in case of git repository.
</ParamField>

<ParamField body="arguments" type="typing.Optional[str]">
  Arguments to be passed to the main application file.
</ParamField>

## SparkJobPythonNotebookEntrypoint

<ParamField body="type" type="typing.Literal[Any]" default="python-notebook" required />

<ParamField body="main_application_file" type="str" required>
  The main application file to be executed by the spark job. Relative path in case of git repository.
</ParamField>

## SparkJobScalaEntrypoint

<ParamField body="type" type="typing.Literal[Any]" default="scala" required />

<ParamField body="main_application_file" type="str" required>
  The main application file to be executed by the spark job.
</ParamField>

<ParamField body="main_class" type="str" required>
  The main class to be executed by the spark job.
</ParamField>

<ParamField body="arguments" type="typing.Optional[str]">
  Arguments to be passed to the main application file.
</ParamField>

## SparkJobScalaNotebookEntrypoint

<ParamField body="type" type="typing.Literal[Any]" default="scala-notebook" required />

<ParamField body="main_application_file" type="str" required>
  The main application file to be executed by the spark job. Relative path in case of git repository.
</ParamField>

## SparkJobTriggerInput

<ParamField body="main_class" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="main_application_file" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="arguments" type="typing.Optional[str]">
  Arguments to pass to the main application file
</ParamField>

## SqlSanitizerGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Detects and sanitizes risky SQL patterns (DROP, TRUNCATE, DELETE/UPDATE without WHERE, string interpolation)">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/sql-sanitizer" required />

<ParamField body="operation" type="SqlSanitizerGuardrailConfigOperation" required>
  [🔗 SqlSanitizerGuardrailConfigOperation](/docs/truefoundry_sdk/enums#sqlsanitizerguardrailconfigoperation)

  Validate (detect and block) or Mutate (detect, sanitize comments, and continue).
</ParamField>

<ParamField body="priority" type="typing.Optional[int]" default="1">
  Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="SqlSanitizerGuardrailConfigConfig" required>
  [🔗 SqlSanitizerGuardrailConfigConfig](/docs/truefoundry_sdk/types#sqlsanitizerguardrailconfigconfig)
</ParamField>

## SqlSanitizerGuardrailConfigConfig

<ParamField body="block_drop" type="typing.Optional[bool]">
  Block SQL DROP statements as dangerous operations.
</ParamField>

<ParamField body="block_truncate" type="typing.Optional[bool]">
  Block SQL TRUNCATE statements as dangerous operations.
</ParamField>

<ParamField body="block_alter" type="typing.Optional[bool]">
  Block SQL ALTER statements as dangerous operations.
</ParamField>

<ParamField body="block_grant" type="typing.Optional[bool]">
  Block SQL GRANT statements as dangerous operations.
</ParamField>

<ParamField body="block_revoke" type="typing.Optional[bool]">
  Block SQL REVOKE statements as dangerous operations.
</ParamField>

<ParamField body="strip_comments" type="typing.Optional[bool]">
  Remove SQL comments (-- and block comments) from queries. In mutate mode, comments are stripped from the output.
</ParamField>

<ParamField body="block_delete_without_where" type="typing.Optional[bool]">
  Flag DELETE FROM statements that lack a WHERE clause as potentially dangerous.
</ParamField>

<ParamField body="block_update_without_where" type="typing.Optional[bool]">
  Flag UPDATE statements that lack a WHERE clause as potentially dangerous.
</ParamField>

<ParamField body="require_parameterization" type="typing.Optional[bool]">
  Detect naive string interpolation patterns (+, %., \{}) that may indicate SQL injection vulnerabilities.
</ParamField>

## SqsInputConfig

<ParamField body="type" type="typing.Literal[Any]" default="sqs" required />

<ParamField body="queue_url" type="str" required>
  AWS SQS Queue URL of Subscriber
</ParamField>

<ParamField body="region_name" type="str" required>
  AWS Region Name
</ParamField>

<ParamField body="visibility_timeout" type="int" required>
  A period during which Amazon SQS prevents all consumers from receiving and processing the message. If one message takes 5 seconds to process, you can set this number to 7 or any number higher than 5. This will ensure that while the message is being processed, it will not be available to other replicas. For more information, see [here](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
</ParamField>

<ParamField body="wait_time_seconds" type="int" default="19" required>
  Wait timeout for long polling. For more information, see [here](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html)
</ParamField>

<ParamField body="auth" type="typing.Optional[AwsAccessKeyAuth]">
  [🔗 AwsAccessKeyAuth](/docs/truefoundry_sdk/types#awsaccesskeyauth)
</ParamField>

## SqsOutputConfig

<ParamField body="type" type="typing.Literal[Any]" default="sqs" required />

<ParamField body="queue_url" type="str" required>
  AWS SQS Queue URL of Publisher
</ParamField>

<ParamField body="region_name" type="str" required>
  AWS Region Name
</ParamField>

<ParamField body="auth" type="typing.Optional[AwsAccessKeyAuth]">
  [🔗 AwsAccessKeyAuth](/docs/truefoundry_sdk/types#awsaccesskeyauth)
</ParamField>

## SqsQueueMetricConfig

<ParamField body="type" type="typing.Literal[Any]" default="sqs" required />

<ParamField body="queue_length" type="int" required>
  Upper limit of the number of backlog messages the auto-scaler will try to maintain per replica. If you set this number to 10 and have 30 messages in the queue and one replica, the auto-scaler will scale the number of replicas to 3.
</ParamField>

<ParamField body="auth" type="typing.Optional[SqsQueueMetricConfigAuth]">
  [🔗 SqsQueueMetricConfigAuth](/docs/truefoundry_sdk/types#sqsqueuemetricconfigauth)

  Receive permissions on the SQS Queue
</ParamField>

## SqsQueueMetricConfigAuth

**Union, One Of:**

* [🔗 AwsSqsAccessKeyBasedAuth](#awssqsaccesskeybasedauth)
* [🔗 AwsSqsAssumedRoleBasedAuth](#awssqsassumedrolebasedauth)

## SshServer

<ParamField body="type" type="typing.Literal[Any]" default="ssh-server" required />

<ParamField body="image" type="WorkbenchImage" required>
  [🔗 WorkbenchImage](/docs/truefoundry_sdk/types#workbenchimage)
</ParamField>

<ParamField body="ssh_public_key" type="str" required>
  Add Your SSH Public Key, this will be used to authenticate you to the SSH Server. \ You can find it using `cat ~/.ssh/id_rsa.pub` in Mac/Linux or `type $home\.ssh\id_rsa.pub` in Windows Powershell. \ You can also generate a new SSH key pair using `ssh-keygen -t rsa` in your local terminal. (same for both Mac/Linux and Windows Powershell)
</ParamField>

<ParamField body="cull_timeout" type="typing.Optional[int]">
  Stop the SSH Server instance after this much time in minutes of inactivity. The instance is considered active if there is at least one active SSH connection (a client connected to the SSH server), or if a background job is running using tmux or screen, or if the pod has restarted.
</ParamField>

## SshServerConfig

<ParamField body="base_domain" type="str" required>
  The base domain for the cluster with which you can access your SSH containers
</ParamField>

<ParamField body="port" type="float" required>
  The port for the cluster with which you can access your SSH containers
</ParamField>

## StageArtifactRequestManifest

**Union, One Of:**

* [🔗 ModelManifest](#modelmanifest)
* [🔗 ArtifactManifest](#artifactmanifest)
* [🔗 AgentSkillManifest](#agentskillmanifest)

## StageArtifactResponse

<ParamField body="id" type="str" required>
  ID of the staged artifact version
</ParamField>

<ParamField body="storage_root" type="str" required>
  Root storage path where the artifact version files should be uploaded
</ParamField>

<ParamField body="artifact_id" type="str" required>
  ID of the artifact that the staged version belongs to
</ParamField>

## StaticVolumeConfig

<ParamField body="type" type="typing.Literal[Any]" default="static" required>
  Volume Type for the volume.
</ParamField>

<ParamField body="persistent_volume_name" type="str" required>
  Persistent Volume Name of the volume to be used.
</ParamField>

## StatsModelsFramework

<ParamField body="type" type="typing.Literal[Any]" default="statsmodels" required />

## StdioMcpServerManifest

<ParamField body="name" type="str" required>
  The name of the MCP Server.
</ParamField>

<ParamField body="description" type="str" required>
  Provide a brief description of the purpose of this MCP Server.
</ParamField>

<ParamField body="collaborators" type="typing.List[Collaborator]" required>
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  Users and Teams that have access to this MCP Server
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="mcp-server/stdio" required />

<ParamField body="command" type="str" default="npx" required>
  Executable to run for the stdio MCP server process.
</ParamField>

<ParamField body="args" type="typing.Optional[typing.List[str]]">
  Arguments passed to the stdio MCP server command.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[McpServerEnvAuth]">
  [🔗 McpServerEnvAuth](/docs/truefoundry_sdk/types#mcpserverenvauth)
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

<ParamField body="tags" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Key-value pairs to categorize this MCP Server (e.g., by owner or environment).
</ParamField>

## StickyRouting

<ParamField body="ttl_seconds" type="int" required>
  Sticky mapping TTL in seconds
</ParamField>

<ParamField body="session_identifiers" type="typing.List[StickySessionIdentifier]" required>
  [🔗 StickySessionIdentifier](/docs/truefoundry_sdk/types#stickysessionidentifier)

  List of identifier selectors used to build sticky key
</ParamField>

## StickySessionIdentifier

<ParamField body="source" type="StickySessionIdentifierSource" required>
  [🔗 StickySessionIdentifierSource](/docs/truefoundry_sdk/enums#stickysessionidentifiersource)

  Source from which session identifier value will be extracted
</ParamField>

<ParamField body="key" type="str" required>
  Key to read from selected source
</ParamField>

## StringDataMount

<ParamField body="type" type="typing.Literal[Any]" default="string" required />

<ParamField body="mount_path" type="str" required>
  Absolute file path where the file will be created.
</ParamField>

<ParamField body="data" type="str" required>
  The file content.
</ParamField>

## SubAgent

<ParamField body="name" type="str" required>
  Name of the sub agent
</ParamField>

## Subject

<ParamField body="subject_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="subject_type" type="typing_extensions.Annotated[(SubjectType, Any, Any)]" required>
  [🔗 SubjectType](/docs/truefoundry_sdk/enums#subjecttype)
</ParamField>

<ParamField body="subject_slug" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="subject_display_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="subject_pat_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="subject_controller_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="subject_external_identity_slug" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## SubjectClause

<ParamField body="in_" type="typing_extensions.Annotated[(typing.Optional[typing.List[str]], Any, Any)]" />

<ParamField body="not_in" type="typing.Optional[typing.List[str]]" />

## SubjectConditionGroup

<ParamField body="operator" type="SubjectConditionGroupOperator" required>
  [🔗 SubjectConditionGroupOperator](/docs/truefoundry_sdk/enums#subjectconditiongroupoperator)
</ParamField>

<ParamField body="conditions" type="SubjectClause" required>
  [🔗 SubjectClause](/docs/truefoundry_sdk/types#subjectclause)
</ParamField>

## SubjectPermission

<ParamField body="resource_type" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="resource_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="resource_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="resource_fqn" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="role_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="role_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="subject_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="subject_type" type="typing_extensions.Annotated[(str, Any, Any)]" required />

## SyncTokenInSecretStoreInfo

<ParamField body="updated_at" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="error" type="typing.Optional[str]">
  Error message if sync failed
</ParamField>

## SyncVirtualAccountTokenResponse

<ParamField body="sync_token_in_secret_store_info" type="typing_extensions.Annotated[(SyncTokenInSecretStoreInfo, Any, Any)]" required>
  [🔗 SyncTokenInSecretStoreInfo](/docs/truefoundry_sdk/types#synctokeninsecretstoreinfo)
</ParamField>

## SystemMessage

<ParamField body="role" type="typing.Literal[Any]" default="system" required>
  Role of the message
</ParamField>

<ParamField body="content" type="SystemMessageContent" required>
  [🔗 SystemMessageContent](/docs/truefoundry_sdk/types#systemmessagecontent)

  Text content for the system message
</ParamField>

<ParamField body="name" type="typing.Optional[str]">
  Name of the system
</ParamField>

## SystemMessageContent

**Union, One Of:**

* [🔗 str](#str)
* [🔗 BlobStorageReference](#blobstoragereference)

## TargetClause

<ParamField body="mcp_servers" type="typing_extensions.Annotated[(typing.Optional[InNotInOperator], Any, Any)]">
  [🔗 InNotInOperator](/docs/truefoundry_sdk/types#innotinoperator)
</ParamField>

<ParamField body="mcp_tools" type="typing_extensions.Annotated[(typing.Optional[McpToolsOperator], Any, Any)]">
  [🔗 McpToolsOperator](/docs/truefoundry_sdk/types#mcptoolsoperator)
</ParamField>

<ParamField body="model" type="typing.Optional[InNotInOperator]">
  [🔗 InNotInOperator](/docs/truefoundry_sdk/types#innotinoperator)
</ParamField>

## TargetConditionGroup

<ParamField body="operator" type="typing.Literal[Any]" default="or" required />

<ParamField body="conditions" type="TargetClause" required>
  [🔗 TargetClause](/docs/truefoundry_sdk/types#targetclause)
</ParamField>

## TaskDockerFileBuild

<ParamField body="type" type="typing.Literal[Any]" default="task-dockerfile-build" required />

<ParamField body="docker_registry" type="typing.Optional[str]">
  FQN of the container registry. If you can't find your registry here, add it through the [Integrations](/docs/integrations-overview) page
</ParamField>

<ParamField body="dockerfile_path" type="str" default="./Dockerfile" required>
  The file path of the Dockerfile relative to project root path.
</ParamField>

<ParamField body="build_args" type="typing.Optional[typing.Dict[(str, str)]]">
  Build arguments to pass to docker build
</ParamField>

## TaskPySparkBuild

<ParamField body="type" type="typing.Literal[Any]" default="task-pyspark-build" required />

<ParamField body="spark_version" type="str" default="3.5.2" required>
  Spark version should match the spark version installed in the image.
</ParamField>

<ParamField body="container_image" type="typing.Optional[str]">
  Custom container image URI. If provided, this image is used instead of the default Spark base image (public.ecr.aws/bitnami/spark). The image must be Debian-based and have Python and Spark pre-installed.
</ParamField>

<ParamField body="docker_registry" type="typing.Optional[str]">
  FQN of the container registry. If you can't find your registry here, add it through the [Integrations](/docs/integrations-overview) page
</ParamField>

<ParamField body="requirements_path" type="typing.Optional[str]">
  Path to `requirements.txt` relative to `Path to build context`
</ParamField>

<ParamField body="pip_packages" type="typing.Optional[typing.List[str]]">
  Define pip package requirements. In Python/YAML E.g. \["fastapi>=0.90,\<1.0", "uvicorn"]
</ParamField>

<ParamField body="apt_packages" type="typing.Optional[typing.List[str]]">
  Debian packages to install via `apt get`. In Python/YAML E.g. \["git", "ffmpeg", "htop"]
</ParamField>

## TaskPythonBuild

<ParamField body="type" type="typing.Literal[Any]" default="task-python-build" required />

<ParamField body="docker_registry" type="typing.Optional[str]">
  FQN of the container registry. If you can't find your registry here, add it through the [Integrations](/docs/integrations-overview) page
</ParamField>

<ParamField body="python_version" type="typing.Optional[str]">
  Python version to run your application. Should be one of the tags listed on [Official Python Docker Page](https://hub.docker.com/_/python)
</ParamField>

<ParamField body="requirements_path" type="typing.Optional[str]">
  Path to `requirements.txt` relative to `Path to build context`
</ParamField>

<ParamField body="pip_packages" type="typing.Optional[typing.List[str]]">
  Define pip package requirements. In Python/YAML E.g. \["fastapi>=0.90,\<1.0", "uvicorn"]
</ParamField>

<ParamField body="apt_packages" type="typing.Optional[typing.List[str]]">
  Debian packages to install via `apt get`. In Python/YAML E.g. \["git", "ffmpeg", "htop"]
</ParamField>

<ParamField body="cuda_version" type="typing.Optional[str]">
  Version of CUDA Toolkit and CUDNN to install in the image These combinations are based off of publically available docker images on docker hub You can also specify a valid tag of the form \{cuda\_version\_number}-cudnn\{cudnn\_version\_number}-\{runtime|devel}-ubuntu\{ubuntu\_version} Refer [https://hub.docker.com/r/nvidia/cuda/tags](https://hub.docker.com/r/nvidia/cuda/tags) for valid set of values Note: We use deadsnakes ubuntu ppa to add Python that currently supports only Ubuntu 18.04, 20.04 and 22.04
</ParamField>

## Team

<ParamField body="id" type="str" required />

<ParamField body="description" type="str" required />

<ParamField body="tenant_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="account_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="created_by_subject" type="typing_extensions.Annotated[(Subject, Any, Any)]" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="members" type="typing.Optional[typing.List[str]]" />

<ParamField body="created_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="updated_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="manifest" type="TeamManifest" required>
  [🔗 TeamManifest](/docs/truefoundry_sdk/types#teammanifest)
</ParamField>

<ParamField body="metadata" type="typing.Optional[TeamMetadata]">
  [🔗 TeamMetadata](/docs/truefoundry_sdk/types#teammetadata)
</ParamField>

<ParamField body="is_editable" type="typing_extensions.Annotated[(bool, Any, Any)]" required />

## TeamDataAccessRule

<ParamField body="scope" type="typing.Literal[Any]" default="team_data" required>
  Data access scope - access to team data including owned virtual accounts
</ParamField>

## TeamManifest

<ParamField body="type" type="typing.Literal[Any]" default="team" required />

<ParamField body="name" type="str" required>
  Name of the Team
</ParamField>

<ParamField body="managers" type="typing.Optional[typing.List[str]]">
  Emails of each of the user who can manage the members of the team. Any tenant admin is by default a team manager.
</ParamField>

<ParamField body="members" type="typing.List[str]" required>
  Enter email of each of the user you want to add in the team.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[TeamOwnedBy], Any, Any)]">
  [🔗 TeamOwnedBy](/docs/truefoundry_sdk/types#teamownedby)
</ParamField>

<ParamField body="tags" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Key-value pairs to categorize this Team (e.g., by owner or environment).
</ParamField>

## TeamMetadata

<ParamField body="created_by_scim" type="typing_extensions.Annotated[(typing.Optional[bool], Any, Any)]" />

## TeamOwnedBy

<ParamField body="account" type="str" required>
  The name of the account that owns the team
</ParamField>

## TensorFlowFramework

<ParamField body="type" type="typing.Literal[Any]" default="tensorflow" required />

## TerminateJobResponse

<ParamField body="message" type="str" required>
  Terminate Job Message
</ParamField>

<ParamField body="job_run_status" type="typing_extensions.Annotated[(JobRunStatus, Any, Any)]" required>
  [🔗 JobRunStatus](/docs/truefoundry_sdk/enums#jobrunstatus)
</ParamField>

## TextContentPart

<ParamField body="type" type="typing.Literal[Any]" default="text" required>
  Type of the content part
</ParamField>

<ParamField body="text" type="TextContentPartText" required>
  [🔗 TextContentPartText](/docs/truefoundry_sdk/types#textcontentparttext)

  Text content for the message
</ParamField>

## TextContentPartText

**Union, One Of:**

* [🔗 str](#str)
* [🔗 BlobStorageReference](#blobstoragereference)

## TfyContentModerationGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Content moderation guardrail, managed by TrueFoundry">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/tfy-content-moderation" required />

<ParamField body="operation" type="typing.Literal[Any]" default="validate" required>
  The operation type for this guardrail. TrueFoundry Content Moderation guardrails can only be used for validation.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="TfyContentModerationGuardrailConfigConfig" required>
  [🔗 TfyContentModerationGuardrailConfigConfig](/docs/truefoundry_sdk/types#tfycontentmoderationguardrailconfigconfig)
</ParamField>

## TfyContentModerationGuardrailConfigConfig

<ParamField body="severity_threshold" type="float" default="2.0" required>
  Minimum severity level (0-6) to flag content. 0=Safe, 2=Low risk, 4=Medium risk, 6=High risk
</ParamField>

<ParamField body="categories" type="typing.List[AzureContentSafetyCategory]" required>
  [🔗 AzureContentSafetyCategory](/docs/truefoundry_sdk/enums#azurecontentsafetycategory)

  Types of harmful content to detect: Hate (hate speech), SelfHarm (self-injury), Sexual (sexual content), Violence (violent content)
</ParamField>

## TfyPiiGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="PII detection and redaction guardrail, managed by TrueFoundry">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/tfy-pii" required />

<ParamField body="operation" type="TfyPiiGuardrailConfigOperation" required>
  [🔗 TfyPiiGuardrailConfigOperation](/docs/truefoundry_sdk/enums#tfypiiguardrailconfigoperation)

  The operation type to use for the Guardrail. Validate guardrails are used to validate requests and mutate can validate as well as mutate requests. Validate guardrails are run in parallel while mutate guardrails are run sequentially.
</ParamField>

<ParamField body="priority" type="typing.Optional[int]" default="1">
  Execution order for mutate guardrails. Lower values run first.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="TfyPiiGuardrailConfigConfig" required>
  [🔗 TfyPiiGuardrailConfigConfig](/docs/truefoundry_sdk/types#tfypiiguardrailconfigconfig)
</ParamField>

## TfyPiiGuardrailConfigConfig

<ParamField body="pii_categories" type="typing.List[AzurePiiCategory]" required>
  [🔗 AzurePiiCategory](/docs/truefoundry_sdk/enums#azurepiicategory)

  Categories of PII to detect.
</ParamField>

## TfyPromptInjectionGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="Prompt injection guardrail, managed by TrueFoundry">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/tfy-prompt-injection" required />

<ParamField body="operation" type="typing.Literal[Any]" default="validate" required>
  The operation type for this guardrail. TrueFoundry Prompt Shield guardrails can only be used for validation.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

## TogetherAiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for Together AI authentication
</ParamField>

## TogetherAiModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/together-ai" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The Together AI model identifier (e.g., deepseek-ai/DeepSeek-R1, moonshotai/Kimi-K2-Instruct-0905). This is the model name from Together AI's model catalog.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Together AI model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## TogetherAiProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/together-ai" required />

<ParamField body="name" type="str" required>
  The name of the Together AI provider account
</ParamField>

<ParamField body="auth_data" type="TogetherAiKeyAuth" required>
  [🔗 TogetherAiKeyAuth](/docs/truefoundry_sdk/types#togetheraikeyauth)
</ParamField>

<ParamField body="integrations" type="typing.List[TogetherAiIntegrations]" required>
  List of integrations that are associated with the Together AI provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## TokenPagination

<ParamField body="limit" type="typing.Optional[int]">
  Number of items per page
</ParamField>

<ParamField body="next_page_token" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="previous_page_token" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## ToolCall

<ParamField body="type" type="typing.Literal[Any]" default="function" required>
  Type of the tool call
</ParamField>

<ParamField body="id" type="str" required>
  Unique identifier for the tool call
</ParamField>

<ParamField body="function" type="Function" required>
  [🔗 Function](/docs/truefoundry_sdk/types#function)
</ParamField>

## ToolMessage

<ParamField body="role" type="typing.Literal[Any]" default="tool" required>
  Role of the message
</ParamField>

<ParamField body="content" type="ToolMessageContent" required>
  [🔗 ToolMessageContent](/docs/truefoundry_sdk/types#toolmessagecontent)

  Content of the tool call result
</ParamField>

<ParamField body="tool_call_id" type="str" required>
  Unique identifier for the tool call
</ParamField>

## ToolMessageContent

**Union, One Of:**

* [🔗 str](#str)
* [🔗 BlobStorageReference](#blobstoragereference)

## ToolSchema

<ParamField body="type" type="typing.Literal[Any]" default="function" required>
  Type of the tool
</ParamField>

<ParamField body="function" type="FunctionSchema" required>
  [🔗 FunctionSchema](/docs/truefoundry_sdk/types#functionschema)
</ParamField>

## TraceSpan

<ParamField body="span_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="trace_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="parent_span_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="service_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="span_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="span_kind" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="scope_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="scope_version" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="timestamp" type="str" required>
  Timestamp in ISO 8601 format (e.g., 2025-03-12T00:00:09.872Z).
</ParamField>

<ParamField body="duration_ns" type="typing_extensions.Annotated[(float, Any, Any)]" required />

<ParamField body="status_code" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="status_message" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="span_attributes" type="typing_extensions.Annotated[(typing.Dict[(str, typing.Any)], Any, Any)]" required />

<ParamField body="events" type="typing.List[typing.Dict[(str, typing.Any)]]" required>
  Array of events that occurred during the span execution.
</ParamField>

<ParamField body="created_by_subject" type="typing_extensions.Annotated[(Subject, Any, Any)]" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="feedbacks" type="typing.Optional[typing.List[typing.List[typing.Any]]]">
  Gateway feedbacks associated with this span (if any).
</ParamField>

## TracingProjectControlPlaneManagedStorage

<ParamField body="type" type="typing.Literal[Any]" default="controlplane-managed" required>
  Type of storage configuration
</ParamField>

## TracingProjectCustomerManagedStorage

<ParamField body="type" type="typing.Literal[Any]" default="customer-managed" required>
  Type of storage configuration
</ParamField>

<ParamField body="storage_integration_fqn" type="str" required>
  Storage Integration FQN to store traces and spans. A storage integration represents a connected blob storage like AWS S3 / Azure Blob Storage / Google Cloud Storage. Please note that this cannot be changed once set.
</ParamField>

## TracingProjectManifest

<ParamField body="type" type="typing.Literal[Any]" default="tracing-project" required />

<ParamField body="name" type="str" required>
  Name of the Tracing Project
</ParamField>

<ParamField body="storage" type="TracingProjectStorageConfig" required>
  [🔗 TracingProjectStorageConfig](/docs/truefoundry_sdk/types#tracingprojectstorageconfig)
</ParamField>

<ParamField body="description" type="typing.Optional[str]">
  Description for the Tracing Project.
</ParamField>

<ParamField body="collaborators" type="typing.List[Collaborator]" required>
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  Users and Teams that have access to Tracing Project
</ParamField>

<ParamField body="traces_retention_duration_days" type="typing.Optional[float]">
  Number of days to retain traces for (minimum 7 days). Traces older than these number of days will be deleted automatically. When not set, traces are retained indefinitely. Note: Metrics will be retained regardless of this setting.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## TracingProjectStorageConfig

**Union, One Of:**

* [🔗 TracingProjectControlPlaneManagedStorage](#tracingprojectcontrolplanemanagedstorage)
* [🔗 TracingProjectCustomerManagedStorage](#tracingprojectcustomermanagedstorage)

## TransformersFramework

<ParamField body="type" type="typing.Literal[Any]" default="transformers" required />

<ParamField body="library_name" type="typing.Optional[LibraryName]">
  [🔗 LibraryName](/docs/truefoundry_sdk/enums#libraryname)

  Name of the library for the framework
</ParamField>

<ParamField body="pipeline_tag" type="typing.Optional[str]">
  The `pipeline()` task this model can be used with e.g. `text-generation`. See [huggingface docs](https://huggingface.co/docs/transformers/main/en/main_classes/pipelines#transformers.pipeline.task) for all possible values
</ParamField>

<ParamField body="base_model" type="typing.Optional[str]">
  Base model Id from HuggingFace Hub. If this is a finetuned model, this points to the base model id used for finetuning.
</ParamField>

## TriggerJobRequestInput

**Union, One Of:**

* [🔗 JobTriggerInput](#jobtriggerinput)
* [🔗 SparkJobTriggerInput](#sparkjobtriggerinput)

## TriggerJobRunResponse

<ParamField body="message" type="str" required>
  Job triggered
</ParamField>

<ParamField body="job_run_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="data" type="JobRun" required>
  [🔗 JobRun](/docs/truefoundry_sdk/types#jobrun)

  Details of the triggered job run
</ParamField>

## TrojAiClientIdAuth

<ParamField body="type" type="typing.Literal[Any]" default="client-id" required />

<ParamField body="client_id" type="str" required>
  The client ID that identifies your TrojAI firewall policy (sent as x-eag-clientid header)
</ParamField>

## TrojAiGuardrailConfig

<ParamField body="name" type="str" required>
  The name of the Guardrail Config.
</ParamField>

<ParamField body="description" type="typing.Optional[str]" default="TrojAI DEFEND firewall for real-time AI security">
  Optional description for this Guardrail Config.
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/guardrail-config/trojai" required />

<ParamField body="auth_data" type="TrojAiClientIdAuth" required>
  [🔗 TrojAiClientIdAuth](/docs/truefoundry_sdk/types#trojaiclientidauth)
</ParamField>

<ParamField body="operation" type="TrojAiGuardrailConfigOperation" required>
  [🔗 TrojAiGuardrailConfigOperation](/docs/truefoundry_sdk/enums#trojaiguardrailconfigoperation)

  The operation type to use for the Guardrail. Validate guardrails are used to validate requests and mutate can validate as well as mutate requests. Validate guardrails are run in parallel while mutate guardrails are run sequentially.
</ParamField>

<ParamField body="priority" type="typing.Optional[int]" default="1">
  Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.
</ParamField>

<ParamField body="enforcing_strategy" type="EnforcingStrategy" required>
  [🔗 EnforcingStrategy](/docs/truefoundry_sdk/enums#enforcingstrategy)
</ParamField>

<ParamField body="config" type="TrojAiGuardrailConfigConfig" required>
  [🔗 TrojAiGuardrailConfigConfig](/docs/truefoundry_sdk/types#trojaiguardrailconfigconfig)
</ParamField>

## TrojAiGuardrailConfigConfig

<ParamField body="base_url" type="str" required>
  The base URL of the TrojAI firewall (e.g. [https://your-trojai-firewall-host](https://your-trojai-firewall-host))
</ParamField>

## TrueFoundryAgentManifest

<ParamField body="type" type="typing.Literal[Any]" default="truefoundry-agent" required>
  Type of the manifest
</ParamField>

<ParamField body="name" type="str" required>
  The name of the Agent
</ParamField>

<ParamField body="description" type="str" required>
  The description of the Agent
</ParamField>

<ParamField body="tags" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Tags for the Agent
</ParamField>

<ParamField body="model" type="str" required>
  Model for the Agent
</ParamField>

<ParamField body="model_params" type="typing.Optional[TrueFoundryAgentManifestModelParams]">
  [🔗 TrueFoundryAgentManifestModelParams](/docs/truefoundry_sdk/types#truefoundryagentmanifestmodelparams)

  Model parameters (default and extra). Keys are param names, values are float, int, bool, or string.
</ParamField>

<ParamField body="skills" type="typing.Optional[typing.List[TrueFoundryAgentSkill]]">
  [🔗 TrueFoundryAgentSkill](/docs/truefoundry_sdk/types#truefoundryagentskill)

  List of agent skills to attach to this agent
</ParamField>

<ParamField body="mcp_servers" type="typing.Optional[typing.List[TrueFoundryAgentMcpServer]]">
  [🔗 TrueFoundryAgentMcpServer](/docs/truefoundry_sdk/types#truefoundryagentmcpserver)

  List of MCP servers with name, enable\_all\_tools, and optional tools filter
</ParamField>

<ParamField body="instruction" type="typing.Optional[str]">
  System instruction or prompt for the agent
</ParamField>

<ParamField body="messages" type="typing.Optional[typing.List[TrueFoundryAgentUserMessage]]">
  [🔗 TrueFoundryAgentUserMessage](/docs/truefoundry_sdk/types#truefoundryagentusermessage)

  Pre-defined initial messages for the agent. Supports template variable replacement.
</ParamField>

<ParamField body="variables" type="typing.Optional[typing.Dict[(str, TrueFoundryAgentVariable)]]">
  [🔗 TrueFoundryAgentVariable](/docs/truefoundry_sdk/types#truefoundryagentvariable)

  Variables keyed by name. Each has optional default\_value and optional description.
</ParamField>

<ParamField body="response_format" type="typing.Optional[TrueFoundryAgentManifestResponseFormat]">
  [🔗 TrueFoundryAgentManifestResponseFormat](/docs/truefoundry_sdk/types#truefoundryagentmanifestresponseformat)

  JSON schema or structure for the agent response format
</ParamField>

<ParamField body="sandbox" type="typing.Optional[TrueFoundryAgentManifestSandbox]">
  [🔗 TrueFoundryAgentManifestSandbox](/docs/truefoundry_sdk/types#truefoundryagentmanifestsandbox)

  Sandbox execution settings
</ParamField>

<ParamField body="iteration_limit" type="typing.Optional[int]">
  Maximum number of iterations for the agent
</ParamField>

<ParamField body="collaborators" type="typing.List[Collaborator]" required>
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this Agent
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## TrueFoundryAgentManifestModelParams

<ParamField body="max_tokens" type="typing.Optional[int]">
  Maximum number of tokens to generate.
</ParamField>

<ParamField body="reasoning_effort" type="typing.Optional[TrueFoundryAgentManifestModelParamsReasoningEffort]">
  [🔗 TrueFoundryAgentManifestModelParamsReasoningEffort](/docs/truefoundry_sdk/enums#truefoundryagentmanifestmodelparamsreasoningeffort)

  Reasoning depth when the model and provider support this parameter.
</ParamField>

<ParamField body="temperature" type="typing.Optional[float]">
  Sampling temperature (0–2). Higher values increase randomness.
</ParamField>

<ParamField body="top_p" type="typing.Optional[float]">
  Nucleus sampling threshold (0–1). Alternative to temperature.
</ParamField>

## TrueFoundryAgentManifestResponseFormat

**Union, One Of:**

* [🔗 ResponseFormatText](#responseformattext)
* [🔗 ResponseFormatJsonSchema](#responseformatjsonschema)
* [🔗 ResponseFormatJsonObject](#responseformatjsonobject)

## TrueFoundryAgentManifestSandbox

<ParamField body="enabled" type="bool" required />

## TrueFoundryAgentMcpServer

<ParamField body="name" type="str" required>
  MCP server name
</ParamField>

<ParamField body="deferred" type="typing.Optional[bool]">
  When true, tools from this server are loaded lazily (deferred loading).
</ParamField>

<ParamField body="tools" type="typing.Optional[typing.List[TrueFoundryAgentMcpTool]]">
  [🔗 TrueFoundryAgentMcpTool](/docs/truefoundry_sdk/types#truefoundryagentmcptool)

  List of tools to enable from this server
</ParamField>

## TrueFoundryAgentMcpTool

<ParamField body="name" type="str" required />

## TrueFoundryAgentSkill

<ParamField body="fqn" type="str" required>
  Fully qualified name of the agent skill
</ParamField>

<ParamField body="preload_skill_md" type="bool" required>
  If true, the SKILL.md content is injected into the agent context.
</ParamField>

## TrueFoundryAgentUserMessage

<ParamField body="role" type="typing.Literal[Any]" default="user" required>
  Role of the message sender.
</ParamField>

<ParamField body="content" type="str" required>
  Content of the user message. Supports template variables like \{\{variable\_name}}.
</ParamField>

## TrueFoundryAgentVariable

<ParamField body="default_value" type="typing.Optional[str]">
  Default value for the variable
</ParamField>

<ParamField body="description" type="typing.Optional[str]">
  Description of the variable
</ParamField>

## TrueFoundryApplyRequestManifest

**Union, One Of:**

* [🔗 MlRepoManifest](#mlrepomanifest)
* [🔗 ArtifactManifest](#artifactmanifest)
* [🔗 ModelManifest](#modelmanifest)
* [🔗 ChatPromptManifest](#chatpromptmanifest)
* [🔗 DataDirectory](#datadirectory)
* [🔗 Service](#service)
* [🔗 ApplicationSet](#applicationset)
* [🔗 ProviderAccounts](#provideraccounts)
* [🔗 ClusterManifest](#clustermanifest)
* [🔗 WorkspaceManifest](#workspacemanifest)
* [🔗 Job](#job)
* [🔗 Helm](#helm)
* [🔗 Volume](#volume)
* [🔗 Notebook](#notebook)
* [🔗 RStudio](#rstudio)
* [🔗 Workflow](#workflow)
* [🔗 AsyncService](#asyncservice)
* [🔗 SshServer](#sshserver)
* [🔗 SparkJob](#sparkjob)
* [🔗 GatewayConfig](#gatewayconfig)
* [🔗 TeamManifest](#teammanifest)
* [🔗 PolicyManifest](#policymanifest)
* [🔗 RoleManifest](#rolemanifest)
* [🔗 AlertConfig](#alertconfig)
* [🔗 VirtualAccountManifest](#virtualaccountmanifest)
* [🔗 CommonToolsSettings](#commontoolssettings)
* [🔗 AiFeaturesSettings](#aifeaturessettings)
* [🔗 SecretGroupManifest](#secretgroupmanifest)
* [🔗 AgentManifest](#agentmanifest)
* [🔗 EnvironmentManifest](#environmentmanifest)
* [🔗 TracingProjectManifest](#tracingprojectmanifest)
* [🔗 McpServerManifest](#mcpservermanifest)
* [🔗 RoleBindingManifest](#rolebindingmanifest)

## TrueFoundryApplyResponse

<ParamField body="existing_manifest" type="typing_extensions.Annotated[(typing.Optional[TrueFoundryApplyResponseExistingManifest], Any, Any)]">
  [🔗 TrueFoundryApplyResponseExistingManifest](/docs/truefoundry_sdk/types#truefoundryapplyresponseexistingmanifest)
</ParamField>

<ParamField body="action" type="typing.Optional[TrueFoundryApplyResponseAction]">
  [🔗 TrueFoundryApplyResponseAction](/docs/truefoundry_sdk/enums#truefoundryapplyresponseaction)

  The action performed: CREATE or UPDATE
</ParamField>

<ParamField body="data" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  The created or updated resource
</ParamField>

## TrueFoundryApplyResponseExistingManifest

**Union, One Of:**

* [🔗 MlRepoManifest](#mlrepomanifest)
* [🔗 ArtifactManifest](#artifactmanifest)
* [🔗 ModelManifest](#modelmanifest)
* [🔗 ChatPromptManifest](#chatpromptmanifest)
* [🔗 DataDirectory](#datadirectory)
* [🔗 Service](#service)
* [🔗 ApplicationSet](#applicationset)
* [🔗 ProviderAccounts](#provideraccounts)
* [🔗 ClusterManifest](#clustermanifest)
* [🔗 WorkspaceManifest](#workspacemanifest)
* [🔗 Job](#job)
* [🔗 Helm](#helm)
* [🔗 Volume](#volume)
* [🔗 Notebook](#notebook)
* [🔗 RStudio](#rstudio)
* [🔗 Workflow](#workflow)
* [🔗 AsyncService](#asyncservice)
* [🔗 SshServer](#sshserver)
* [🔗 SparkJob](#sparkjob)
* [🔗 GatewayConfig](#gatewayconfig)
* [🔗 TeamManifest](#teammanifest)
* [🔗 PolicyManifest](#policymanifest)
* [🔗 RoleManifest](#rolemanifest)
* [🔗 AlertConfig](#alertconfig)
* [🔗 VirtualAccountManifest](#virtualaccountmanifest)
* [🔗 CommonToolsSettings](#commontoolssettings)
* [🔗 AiFeaturesSettings](#aifeaturessettings)
* [🔗 SecretGroupManifest](#secretgroupmanifest)
* [🔗 AgentManifest](#agentmanifest)
* [🔗 EnvironmentManifest](#environmentmanifest)
* [🔗 TracingProjectManifest](#tracingprojectmanifest)
* [🔗 McpServerManifest](#mcpservermanifest)
* [🔗 RoleBindingManifest](#rolebindingmanifest)

## TrueFoundryArtifactSource

<ParamField body="type" type="typing.Literal[Any]" default="truefoundry-artifact" required />

<ParamField body="artifact_version_fqn" type="str" required>
  Artifact or Model Version FQN of the artifact to be downloaded
</ParamField>

<ParamField body="download_path_env_variable" type="str" required>
  Environment variable which will contain the download path of the artifact
</ParamField>

## TrueFoundryDbssm

<ParamField body="type" type="typing.Literal[Any]" default="integration/secret-store/truefoundry/db" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## TrueFoundryDeleteRequestManifest

**Union, One Of:**

* [🔗 MlRepoManifest](#mlrepomanifest)
* [🔗 ArtifactManifest](#artifactmanifest)
* [🔗 ModelManifest](#modelmanifest)
* [🔗 ChatPromptManifest](#chatpromptmanifest)
* [🔗 DataDirectory](#datadirectory)
* [🔗 Service](#service)
* [🔗 ApplicationSet](#applicationset)
* [🔗 ProviderAccounts](#provideraccounts)
* [🔗 ClusterManifest](#clustermanifest)
* [🔗 WorkspaceManifest](#workspacemanifest)
* [🔗 Job](#job)
* [🔗 Helm](#helm)
* [🔗 Volume](#volume)
* [🔗 Notebook](#notebook)
* [🔗 RStudio](#rstudio)
* [🔗 Workflow](#workflow)
* [🔗 AsyncService](#asyncservice)
* [🔗 SshServer](#sshserver)
* [🔗 SparkJob](#sparkjob)
* [🔗 GatewayConfig](#gatewayconfig)
* [🔗 TeamManifest](#teammanifest)
* [🔗 PolicyManifest](#policymanifest)
* [🔗 RoleManifest](#rolemanifest)
* [🔗 AlertConfig](#alertconfig)
* [🔗 VirtualAccountManifest](#virtualaccountmanifest)
* [🔗 CommonToolsSettings](#commontoolssettings)
* [🔗 AiFeaturesSettings](#aifeaturessettings)
* [🔗 SecretGroupManifest](#secretgroupmanifest)
* [🔗 AgentManifest](#agentmanifest)
* [🔗 EnvironmentManifest](#environmentmanifest)
* [🔗 TracingProjectManifest](#tracingprojectmanifest)
* [🔗 McpServerManifest](#mcpservermanifest)
* [🔗 RoleBindingManifest](#rolebindingmanifest)

## TrueFoundryInteractiveLogin

<ParamField body="type" type="typing.Literal[Any]" default="truefoundry_oauth" required />

<ParamField body="bypass_auth_paths" type="typing.Optional[typing.List[str]]">
  List of paths that will bypass auth. needs to start with a forward slash(/) and should not contain wildcards(\*)
</ParamField>

## TrueFoundryManagedSource

<ParamField body="type" type="typing.Literal[Any]" default="truefoundry" required />

<ParamField body="uri" type="typing.Optional[str]" />

## TrueFoundryProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/truefoundry" required />

<ParamField body="name" type="str" required>
  The name of the provider account.
</ParamField>

<ParamField body="integrations" type="typing.Optional[typing.List[TrueFoundryIntegrations]]">
  List of integrations that are associated with the provider account.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## TtlProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/ttl" required />

<ParamField body="name" type="str" required>
  The name of the provider account.
</ParamField>

<ParamField body="integrations" type="typing.List[TtlIntegrations]" required>
  List of integrations that are associated with the provider account.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## TtlRegistry

<ParamField body="type" type="typing.Literal[Any]" default="integration/docker-registry/ttl" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="registry_url" type="str" default="https://ttl.sh" required>
  The URL of the registry.
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## UpdateSecretInput

<ParamField body="key" type="str" required>
  Key of the secret.
</ParamField>

<ParamField body="value" type="typing.Optional[str]">
  Value of the secret.
</ParamField>

## UpdateUserRolesResponse

**Union, One Of:**

* [🔗 UniversalBaseModel](#universalbasemodel)

## UpgradeData

<ParamField body="diff" type="typing.Optional[typing.List[Any]]" />

<ParamField body="current_manifest" type="typing_extensions.Annotated[(typing.Optional[Helm], Any, Any)]">
  [🔗 Helm](/docs/truefoundry_sdk/types#helm)
</ParamField>

<ParamField body="desired_manifest" type="typing_extensions.Annotated[(typing.Optional[Helm], Any, Any)]">
  [🔗 Helm](/docs/truefoundry_sdk/types#helm)
</ParamField>

<ParamField body="upgrade_possible" type="typing_extensions.Annotated[(typing.Optional[bool], Any, Any)]" />

<ParamField body="conflict_fields" type="typing_extensions.Annotated[(typing.Optional[typing.List[str]], Any, Any)]" />

<ParamField body="has_conflict" type="typing_extensions.Annotated[(typing.Optional[bool], Any, Any)]" />

## UploadSpecSource

<ParamField body="type" type="typing.Literal[Any]" default="upload" required />

<ParamField body="url" type="str" required>
  Cloud storage path where the OpenAPI specification is stored (S3, GCS, or Azure Blob).
</ParamField>

## UsageCodeSnippet

<ParamField body="display_name" type="str" required>
  Display name for the code snippet (e.g., 'Python', 'JavaScript')
</ParamField>

<ParamField body="language" type="str" required>
  Programming language of the code snippet (e.g., 'python', 'javascript')
</ParamField>

<ParamField body="libraries" type="typing.Optional[typing.List[str]]">
  List of libraries/frameworks used in the code snippet
</ParamField>

<ParamField body="code" type="str" required>
  Code snippet demonstrating how to use the prompt version
</ParamField>

## User

<ParamField body="id" type="str" required />

<ParamField body="email" type="str" required />

<ParamField body="tenant_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="metadata" type="UserMetadata" required>
  [🔗 UserMetadata](/docs/truefoundry_sdk/types#usermetadata)
</ParamField>

<ParamField body="roles" type="typing.Optional[typing.List[str]]" />

<ParamField body="roles_with_resource" type="typing_extensions.Annotated[(typing.Optional[typing.List[RoleWithResource]], Any, Any)]">
  [🔗 RoleWithResource](/docs/truefoundry_sdk/types#rolewithresource)
</ParamField>

<ParamField body="accounts" type="typing.Optional[typing.List[AccountInfo]]">
  [🔗 AccountInfo](/docs/truefoundry_sdk/types#accountinfo)
</ParamField>

<ParamField body="active" type="bool" required />

<ParamField body="is_editable" type="typing_extensions.Annotated[(bool, Any, Any)]" required />

<ParamField body="created_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="updated_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

## UserMessage

<ParamField body="role" type="typing.Literal[Any]" default="user" required>
  Role of the message
</ParamField>

<ParamField body="content" type="UserMessageContent" required>
  [🔗 UserMessageContent](/docs/truefoundry_sdk/types#usermessagecontent)

  Content of the user message. can be a mix of text and images
</ParamField>

<ParamField body="name" type="typing.Optional[str]">
  Name of the user this message is from
</ParamField>

## UserMessageContent

**Union, One Of:**

* [🔗 str](#str)
* [🔗 BlobStorageReference](#blobstoragereference)

## UserMessageContentOneItem

**Union, One Of:**

* [🔗 TextContentPart](#textcontentpart)
* [🔗 ImageContentPart](#imagecontentpart)

## UserMetadata

<ParamField body="sub" type="typing.Optional[str]" />

<ParamField body="image_url" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="picture_download_path" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="display_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="user_object" type="typing_extensions.Annotated[(typing.Optional[typing.Dict[(str, typing.Any)]], Any, Any)]" />

<ParamField body="invite_accepted" type="typing_extensions.Annotated[(typing.Optional[bool], Any, Any)]" />

<ParamField body="registered_in_idp" type="typing_extensions.Annotated[(typing.Optional[bool], Any, Any)]" />

<ParamField body="preference" type="typing.Optional[typing.Dict[(str, typing.Any)]]" />

<ParamField body="groups" type="typing.Optional[typing.List[str]]" />

<ParamField body="tenant_role_managed_by" type="typing_extensions.Annotated[(typing.Optional[UserMetadataTenantRoleManagedBy], Any, Any)]">
  [🔗 UserMetadataTenantRoleManagedBy](/docs/truefoundry_sdk/enums#usermetadatatenantrolemanagedby)
</ParamField>

<ParamField body="sso_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="is_primary_sso" type="typing_extensions.Annotated[(typing.Optional[bool], Any, Any)]" />

<ParamField body="scim_user_object" type="typing_extensions.Annotated[(typing.Optional[typing.Dict[(str, typing.Any)]], Any, Any)]" />

<ParamField body="created_by_scim" type="typing_extensions.Annotated[(typing.Optional[bool], Any, Any)]" />

## UserResource

<ParamField body="resource_type" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="resource_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="role_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="resource_name" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## UserTeamInfo

<ParamField body="team_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="roles" type="typing.List[str]" required>
  Roles of the user in the team
</ParamField>

## Uv

<ParamField body="type" type="typing.Literal[Any]" default="uv" required />

<ParamField body="uv_version" type="typing.Optional[str]" default="latest">
  UV version to use
</ParamField>

<ParamField body="sync_options" type="typing.Optional[str]">
  Sync options to pass to uv command
</ParamField>

## ValidationError

<ParamField body="loc" type="typing.List[ValidationErrorLocItem]" required>
  [🔗 ValidationErrorLocItem](/docs/truefoundry_sdk/types#validationerrorlocitem)
</ParamField>

<ParamField body="msg" type="str" required />

<ParamField body="type" type="str" required />

## ValidationErrorLocItem

**Union, One Of:**

* [🔗 str](#str)
* [🔗 int](#int)

## VertexKeyFileAuth

<ParamField body="type" type="typing.Literal[Any]" default="key-file" required />

<ParamField body="key_file_content" type="VertexKeyFileAuthKeyFileContent" required>
  [🔗 VertexKeyFileAuthKeyFileContent](/docs/truefoundry_sdk/types#vertexkeyfileauthkeyfilecontent)

  JSON from a downloadable Google Cloud service account key (type service\_account). Not for Workload Identity Federation; use authentication type Workload Identity Federation file (workload-identity-federation-file) for gcloud iam workload-identity-pools create-cred-config output.
</ParamField>

## VertexKeyFileAuthKeyFileContent

**Union, One Of:**

* [🔗 str](#str)

## VertexModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/vertex" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The Google Vertex AI model identifier (e.g., gemini-2.5-pro, anthropic/claude-sonnet-4-5\@20250929). This is the model version name from Vertex AI's model catalog.
</ParamField>

<ParamField body="region" type="typing.Optional[VertexRegion]">
  [🔗 VertexRegion](/docs/truefoundry_sdk/enums#vertexregion)
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the Vertex AI model (e.g., chat, text, etc.)
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## VertexWifFileAuth

<ParamField body="type" type="typing.Literal[Any]" default="workload-identity-federation-file" required />

<ParamField body="key_file_content" type="VertexWifFileAuthKeyFileContent" required>
  [🔗 VertexWifFileAuthKeyFileContent](/docs/truefoundry_sdk/types#vertexwiffileauthkeyfilecontent)

  JSON credential configuration for Workload Identity Federation (ADC type external\_account), for example from gcloud iam workload-identity-pools create-cred-config. This is not a service account private key. Same field name as key-file auth (key\_file\_content); use auth\_data.type workload-identity-federation-file vs key-file to distinguish.
</ParamField>

## VertexWifFileAuthKeyFileContent

**Union, One Of:**

* [🔗 str](#str)

## VirtualAccount

<ParamField body="id" type="str" required />

<ParamField body="type" type="str" required />

<ParamField body="tenant_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="manifest" type="typing.Optional[VirtualAccountManifest]">
  [🔗 VirtualAccountManifest](/docs/truefoundry_sdk/types#virtualaccountmanifest)
</ParamField>

<ParamField body="jwt_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="created_by_subject" type="typing_extensions.Annotated[(Subject, Any, Any)]" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="created_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="updated_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="is_expired" type="typing_extensions.Annotated[(typing.Optional[bool], Any, Any)]" />

<ParamField body="jwts" type="typing.Optional[typing.List[Jwt]]">
  [🔗 Jwt](/docs/truefoundry_sdk/types#jwt)
</ParamField>

<ParamField body="account_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="metadata" type="typing.Optional[typing.Dict[(str, typing.Any)]]" />

<ParamField body="role_ids" type="typing_extensions.Annotated[(typing.Optional[typing.List[str]], Any, Any)]" />

<ParamField body="roles_with_resource" type="typing_extensions.Annotated[(typing.Optional[typing.List[RoleWithResource]], Any, Any)]">
  [🔗 RoleWithResource](/docs/truefoundry_sdk/types#rolewithresource)
</ParamField>

<ParamField body="created_by" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="next_scheduled_rotation" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## VirtualAccountManifest

<ParamField body="name" type="str" required>
  Virtual Account Name
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="virtual-account" required />

<ParamField body="permissions" type="typing.List[Permissions]" required>
  [🔗 Permissions](/docs/truefoundry_sdk/types#permissions)

  Permissions
</ParamField>

<ParamField body="expiration_date" type="typing.Optional[str]">
  Expiration Date of the Virtual Account (should be in the format yyyy-mm-dd)
</ParamField>

<ParamField body="auto_rotate" type="typing.Optional[AutoRotate]">
  [🔗 AutoRotate](/docs/truefoundry_sdk/types#autorotate)
</ParamField>

<ParamField body="notification_target" type="typing.Optional[NotificationTarget]">
  [🔗 NotificationTarget](/docs/truefoundry_sdk/types#notificationtarget)
</ParamField>

<ParamField body="secret_store_config" type="typing.Optional[SecretStoreConfig]">
  [🔗 SecretStoreConfig](/docs/truefoundry_sdk/types#secretstoreconfig)
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[VirtualAccountOwnedBy], Any, Any)]">
  [🔗 VirtualAccountOwnedBy](/docs/truefoundry_sdk/types#virtualaccountownedby)
</ParamField>

<ParamField body="tags" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Key-value pairs to categorize this Virtual Account (e.g., by owner or environment).
</ParamField>

## VirtualAccountOwnedBy

<ParamField body="account" type="typing.Optional[str]">
  The name of the account that owns this resource
</ParamField>

<ParamField body="team" type="str" required>
  The name of the team that owns this resource
</ParamField>

## VirtualMcpServerIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/mcp-server/virtual" required />

<ParamField body="name" type="str" required>
  The name of the Virtual MCP Server.
</ParamField>

<ParamField body="description" type="str" required>
  Provide a brief description of the purpose of this Virtual MCP Server.
</ParamField>

<ParamField body="servers" type="typing.List[VirtualMcpServerSource]" required>
  [🔗 VirtualMcpServerSource](/docs/truefoundry_sdk/types#virtualmcpserversource)

  List of source MCP servers to include in this virtual server.
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of teams/users who can use this MCP server.
</ParamField>

## VirtualMcpServerManifest

<ParamField body="type" type="typing.Literal[Any]" default="mcp-server/virtual" required />

<ParamField body="name" type="str" required>
  The name of the Virtual MCP Server.
</ParamField>

<ParamField body="description" type="str" required>
  Provide a brief description of the purpose of this Virtual MCP Server.
</ParamField>

<ParamField body="servers" type="typing.List[McpServerSource]" required>
  [🔗 McpServerSource](/docs/truefoundry_sdk/types#mcpserversource)

  List of source MCP servers to include in this virtual server.
</ParamField>

<ParamField body="collaborators" type="typing.List[Collaborator]" required>
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  Users and Teams that have access to this Virtual MCP Server
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

<ParamField body="tags" type="typing.Optional[typing.Dict[(str, typing.Any)]]">
  Key-value pairs to categorize this Virtual MCP Server (e.g., by owner or environment).
</ParamField>

## VirtualMcpServerSource

<ParamField body="name" type="str" required>
  Name of the source MCP server within this group (use \{provider\_account\_name}/\{integration\_name} format).
</ParamField>

<ParamField body="enabled_tools" type="typing.Optional[typing.List[str]]">
  List of tools to enable from this source server.
</ParamField>

<ParamField body="auth_data" type="typing.Optional[McpServerHeaderOverrideAuth]">
  [🔗 McpServerHeaderOverrideAuth](/docs/truefoundry_sdk/types#mcpserverheaderoverrideauth)
</ParamField>

## VirtualModel

<ParamField body="name" type="str" required>
  The name of the Virtual Model
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/virtual" required />

<ParamField body="model_types" type="typing.List[VirtualModelModelType]" required>
  [🔗 VirtualModelModelType](/docs/truefoundry_sdk/enums#virtualmodelmodeltype)

  Specify the type of the Virtual Model
</ParamField>

<ParamField body="slug" type="typing.Optional[str]">
  It should be a unique identifier for the virtual model. It is used to uniquely identify the virtual model. It can be used in place of virtualGroupName/virtualModelName.
</ParamField>

<ParamField body="routing_config" type="HeaderRoutingConfig" required>
  [🔗 HeaderRoutingConfig](/docs/truefoundry_sdk/types#headerroutingconfig)
</ParamField>

## VirtualModelProviderAccount

<ParamField body="name" type="str" required>
  The name of the Virtual Model Provider Group
</ParamField>

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/virtual-model" required />

<ParamField body="integrations" type="typing.List[VirtualModel]" required>
  [🔗 VirtualModel](/docs/truefoundry_sdk/types#virtualmodel)

  List of virtual models in this group
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this Virtual Model Provider Group
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## Volume

<ParamField body="type" type="typing.Literal[Any]" default="volume" required />

<ParamField body="name" type="str" required>
  Name of the Volume. This will be set as the volume name.
</ParamField>

<ParamField body="config" type="VolumeConfig" required>
  [🔗 VolumeConfig](/docs/truefoundry_sdk/types#volumeconfig)

  Volume Config - Volume Configuration, can be either Dynamically provisioned or statically provisioned.
</ParamField>

<ParamField body="volume_browser" type="typing.Optional[VolumeBrowser]">
  [🔗 VolumeBrowser](/docs/truefoundry_sdk/types#volumebrowser)
</ParamField>

<ParamField body="workspace_fqn" type="typing.Optional[str]">
  Fully qualified name of the workspace
</ParamField>

## VolumeBrowser

<ParamField body="username" type="typing.Optional[str]">
  Username for logging in the volume browser.
</ParamField>

<ParamField body="password_secret_fqn" type="typing.Optional[str]">
  TFY Secret containing the password for logging in the volume browser.
</ParamField>

<ParamField body="endpoint" type="Endpoint" required>
  [🔗 Endpoint](/docs/truefoundry_sdk/types#endpoint)
</ParamField>

<ParamField body="service_account" type="typing.Optional[str]">
  Kubernetes Service account name for the volume browser.
</ParamField>

## VolumeConfig

**Union, One Of:**

* [🔗 DynamicVolumeConfig](#dynamicvolumeconfig)
* [🔗 StaticVolumeConfig](#staticvolumeconfig)

## VolumeMount

<ParamField body="type" type="typing.Literal[Any]" default="volume" required />

<ParamField body="mount_path" type="str" required>
  Absolute file path where the volume will be mounted.
</ParamField>

<ParamField body="sub_path" type="typing.Optional[str]">
  Sub path within the volume to mount. Defaults to root of the volume.
</ParamField>

<ParamField body="volume_fqn" type="str" required>
  The TrueFoundry volume that needs to be mounted.
</ParamField>

## WebhookBasicAuth

<ParamField body="type" type="typing.Literal[Any]" default="webhook-basic" required />

<ParamField body="username" type="str" required>
  Basic auth username
</ParamField>

<ParamField body="password" type="str" required>
  Basic auth password
</ParamField>

## WebhookBearerAuth

<ParamField body="type" type="typing.Literal[Any]" default="webhook-bearer" required />

<ParamField body="token" type="str" required>
  Bearer token for authentication
</ParamField>

<ParamField body="prefix" type="str" default="Bearer" required>
  Prefix for the token
</ParamField>

## WebhookIntegration

<ParamField body="type" type="typing.Literal[Any]" default="integration/gateway-request-logger/webhook" required />

<ParamField body="name" type="str" required>
  The name of the integration that will be displayed in the TrueFoundry UI.
</ParamField>

<ParamField body="webhook_url" type="str" required>
  The URL of the webhook endpoint
</ParamField>

<ParamField body="auth_data" type="typing.Optional[WebhookIntegrationAuthData]">
  [🔗 WebhookIntegrationAuthData](/docs/truefoundry_sdk/types#webhookintegrationauthdata)

  Authentication configuration for the webhook
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## WebhookIntegrationAuthData

**Union, One Of:**

* [🔗 WebhookBasicAuth](#webhookbasicauth)
* [🔗 WebhookBearerAuth](#webhookbearerauth)

## WebhookProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/webhook" required />

<ParamField body="name" type="str" required>
  The name of the provider account.
</ParamField>

<ParamField body="integrations" type="typing.List[WebhookIntegrations]" required>
  [🔗 WebhookIntegration](/docs/truefoundry_sdk/types#webhookintegration)

  List of integrations that are associated with the provider account.
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## WeightBasedLoadBalancing

<ParamField body="type" type="typing.Literal[Any]" default="weight-based-routing" required />

<ParamField body="load_balance_targets" type="typing.List[LoadBalanceTarget]" required>
  [🔗 LoadBalanceTarget](/docs/truefoundry_sdk/types#loadbalancetarget)

  List of targets for load balancing with weights
</ParamField>

<ParamField body="sticky_routing" type="typing.Optional[StickyRouting]">
  [🔗 StickyRouting](/docs/truefoundry_sdk/types#stickyrouting)
</ParamField>

## WeightBasedLoadBalancingRule

<ParamField body="id" type="str" required>
  Unique identifier for the rule
</ParamField>

<ParamField body="when" type="LoadBalancingWhen" required>
  [🔗 LoadBalancingWhen](/docs/truefoundry_sdk/types#loadbalancingwhen)
</ParamField>

## WorkbenchImage

<ParamField body="image_uri" type="str" required>
  The image URI. Specify the name of the image and the tag. If the image is in Dockerhub, you can skip registry-url (for e.g. `tensorflow/tensorflow`). You can use an image from a private registry using Advanced fields
</ParamField>

<ParamField body="build_script" type="typing.Optional[str]">
  The build script to run when building the image. This will be executed as the last step in the docker build process as the root user (RUN DEBIAN\_FRONTEND=noninteractive bash -ex build\_script.sh)
</ParamField>

<ParamField body="docker_registry" type="typing.Optional[str]">
  FQN of the container registry. If you can't find your registry here, add it through the [Integrations](/docs/integrations-overview) page
</ParamField>

## WorkerConfig

<ParamField body="input_config" type="WorkerConfigInputConfig" required>
  [🔗 WorkerConfigInputConfig](/docs/truefoundry_sdk/types#workerconfiginputconfig)

  Input Config
</ParamField>

<ParamField body="output_config" type="typing.Optional[WorkerConfigOutputConfig]">
  [🔗 WorkerConfigOutputConfig](/docs/truefoundry_sdk/types#workerconfigoutputconfig)

  Output Config
</ParamField>

<ParamField body="num_concurrent_workers" type="int" default="1" required>
  Number of concurrent workers to spawn for the processor
</ParamField>

## WorkerConfigInputConfig

**Union, One Of:**

* [🔗 SqsInputConfig](#sqsinputconfig)
* [🔗 NatsInputConfig](#natsinputconfig)
* [🔗 KafkaInputConfig](#kafkainputconfig)
* [🔗 AmqpInputConfig](#amqpinputconfig)

## WorkerConfigOutputConfig

**Union, One Of:**

* [🔗 SqsOutputConfig](#sqsoutputconfig)
* [🔗 NatsOutputConfig](#natsoutputconfig)
* [🔗 CoreNatsOutputConfig](#corenatsoutputconfig)
* [🔗 KafkaOutputConfig](#kafkaoutputconfig)
* [🔗 AmqpOutputConfig](#amqpoutputconfig)

## Workflow

<ParamField body="type" type="typing.Literal[Any]" default="workflow" required />

<ParamField body="name" type="str" required>
  Name of the workflow
</ParamField>

<ParamField body="source" type="WorkflowSource" required>
  [🔗 WorkflowSource](/docs/truefoundry_sdk/types#workflowsource)

  Source Code for the workflow, either local or remote
</ParamField>

<ParamField body="workflow_file_path" type="str" required>
  Path to the workflow file relative to the project root path
</ParamField>

<ParamField body="flyte_entities" type="typing.Optional[typing.List[WorkflowFlyteEntitiesItem]]">
  [🔗 WorkflowFlyteEntitiesItem](/docs/truefoundry_sdk/types#workflowflyteentitiesitem)

  Flyte Entities
</ParamField>

<ParamField body="alerts" type="typing.Optional[typing.List[WorkflowAlert]]">
  [🔗 WorkflowAlert](/docs/truefoundry_sdk/types#workflowalert)

  Alerts
</ParamField>

## WorkflowAlert

<ParamField body="notification_target" type="typing.Optional[NotificationTarget]">
  [🔗 NotificationTarget](/docs/truefoundry_sdk/types#notificationtarget)
</ParamField>

<ParamField body="on_completion" type="typing.Optional[bool]">
  Send an alert when the job completes
</ParamField>

<ParamField body="on_failure" type="typing.Optional[bool]">
  Send an alert when the job fails
</ParamField>

## WorkflowFlyteEntitiesItem

**Union, One Of:**

* [🔗 FlyteTask](#flytetask)
* [🔗 FlyteWorkflow](#flyteworkflow)
* [🔗 FlyteLaunchPlan](#flytelaunchplan)

## WorkflowSource

**Union, One Of:**

* [🔗 LocalSource](#localsource)
* [🔗 RemoteSource](#remotesource)

## Workspace

<ParamField body="id" type="str" required />

<ParamField body="fqn" type="str" required />

<ParamField body="tenant_name" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="cluster_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="created_by_subject" type="typing_extensions.Annotated[(Subject, Any, Any)]" required>
  [🔗 Subject](/docs/truefoundry_sdk/types#subject)
</ParamField>

<ParamField body="created_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="updated_at" type="typing_extensions.Annotated[(dt.datetime, Any, Any)]" required />

<ParamField body="environment_id" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

<ParamField body="manifest" type="WorkspaceManifest" required>
  [🔗 WorkspaceManifest](/docs/truefoundry_sdk/types#workspacemanifest)
</ParamField>

<ParamField body="account_id" type="typing_extensions.Annotated[(str, Any, Any)]" required />

<ParamField body="is_system_ws" type="typing_extensions.Annotated[(typing.Optional[bool], Any, Any)]" />

<ParamField body="created_by" type="typing_extensions.Annotated[(typing.Optional[str], Any, Any)]" />

## WorkspaceManifest

<ParamField body="type" type="typing.Literal[Any]" default="workspace" required />

<ParamField body="cluster_fqn" type="str" required>
  Cluster FQN
</ParamField>

<ParamField body="name" type="str" required>
  Name - 3 to 32 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
</ParamField>

<ParamField body="environment_name" type="typing.Optional[str]">
  Tag the environment like dev, staging or production. You will need to [create environments](https://docs.truefoundry.com/docs/key-concepts#creating-environments) if you don't have already.
</ParamField>

<ParamField body="labels" type="typing.Optional[typing.Dict[(str, str)]]" />

<ParamField body="annotations" type="typing.Optional[typing.Dict[(str, str)]]" />

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  Collaborators
</ParamField>

<ParamField body="permissions" type="typing.Optional[typing.List[Permissions]]">
  [🔗 Permissions](/docs/truefoundry_sdk/types#permissions)

  Permissions
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## WorkspacesDeleteResponse

<ParamField body="workspace" type="typing.Optional[Workspace]">
  [🔗 Workspace](/docs/truefoundry_sdk/types#workspace)
</ParamField>

<ParamField body="message" type="typing.Optional[str]">
  Destroyed the workspace
</ParamField>

## XaiKeyAuth

<ParamField body="type" type="typing.Literal[Any]" default="api-key" required />

<ParamField body="api_key" type="str" required>
  The API key for xAI authentication
</ParamField>

## XaiModel

<ParamField body="type" type="typing.Literal[Any]" default="integration/model/xai" required />

<ParamField body="name" type="str" required>
  A descriptive name to identify this model integration in the UI
</ParamField>

<ParamField body="model_id" type="str" required>
  The xAI model identifier (e.g., grok-4-1-fast-reasoning, grok-4-1-fast-non-reasoning, grok-4). This is the model name from xAI's model catalog.
</ParamField>

<ParamField body="model_types" type="typing.List[ModelType]" required>
  [🔗 ModelType](/docs/truefoundry_sdk/enums#modeltype)

  Specify the type of the xAI model
</ParamField>

<ParamField body="cost" type="typing.Optional[ModelCostMetric]">
  [🔗 ModelCostMetric](/docs/truefoundry_sdk/types#modelcostmetric)
</ParamField>

<ParamField body="authorized_subjects" type="typing.Optional[typing.List[str]]">
  List of subjects that are authorized to access this integration. List of user fqn in format \<user\_type>:\<username>.
</ParamField>

## XaiProviderAccount

<ParamField body="type" type="typing.Literal[Any]" default="provider-account/xai" required />

<ParamField body="name" type="str" required>
  The name of the xAI provider account
</ParamField>

<ParamField body="auth_data" type="XaiKeyAuth" required>
  [🔗 XaiKeyAuth](/docs/truefoundry_sdk/types#xaikeyauth)
</ParamField>

<ParamField body="integrations" type="typing.Optional[typing.List[XaiIntegrations]]">
  List of integrations that are associated with the xAI provider account
</ParamField>

<ParamField body="collaborators" type="typing.Optional[typing.List[Collaborator]]">
  [🔗 Collaborator](/docs/truefoundry_sdk/types#collaborator)

  List of users who have access to this provider account
</ParamField>

<ParamField body="owned_by" type="typing_extensions.Annotated[(typing.Optional[OwnedBy], Any, Any)]">
  [🔗 OwnedBy](/docs/truefoundry_sdk/types#ownedby)
</ParamField>

## XgBoostFramework

<ParamField body="type" type="typing.Literal[Any]" default="xgboost" required />

<ParamField body="serialization_format" type="typing.Optional[XgBoostSerializationFormat]">
  [🔗 XgBoostSerializationFormat](/docs/truefoundry_sdk/enums#xgboostserializationformat)
</ParamField>

<ParamField body="model_filepath" type="typing.Optional[str]">
  Relative path to the model file in the model version contents
</ParamField>

<ParamField body="model_schema" type="typing.Optional[XgBoostModelSchema]">
  [🔗 XgBoostModelSchema](/docs/truefoundry_sdk/types#xgboostmodelschema)
</ParamField>

## XgBoostModelSchema

<ParamField body="infer_method_name" type="typing.Literal[Any]" default="predict" required>
  Name of the method used for inference
</ParamField>

<ParamField body="inputs" type="typing.List[typing.Dict[(str, typing.Any)]]" required>
  Schema of the input
</ParamField>

<ParamField body="outputs" type="typing.List[typing.Dict[(str, typing.Any)]]" required>
  Schema of the output
</ParamField>
