> ## 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.

# Create or update a resource from a manifest

> Apply a manifest to create or update a resource.



## OpenAPI

````yaml /openapi.json put /api/svc/v1/apply
openapi: 3.1.0
info:
  title: TrueFoundry API
  description: API for TrueFoundry
  version: 0.1.0
  contact: {}
servers:
  - url: https://{controlPlaneURL}
    variables:
      controlPlaneURL:
        default: app.truefoundry.com
        description: Control Plane URL
security: []
tags:
  - name: Agent
  - name: Agent Skills
  - name: Applications
  - name: Metrics
  - name: Apply
  - name: Artifacts
  - name: Audit Logs
  - name: Clusters
  - name: Jobs
  - name: Logs
  - name: MCP Servers V2
  - name: MLRepos
  - name: Model Deployments
  - name: Models
  - name: Personal Access Tokens
  - name: Prompts
  - name: Provider Integrations
  - name: SCIM v2
  - name: Secret Groups
  - name: Secrets
  - name: Teams
  - name: Traces
  - name: Users
  - name: Virtual Accounts
  - name: Role Bindings
  - name: Workspaces
paths:
  /api/svc/v1/apply:
    put:
      tags:
        - Apply
      summary: Create or update a resource from a manifest
      description: Apply a manifest to create or update a resource.
      operationId: TfyApply.apply
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrueFoundryApplyRequest'
      responses:
        '200':
          description: The created or updated resource, and the action that was performed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrueFoundryApplyResponse'
      security:
        - jwt: []
components:
  schemas:
    TrueFoundryApplyRequest:
      type: object
      properties:
        manifest:
          description: Manifest of the resource to be created or updated
          oneOf:
            - $ref: '#/components/schemas/MLRepoManifest'
            - $ref: '#/components/schemas/ArtifactManifest'
            - $ref: '#/components/schemas/ModelManifest'
            - $ref: '#/components/schemas/ChatPromptManifest'
            - 439fe99d-682a-45c1-b852-5efa6a8e10a9
            - $ref: '#/components/schemas/Service'
            - $ref: '#/components/schemas/ApplicationSet'
            - $ref: '#/components/schemas/ProviderAccounts'
            - $ref: '#/components/schemas/ClusterManifest'
            - $ref: '#/components/schemas/WorkspaceManifest'
            - $ref: '#/components/schemas/Job'
            - $ref: '#/components/schemas/Helm'
            - $ref: '#/components/schemas/Volume'
            - $ref: '#/components/schemas/Notebook'
            - $ref: '#/components/schemas/RStudio'
            - $ref: '#/components/schemas/Workflow'
            - $ref: '#/components/schemas/AsyncService'
            - $ref: '#/components/schemas/SSHServer'
            - $ref: '#/components/schemas/SparkJob'
            - $ref: '#/components/schemas/GatewayConfig'
            - $ref: '#/components/schemas/TeamManifest'
            - $ref: '#/components/schemas/PolicyManifest'
            - $ref: '#/components/schemas/RoleManifest'
            - $ref: '#/components/schemas/AlertConfig'
            - $ref: '#/components/schemas/VirtualAccountManifest'
            - $ref: '#/components/schemas/CommonToolsSettings'
            - $ref: '#/components/schemas/AIFeaturesSettings'
            - $ref: '#/components/schemas/SecretGroupManifest'
            - $ref: '#/components/schemas/AgentManifest'
            - $ref: '#/components/schemas/EnvironmentManifest'
            - $ref: '#/components/schemas/TracingProjectManifest'
            - $ref: '#/components/schemas/MCPServerManifest'
            - $ref: '#/components/schemas/RoleBindingManifest'
            - $ref: '#/components/schemas/AgentIdentityManifest'
        dryRun:
          type: boolean
          default: false
          description: Dry run the apply operation without actually applying
          nullable: true
      required:
        - manifest
      title: TrueFoundryApplyRequest
      x-fern-type-name: TrueFoundryApplyRequest
    TrueFoundryApplyResponse:
      type: object
      properties:
        existingManifest:
          description: The existing manifest of the resource
          oneOf:
            - $ref: '#/components/schemas/MLRepoManifest'
            - $ref: '#/components/schemas/ArtifactManifest'
            - $ref: '#/components/schemas/ModelManifest'
            - $ref: '#/components/schemas/ChatPromptManifest'
            - bc745d42-46fd-49f4-bc40-b19b31dff689
            - $ref: '#/components/schemas/Service'
            - $ref: '#/components/schemas/ApplicationSet'
            - $ref: '#/components/schemas/ProviderAccounts'
            - $ref: '#/components/schemas/ClusterManifest'
            - $ref: '#/components/schemas/WorkspaceManifest'
            - $ref: '#/components/schemas/Job'
            - $ref: '#/components/schemas/Helm'
            - $ref: '#/components/schemas/Volume'
            - $ref: '#/components/schemas/Notebook'
            - $ref: '#/components/schemas/RStudio'
            - $ref: '#/components/schemas/Workflow'
            - $ref: '#/components/schemas/AsyncService'
            - $ref: '#/components/schemas/SSHServer'
            - $ref: '#/components/schemas/SparkJob'
            - $ref: '#/components/schemas/GatewayConfig'
            - $ref: '#/components/schemas/TeamManifest'
            - $ref: '#/components/schemas/PolicyManifest'
            - $ref: '#/components/schemas/RoleManifest'
            - $ref: '#/components/schemas/AlertConfig'
            - $ref: '#/components/schemas/VirtualAccountManifest'
            - $ref: '#/components/schemas/CommonToolsSettings'
            - $ref: '#/components/schemas/AIFeaturesSettings'
            - $ref: '#/components/schemas/SecretGroupManifest'
            - $ref: '#/components/schemas/AgentManifest'
            - $ref: '#/components/schemas/EnvironmentManifest'
            - $ref: '#/components/schemas/TracingProjectManifest'
            - $ref: '#/components/schemas/MCPServerManifest'
            - $ref: '#/components/schemas/RoleBindingManifest'
            - $ref: '#/components/schemas/AgentIdentityManifest'
          nullable: true
        action:
          type: string
          description: 'The action performed: CREATE or UPDATE'
          enum:
            - CREATE
            - UPDATE
          nullable: true
        data:
          type: object
          description: The created or updated resource
          nullable: true
      title: TrueFoundryApplyResponse
      x-fern-type-name: TrueFoundryApplyResponse
    MLRepoManifest:
      description: >-
        MLRepo is a repository ML training runs that log params, metrics, plots,
        images and versioned entities like artifacts, models, prompts, tools,
        agents
      type: object
      required:
        - type
        - name
        - storage_integration_fqn
        - collaborators
      properties:
        type:
          description: +value=ml-repo
          type: string
          enum:
            - ml-repo
        name:
          description: Name of the ML Repo.
          type: string
          pattern: ^[a-zA-Z][a-zA-Z0-9\-]{1,98}[a-zA-Z0-9]$
        description:
          description: Description for the ML Repo.
          type: string
          pattern: ^.{0,500}$
        storage_integration_fqn:
          description: >-
            Storage Integration to store artifacts and models. A storage
            integration represents a connected blob storage like AWS S3 / Azure
            Blob Storage / Google Cloud Storage.
          type: string
        collaborators:
          description: Users and Teams that have access to MLRepo
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: MLRepoManifest
      x-fern-type-name: MLRepoManifest
    ArtifactManifest:
      properties:
        name:
          type: string
          maxLength: 256
          pattern: ^[A-Za-z0-9_\-]+$
          title: Name
          description: >-
            Name of the artifact (alphanumeric characters, hyphens, and
            underscores only, max 256 characters)
        metadata:
          type: object
          title: Metadata
          description: >-
            Key value metadata. Should be valid JSON. For e.g.
            `{"business-unit": "sales", "quality": "good", "rating": 4.5}`
        ml_repo:
          type: string
          pattern: ^[a-zA-Z][a-zA-Z0-9\-]{1,98}[a-zA-Z0-9]$
          title: Ml Repo
          description: >-
            Name of the ML Repo that this artifact belongs to (must start and
            end with alphanumeric, 2-100 characters)
        version:
          type: integer
          minimum: 1
          title: Version
          description: Version of the entity
        type:
          type: string
          enum:
            - artifact-version
          title: Type
          default: artifact-version
        description:
          type: string
          maxLength: 512
          title: Description
        version_alias:
          type: string
          maxLength: 128
          pattern: ^v[a-zA-Z0-9.-]*([a-zA-Z0-9]+)$
          title: Version Alias
          description: >-
            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)
        source:
          oneOf:
            - $ref: '#/components/schemas/TrueFoundryManagedSource'
            - $ref: '#/components/schemas/ExternalBlobStorageSource'
            - $ref: '#/components/schemas/LocalArtifactSource'
          title: Source
          discriminator:
            propertyName: type
            mapping:
              truefoundry:
                $ref: '#/components/schemas/TrueFoundryManagedSource'
              external:
                $ref: '#/components/schemas/ExternalBlobStorageSource'
              local:
                $ref: '#/components/schemas/LocalArtifactSource'
        step:
          type: integer
          minimum: 0
          title: Step
          description: >-
            Step/Epoch number in an iterative training loop the artifact version
            was created. Generally useful when logging a model version from a
            MLRepo Run
          default: 0
        run_id:
          type: string
          title: Run Id
          description: ID of the MLRepo Run that generated the artifact version
      type: object
      required:
        - name
        - metadata
        - ml_repo
        - source
      title: ArtifactManifest
      description: Artifact Version manifest.
      x-fern-type-name: ArtifactManifest
    ModelManifest:
      properties:
        name:
          type: string
          maxLength: 256
          pattern: ^[A-Za-z0-9_\-]+$
          title: Name
          description: >-
            Name of the model (alphanumeric characters, hyphens, and underscores
            only, max 256 characters)
        metadata:
          type: object
          title: Metadata
          description: >-
            Key value metadata. Should be valid JSON. For e.g.
            `{"business-unit": "sales", "quality": "good", "rating": 4.5}`
        ml_repo:
          type: string
          pattern: ^[a-zA-Z][a-zA-Z0-9\-]{1,98}[a-zA-Z0-9]$
          title: Ml Repo
          description: >-
            Name of the ML Repo that this model belongs to (must start and end
            with alphanumeric, 2-100 characters)
        version:
          type: integer
          minimum: 1
          title: Version
          description: Version of the entity
        type:
          type: string
          enum:
            - model-version
          title: Type
          default: model-version
        description:
          type: string
          maxLength: 512
          title: Description
        version_alias:
          type: string
          maxLength: 128
          pattern: ^v[a-zA-Z0-9.-]*([a-zA-Z0-9]+)$
          title: Version Alias
          description: >-
            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)
        source:
          oneOf:
            - $ref: '#/components/schemas/TrueFoundryManagedSource'
            - $ref: '#/components/schemas/ExternalBlobStorageSource'
            - $ref: '#/components/schemas/LocalModelSource'
          title: Source
          discriminator:
            propertyName: type
            mapping:
              truefoundry:
                $ref: '#/components/schemas/TrueFoundryManagedSource'
              external:
                $ref: '#/components/schemas/ExternalBlobStorageSource'
              local:
                $ref: '#/components/schemas/LocalModelSource'
        framework:
          oneOf:
            - $ref: '#/components/schemas/TransformersFramework'
            - $ref: '#/components/schemas/TensorFlowFramework'
            - $ref: '#/components/schemas/SklearnFramework'
            - $ref: '#/components/schemas/PyTorchFramework'
            - $ref: '#/components/schemas/KerasFramework'
            - $ref: '#/components/schemas/XGBoostFramework'
            - $ref: '#/components/schemas/LightGBMFramework'
            - $ref: '#/components/schemas/FastAIFramework'
            - $ref: '#/components/schemas/H2OFramework'
            - $ref: '#/components/schemas/ONNXFramework'
            - $ref: '#/components/schemas/SpaCyFramework'
            - $ref: '#/components/schemas/StatsModelsFramework'
            - $ref: '#/components/schemas/GluonFramework'
            - $ref: '#/components/schemas/PaddleFramework'
          title: Framework
          description: >-
            Framework for the model version like Transformers, PyTorch, Sklearn,
            Xgboost etc with framework specific metadata. This will be used to
            infer model deployment configuration
          discriminator:
            propertyName: type
            mapping:
              transformers:
                $ref: '#/components/schemas/TransformersFramework'
              tensorflow:
                $ref: '#/components/schemas/TensorFlowFramework'
              sklearn:
                $ref: '#/components/schemas/SklearnFramework'
              pytorch:
                $ref: '#/components/schemas/PyTorchFramework'
              keras:
                $ref: '#/components/schemas/KerasFramework'
              xgboost:
                $ref: '#/components/schemas/XGBoostFramework'
              lightgbm:
                $ref: '#/components/schemas/LightGBMFramework'
              fastai:
                $ref: '#/components/schemas/FastAIFramework'
              h2o:
                $ref: '#/components/schemas/H2OFramework'
              onnx:
                $ref: '#/components/schemas/ONNXFramework'
              spacy:
                $ref: '#/components/schemas/SpaCyFramework'
              statsmodels:
                $ref: '#/components/schemas/StatsModelsFramework'
              gluon:
                $ref: '#/components/schemas/GluonFramework'
              paddle:
                $ref: '#/components/schemas/PaddleFramework'
        environment:
          $ref: '#/components/schemas/ModelVersionEnvironment'
        step:
          type: integer
          minimum: 0
          title: Step
          description: >-
            Step/Epoch number in an iterative training loop the model version
            was created. Generally useful when logging a model version from a
            MLRepo Run
          default: 0
        run_id:
          type: string
          title: Run Id
          description: ID of the MLRepo Run that generated the model version
      type: object
      required:
        - name
        - metadata
        - ml_repo
        - source
      title: ModelManifest
      description: Model Version artifact.
      x-fern-type-name: ModelManifest
    ChatPromptManifest:
      properties:
        name:
          type: string
          maxLength: 256
          pattern: ^[A-Za-z0-9_\-]+$
          title: Name
          description: >-
            Name of the prompt (alphanumeric characters, hyphens, and
            underscores only, max 256 characters)
        metadata:
          type: object
          title: Metadata
          description: >-
            Key value metadata. Should be valid JSON. For e.g.
            `{"business-unit": "sales", "quality": "good", "rating": 4.5}`
        ml_repo:
          type: string
          pattern: ^[a-zA-Z][a-zA-Z0-9\-]{1,98}[a-zA-Z0-9]$
          title: Ml Repo
          description: >-
            Name of the ML Repo that this prompt belongs to (must start and end
            with alphanumeric, 2-100 characters)
        version:
          type: integer
          minimum: 1
          title: Version
          description: Version of the entity
        type:
          type: string
          enum:
            - chat_prompt
          title: Type
          default: chat_prompt
        description:
          type: string
          maxLength: 512
          title: Description
        version_alias:
          type: string
          maxLength: 128
          pattern: ^v[a-zA-Z0-9.-]*([a-zA-Z0-9]+)$
          title: Version Alias
          description: >-
            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)
        messages:
          items:
            anyOf:
              - $ref: '#/components/schemas/SystemMessage'
              - $ref: '#/components/schemas/AssistantMessage'
              - $ref: '#/components/schemas/UserMessage'
              - $ref: '#/components/schemas/ToolMessage'
              - $ref: '#/components/schemas/DeveloperMessage'
          type: array
          title: Messages
          description: List of messages in the chat conversation, must be non-empty
        variables:
          additionalProperties:
            type: string
          type: object
          title: Variables
          description: >-
            Variables referenced in messages and that can be replaced when
            running generation
        model_configuration:
          $ref: '#/components/schemas/ModelConfiguration'
        tools:
          items:
            $ref: '#/components/schemas/ToolSchema'
          type: array
          title: Tools
          description: List of tools to be used in the chat prompt
        mcp_servers:
          items:
            anyOf:
              - $ref: '#/components/schemas/MCPServerWithFQN'
              - $ref: '#/components/schemas/MCPServerWithURL'
          type: array
          title: Mcp Servers
          description: A list of MCP servers FQNs or URLs and their tools
        guardrails:
          $ref: '#/components/schemas/Guardrails'
        response_format:
          oneOf:
            - $ref: '#/components/schemas/JsonObjectResponseFormat'
            - $ref: '#/components/schemas/JsonSchemaResponseFormat'
          title: Response Format
          description: Response format configuration for structured outputs
          discriminator:
            propertyName: type
            mapping:
              json_object:
                $ref: '#/components/schemas/JsonObjectResponseFormat'
              json_schema:
                $ref: '#/components/schemas/JsonSchemaResponseFormat'
        routing_config:
          oneOf:
            - $ref: '#/components/schemas/WeightBasedLoadBalancing'
            - $ref: '#/components/schemas/LatencyBasedLoadBalancing'
            - $ref: '#/components/schemas/PriorityBasedLoadBalancing'
          title: Routing Config
          description: Configuration for routing requests to different model targets
          discriminator:
            propertyName: type
            mapping:
              weight-based-routing:
                $ref: '#/components/schemas/WeightBasedLoadBalancing'
              latency-based-routing:
                $ref: '#/components/schemas/LatencyBasedLoadBalancing'
              priority-based-routing:
                $ref: '#/components/schemas/PriorityBasedLoadBalancing'
        cache_config:
          oneOf:
            - $ref: '#/components/schemas/SemanticCacheConfig'
            - $ref: '#/components/schemas/ExactMatchCacheConfig'
          title: Cache Config
          description: Cache configuration for the chat prompt
          discriminator:
            propertyName: type
            mapping:
              semantic:
                $ref: '#/components/schemas/SemanticCacheConfig'
              exact-match:
                $ref: '#/components/schemas/ExactMatchCacheConfig'
        tool_call_to_mcp_mapping:
          additionalProperties:
            $ref: '#/components/schemas/MCPServerToolDetails'
          type: object
          title: Tool Call To Mcp Mapping
          description: Mapping of tool calls to MCP server integration IDs and tool names
        logging_config:
          $ref: '#/components/schemas/LoggingConfig'
        sub_agents:
          items:
            $ref: '#/components/schemas/SubAgent'
          type: array
          title: Sub Agents
          description: Sub agents to be used in the chat prompt
      type: object
      required:
        - name
        - metadata
        - ml_repo
        - messages
      title: ChatPromptManifest
      description: Chat Prompt manifest.
      x-fern-type-name: ChatPromptManifest
    Service:
      description: Describes the configuration for the service
      type: object
      properties:
        type:
          description: +value=service
          type: string
          enum:
            - service
        replicas:
          description: >-
            Deploy multiple instances of your pods to distribute incoming
            traffic across them, ensuring effective load balancing.
          default: 1
          oneOf:
            - type: number
              minimum: 0
              maximum: 500
            - $ref: '#/components/schemas/ServiceAutoscaling'
        auto_shutdown:
          $ref: '#/components/schemas/Autoshutdown'
        allow_interception:
          description: >-
            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
          type: boolean
          default: false
        rollout_strategy:
          description: >-
            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)
          type: object
          oneOf:
            - $ref: '#/components/schemas/Rolling'
            - $ref: '#/components/schemas/Canary'
            - $ref: '#/components/schemas/BlueGreen'
          discriminator:
            propertyName: type
      allOf:
        - $ref: '#/components/schemas/BaseService'
      required:
        - type
        - replicas
      title: Service
      x-fern-type-name: Service
    ApplicationSet:
      description: Describes the configuration for the application set
      type: object
      required:
        - type
        - name
      properties:
        type:
          description: +value=application-set
          type: string
          enum:
            - application-set
        name:
          description: Name of the application set.
          type: string
        components:
          description: Array of components with their specifications.
          type: array
          items:
            type: object
            oneOf:
              - $ref: '#/components/schemas/Service'
              - $ref: '#/components/schemas/AsyncService'
              - $ref: '#/components/schemas/Job'
              - $ref: '#/components/schemas/Helm'
        template:
          description: Template to be used for the application set.
          type: string
        values:
          description: Values to be used to render components for the application set.
          type: object
        workspace_fqn:
          description: Fully qualified name of the workspace
          type: string
        convert_template_manifest:
          description: >-
            Flag to indicate if the template manifest should be converted to
            TrueFoundry manifest
          type: boolean
      title: ApplicationSet
      x-fern-type-name: ApplicationSet
    ProviderAccounts:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/InfraProviderAccount'
        - $ref: '#/components/schemas/ModelProviderAccount'
        - $ref: '#/components/schemas/MCPServerProviderAccount'
        - $ref: '#/components/schemas/GuardrailConfigGroup'
      discriminator:
        propertyName: type
      title: ProviderAccounts
      x-fern-type-name: ProviderAccounts
    ClusterManifest:
      type: object
      required:
        - type
        - name
        - cluster_type
        - environment_names
        - collaborators
      properties:
        type:
          description: +value=cluster
          type: string
          enum:
            - cluster
        name:
          description: >-
            Name - 3 to 35 lower case characters long alphanumeric word, may
            contain - in between, cannot start with a number
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,33}[a-z0-9]$
        cluster_type:
          description: The cluster type of this cluster
          type: string
          enum:
            - aws-eks
            - gcp-gke-standard
            - azure-aks
            - generic
            - civo-talos
        environment_names:
          description: >-
            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.
          type: array
          items:
            type: string
        base_domains:
          description: >-
            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)
          type: array
          items:
            type: string
            pattern: >-
              ^((((\*|[a-zA-Z0-9\-]{1,63})\.)([a-zA-Z0-9\-]{1,63}\.)*([A-Za-z]{1,63}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))$
        monitoring:
          description: Monitoring
          type: object
          properties:
            loki_url:
              description: Cluster Loki URL
              type: string
            victoria_logs_url:
              description: Cluster VictoriaLogs URL
              type: string
            prometheus_url:
              description: Cluster Prometheus URL
              type: string
            kubecost_url:
              description: Cluster Kubecost URL
              type: string
        default_registry_fqn:
          description: Cluster Default Registry
          type: string
        workbench_config:
          description: Workbench Config
          type: object
          properties:
            notebook_config:
              $ref: '#/components/schemas/NotebookConfig'
            ssh_server_config:
              $ref: '#/components/schemas/SSHServerConfig'
            default_storage_class:
              description: The default storage class for the home directory of workbench
              type: string
              pattern: ^[^\s]*$
        spark_config:
          $ref: '#/components/schemas/SparkConfig'
        ingress_controller_config:
          $ref: '#/components/schemas/IngressControllerConfig'
        cluster_integration_fqn:
          description: Cluster Integration FQN
          type: string
        workflow_storage_integration_fqn:
          description: Workflow Storage Integration
          type: string
        supported_nodepools:
          description: >-
            Add nodepools that are already created in your cluster.

            When deploying, applications can choose to schedule from these
            nodepools.
          type: array
          items:
            $ref: '#/components/schemas/Nodepool'
        node_label_keys:
          description: >-
            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).
          type: object
          required:
            - nodepool_selector_label
          properties:
            nodepool_selector_label:
              description: The nodepool selector label that this cluster supports
              type: string
        collaborators:
          description: Collaborators who can access this cluster
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: ClusterManifest
      x-fern-type-name: ClusterManifest
    WorkspaceManifest:
      type: object
      required:
        - type
        - cluster_fqn
        - name
      properties:
        type:
          description: +value=workspace
          type: string
          enum:
            - workspace
        cluster_fqn:
          description: Cluster FQN
          type: string
        name:
          description: >-
            Name - 3 to 32 lower case characters long alphanumeric word, may
            contain - in between, cannot start with a number
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        environment_name:
          description: >-
            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.
          type: string
        labels:
          description: +sort=700
          type: object
          additionalProperties:
            type: string
        annotations:
          description: +sort=750
          type: object
          additionalProperties:
            type: string
        collaborators:
          description: Collaborators
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        permissions:
          description: Permissions
          type: array
          items:
            $ref: '#/components/schemas/Permissions'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: WorkspaceManifest
      x-fern-type-name: WorkspaceManifest
    Job:
      description: Describes the configuration for the job
      type: object
      required:
        - type
        - name
        - image
        - trigger
      properties:
        type:
          description: +value=job
          type: string
          enum:
            - job
        name:
          description: Name of the job
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        image:
          description: >-
            Specify whether you want to deploy a Docker image or build and
            deploy from source code
          type: object
          oneOf:
            - $ref: '#/components/schemas/Build'
            - $ref: '#/components/schemas/Image'
          discriminator:
            propertyName: type
        trigger:
          description: Specify the trigger
          type: object
          default:
            type: manual
          oneOf:
            - $ref: '#/components/schemas/Manual'
            - $ref: '#/components/schemas/Schedule'
          discriminator:
            propertyName: type
        trigger_on_deploy:
          description: Trigger the job after deploy immediately
          type: boolean
        params:
          description: Configure params and pass it to create different job runs
          type: array
          items:
            $ref: '#/components/schemas/Param'
        env:
          description: >-
            Configure environment variables to be injected in the service either
            as plain text or secrets.
            [Docs](https://docs.truefoundry.com/docs/env-variables)
          type: object
          default: null
          additionalProperties:
            type: string
          nullable: true
        resources:
          $ref: '#/components/schemas/Resources'
        alerts:
          description: Configure alerts to be sent when the job starts/fails/completes
          type: array
          items:
            $ref: '#/components/schemas/JobAlert'
        retries:
          description: >-
            Specify the maximum number of attempts to retry a job before it is
            marked as failed.
          type: integer
          minimum: 0
          maximum: 10
          default: 0
        timeout:
          description: Job timeout in seconds.
          type: integer
          minimum: 0
          exclusiveMinimum: true
          maximum: 432000
        concurrency_limit:
          description: Number of runs that can run concurrently
          type: integer
          minimum: 0
          exclusiveMinimum: true
        service_account:
          description: +sort=1000
          type: string
        mounts:
          description: >-
            Configure data to be mounted to job pod(s) as a string, secret or
            volume.
            [Docs](https://docs.truefoundry.com/docs/mounting-volumes-job)
          type: array
          items:
            type: object
            oneOf:
              - $ref: '#/components/schemas/SecretMount'
              - $ref: '#/components/schemas/StringDataMount'
              - $ref: '#/components/schemas/VolumeMount'
        labels:
          description: Labels
          type: object
          additionalProperties:
            type: string
        kustomize:
          $ref: '#/components/schemas/Kustomize'
        workspace_fqn:
          description: Fully qualified name of the workspace
          type: string
      title: Job
      x-fern-type-name: Job
    Helm:
      type: object
      required:
        - type
        - name
        - source
      properties:
        type:
          description: +value=helm
          type: string
          enum:
            - helm
        name:
          description: >-
            Name of the Helm deployment. This will be set as the release name of
            the chart you are deploying.
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        labels:
          description: Add labels to base argo app
          type: object
          additionalProperties:
            type: string
        source:
          description: Source helm repository
          type: object
          oneOf:
            - $ref: '#/components/schemas/HelmRepo'
            - $ref: '#/components/schemas/OCIRepo'
            - $ref: '#/components/schemas/GitHelmRepo'
          discriminator:
            propertyName: type
        values:
          description: Values file as block file
          type: object
        kustomize:
          $ref: '#/components/schemas/Kustomize'
        ignoreDifferences:
          type: array
          items:
            type: object
        workspace_fqn:
          description: Fully qualified name of the workspace
          type: string
      title: Helm
      x-fern-type-name: Helm
    Volume:
      type: object
      required:
        - type
        - name
        - config
      properties:
        type:
          description: +value=volume
          type: string
          enum:
            - volume
        name:
          description: Name of the Volume. This will be set as the volume name.
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        config:
          description: >-
            Volume Config - Volume Configuration, can be either Dynamically
            provisioned or statically provisioned.
          type: object
          oneOf:
            - $ref: '#/components/schemas/DynamicVolumeConfig'
            - $ref: '#/components/schemas/StaticVolumeConfig'
          discriminator:
            propertyName: type
        volume_browser:
          $ref: '#/components/schemas/VolumeBrowser'
        workspace_fqn:
          description: Fully qualified name of the workspace
          type: string
      title: Volume
      x-fern-type-name: Volume
    Notebook:
      description: Describes the configuration for the service
      type: object
      properties:
        type:
          description: +value=notebook
          type: string
          enum:
            - notebook
        image:
          $ref: '#/components/schemas/WorkbenchImage'
        cull_timeout:
          description: >-
            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.
          type: integer
          minimum: 5
          default: 30
      allOf:
        - $ref: '#/components/schemas/BaseWorkbenchInput'
      required:
        - type
        - image
      title: Notebook
      x-fern-type-name: Notebook
    RStudio:
      description: Describes the configuration for the Rstudio server
      type: object
      properties:
        type:
          description: +value=rstudio
          type: string
          enum:
            - rstudio
        image:
          $ref: '#/components/schemas/WorkbenchImage'
      allOf:
        - $ref: '#/components/schemas/BaseWorkbenchInput'
      required:
        - type
        - image
      title: RStudio
      x-fern-type-name: RStudio
    Workflow:
      description: Describes the configuration for the worflow
      type: object
      required:
        - type
        - name
        - source
        - workflow_file_path
      properties:
        type:
          description: +value=workflow
          type: string
          enum:
            - workflow
        name:
          description: Name of the workflow
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        source:
          description: Source Code for the workflow, either local or remote
          type: object
          oneOf:
            - $ref: '#/components/schemas/LocalSource'
            - $ref: '#/components/schemas/RemoteSource'
          discriminator:
            propertyName: type
        workflow_file_path:
          description: Path to the workflow file relative to the project root path
          type: string
        flyte_entities:
          description: Flyte Entities
          type: array
          items:
            type: object
            oneOf:
              - $ref: '#/components/schemas/FlyteTask'
              - $ref: '#/components/schemas/FlyteWorkflow'
              - $ref: '#/components/schemas/FlyteLaunchPlan'
        alerts:
          description: Alerts
          type: array
          items:
            $ref: '#/components/schemas/WorkflowAlert'
      title: Workflow
      x-fern-type-name: Workflow
    AsyncService:
      description: Describes the configuration for the async-service
      type: object
      properties:
        type:
          description: +value=async-service
          type: string
          enum:
            - async-service
        replicas:
          description: >-
            Deploy multiple instances of your pods to distribute incoming
            traffic across them, ensuring effective load balancing.
          default: 1
          oneOf:
            - type: number
              minimum: 0
              maximum: 500
            - $ref: '#/components/schemas/AsyncServiceAutoscaling'
        rollout_strategy:
          $ref: '#/components/schemas/Rolling'
        worker_config:
          $ref: '#/components/schemas/WorkerConfig'
        sidecar:
          $ref: '#/components/schemas/AsyncProcessorSidecar'
      allOf:
        - $ref: '#/components/schemas/BaseService'
      required:
        - type
        - replicas
        - worker_config
      title: AsyncService
      x-fern-type-name: AsyncService
    SSHServer:
      description: Describes the configuration for the ssh server
      type: object
      properties:
        type:
          description: +value=ssh-server
          type: string
          enum:
            - ssh-server
        image:
          $ref: '#/components/schemas/WorkbenchImage'
        ssh_public_key:
          description: >-
            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)
          type: string
        cull_timeout:
          description: >-
            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.
          type: integer
          minimum: 5
      allOf:
        - $ref: '#/components/schemas/BaseWorkbenchInput'
      required:
        - type
        - image
        - ssh_public_key
      title: SSHServer
      x-fern-type-name: SSHServer
    SparkJob:
      type: object
      required:
        - type
        - name
        - image
        - entrypoint
        - driver_config
        - executor_config
      properties:
        type:
          description: |-
            +value=spark-job
            +sort=1
          type: string
          enum:
            - spark-job
        name:
          description: Name of the job
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        image:
          description: >-
            The image to use for driver and executors. Must have spark
            installed. Spark version must match the version in the image.
          type: object
          oneOf:
            - $ref: '#/components/schemas/SparkImage'
            - $ref: '#/components/schemas/SparkImageBuild'
          discriminator:
            propertyName: type
        entrypoint:
          description: Entrypoint
          type: object
          oneOf:
            - $ref: '#/components/schemas/SparkJobPythonEntrypoint'
            - $ref: '#/components/schemas/SparkJobScalaEntrypoint'
            - $ref: '#/components/schemas/SparkJobJavaEntrypoint'
            - $ref: '#/components/schemas/SparkJobPythonNotebookEntrypoint'
            - $ref: '#/components/schemas/SparkJobScalaNotebookEntrypoint'
          discriminator:
            propertyName: type
        driver_config:
          $ref: '#/components/schemas/SparkDriverConfig'
        executor_config:
          $ref: '#/components/schemas/SparkExecutorConfig'
        env:
          description: >-
            Configure environment variables to be injected in the service either
            as plain text.
            [Docs](https://docs.truefoundry.com/docs/env-variables)
          type: object
          default: null
          nullable: true
        spark_conf:
          description: >-
            Extra configuration properties to be passed to the spark job.
            [Docs](https://spark.apache.org/docs/latest/configuration.html)
          type: object
          default: null
          additionalProperties:
            type: string
            minLength: 1
          nullable: true
        mounts:
          description: >-
            Configure volumes to be mounted to driver and executors.
            [Docs](https://docs.truefoundry.com/docs/mounting-volumes-job)
          type: array
          items:
            $ref: '#/components/schemas/VolumeMount'
        retries:
          description: >-
            Specify the maximum number of attempts to retry a job before it is
            marked as failed.
          type: integer
          minimum: 0
          maximum: 10
          default: 0
        service_account:
          description: Service Account
          type: string
        workspace_fqn:
          description: Fully qualified name of the workspace
          type: string
      title: SparkJob
      x-fern-type-name: SparkJob
    GatewayConfig:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/RateLimitConfig'
        - $ref: '#/components/schemas/LoadBalancingConfig'
        - $ref: '#/components/schemas/GuardrailsConfig'
        - $ref: '#/components/schemas/BudgetConfig'
        - $ref: '#/components/schemas/TenantBudgetConfig'
        - $ref: '#/components/schemas/TeamBudgetConfig'
        - $ref: '#/components/schemas/GatewayOTELConfig'
        - $ref: '#/components/schemas/GatewayMetadataConfig'
        - $ref: '#/components/schemas/GatewayLoggingConfig'
        - $ref: '#/components/schemas/GlobalSettings'
        - $ref: '#/components/schemas/GatewayDataAccessConfig'
        - $ref: '#/components/schemas/GatewayDataRoutingConfig'
      discriminator:
        propertyName: type
      title: GatewayConfig
      x-fern-type-name: GatewayConfig
    TeamManifest:
      type: object
      required:
        - type
        - name
        - members
      properties:
        type:
          description: +value=team
          type: string
          enum:
            - team
        name:
          description: Name of the Team
          type: string
          pattern: ^[a-zA-Z][a-zA-Z0-9_-]{1,48}[a-zA-Z0-9]$
        displayName:
          description: >-
            A human-readable label for the team in the UI. If omitted, the team
            name is shown.
          type: string
          maxLength: 128
        description:
          description: A short description of the team and its purpose.
          type: string
          maxLength: 1024
        managers:
          description: >-
            Emails of each of the user who can manage the members of the team.
            Any tenant admin is by default a team manager.
          type: array
          items:
            type: string
        members:
          description: >-
            Enter email of each user to add to the team. Use an empty list for a
            team with no members yet.
          type: array
          items:
            type: string
        ownedBy:
          $ref: '#/components/schemas/TeamOwnedBy'
        tags:
          description: >-
            Key-value pairs to categorize this Team (e.g., by owner or
            environment).
          type: object
        identity_provider_mapping:
          description: Mappings from external identity provider claim value to this team
          type: array
          items:
            $ref: '#/components/schemas/IdentityProviderMapping'
      title: TeamManifest
      x-fern-type-name: TeamManifest
    PolicyManifest:
      type: object
      required:
        - type
        - name
        - description
        - operation
        - mode
        - entities
        - actions
        - code
      properties:
        type:
          description: +value=policy
          type: string
          enum:
            - policy
        name:
          description: Unique identifier of the policy across the organisation
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        description:
          description: >-
            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.
          type: string
          minLength: 1
          maxLength: 1024
        operation:
          description: >-
            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.
          type: object
          default:
            type: validate
          oneOf:
            - $ref: '#/components/schemas/PolicyMutationOperation'
            - $ref: '#/components/schemas/PolicyValidationOperation'
          discriminator:
            propertyName: type
        mode:
          description: >-
            Mode of the policy: `Audit` logs all policy evaluations without
            blocking deployments. `Enforce` blocks deployments if the policy
            fails. `Disabled` deactivates the policy.
          type: string
          enum:
            - audit
            - enforce
            - disabled
        entities:
          description: Types of applications this policy applies to
          type: array
          items:
            $ref: '#/components/schemas/PolicyEntityTypes'
        actions:
          description: Actions this policy applies to
          type: array
          items:
            $ref: '#/components/schemas/PolicyActions'
          default:
            - apply
        filters:
          $ref: '#/components/schemas/PolicyFilters'
        code:
          description: >-
            TypeScript code for Policy logic. To write and test your policy
            code, please refer to this
            [repository](https://github.com/truefoundry/tfy-typescript-policy)
          type: string
          minLength: 1
          maxLength: 10240
      title: PolicyManifest
      x-fern-type-name: PolicyManifest
    RoleManifest:
      type: object
      required:
        - type
        - name
        - displayName
        - description
        - resourceType
        - permissions
      properties:
        type:
          description: +value=role
          type: string
          enum:
            - role
        name:
          description: Unique identifier of the role across the organization
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,33}[a-z0-9]$
        displayName:
          description: Human-readable name for the role
          type: string
          minLength: 1
          maxLength: 255
        description:
          description: Description of the role that explains its purpose and permissions
          type: string
          minLength: 1
          maxLength: 1024
        resourceType:
          description: Type of resource this role applies to
          type: string
        permissions:
          description: >-
            Define the resource type and the corresponding actions this role can
            perform on the resource
          type: array
          items:
            type: string
      title: RoleManifest
      x-fern-type-name: RoleManifest
    AlertConfig:
      type: object
      required:
        - type
        - name
        - resource
        - notification_targets
        - rules
      properties:
        type:
          description: Type
          type: string
          enum:
            - alert-config
        name:
          description: >-
            Name - 3 to 35 lower case characters long alphanumeric word, may
            contain - in between, cannot start with a number
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,33}[a-z0-9]$
        resource:
          $ref: '#/components/schemas/AlertConfigResource'
        notification_targets:
          description: >-
            Configure one or more notification targets where alerts will be
            sent. Each target specifies a notification channel (email or slack).
          type: array
          items:
            $ref: '#/components/schemas/NotificationTargetForAlertRule'
        rules:
          description: >-
            Define one or more alert rules that specify the conditions to
            monitor, when to trigger alerts, and how they should be handled.
          type: array
          items:
            $ref: '#/components/schemas/PrometheusAlertRule'
      title: AlertConfig
      x-fern-type-name: AlertConfig
    VirtualAccountManifest:
      type: object
      required:
        - name
        - type
        - permissions
      properties:
        name:
          description: Virtual Account Name
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        type:
          description: +value=virtual-account
          type: string
          enum:
            - virtual-account
        permissions:
          description: Permissions
          type: array
          items:
            $ref: '#/components/schemas/Permissions'
        expiration_date:
          description: >-
            Expiration Date of the Virtual Account (should be in the format
            yyyy-mm-dd)
          type: string
          pattern: ^\d{4}-\d{2}-\d{2}$
        auto_rotate:
          $ref: '#/components/schemas/AutoRotate'
        notification_target:
          $ref: '#/components/schemas/NotificationTarget'
        secret_store_config:
          $ref: '#/components/schemas/SecretStoreConfig'
        ownedBy:
          $ref: '#/components/schemas/VirtualAccountOwnedBy'
        tags:
          description: >-
            Key-value pairs to categorize this Virtual Account (e.g., by owner
            or environment).
          type: object
        identity_provider_mapping:
          description: >-
            Mappings from external identity provider claim value to this virtual
            account
          type: array
          items:
            $ref: '#/components/schemas/IdentityProviderMapping'
        token_type:
          description: Format of the issued token. Leave empty to use the platform default.
          type: string
          enum:
            - jwt
            - opaque
      title: VirtualAccountManifest
      x-fern-type-name: VirtualAccountManifest
    CommonToolsSettings:
      description: Describes the configuration for Common Tools MCP Server in AI Gateway
      type: object
      required:
        - type
        - web_search
        - code_executor
        - sandbox_exec
        - sequential_thinking
        - web_scrape
      properties:
        type:
          description: +value=settings/common-tools
          type: string
          enum:
            - settings/common-tools
        web_search:
          description: |-
            Enable web search tool
            Allows model to search the web for information.
          type: boolean
          default: true
        code_executor:
          description: |-
            Enable code executor tool
            Allows model to execute code and return the results.
          type: boolean
          default: true
        sandbox_exec:
          description: >-
            Enable sandbox executor tool

            Allows model to execute shell command in an isolated stateful
            sandbox environment.
          type: boolean
          default: true
        sequential_thinking:
          description: |-
            Enable sequential thinking tool
            Allows model to reason step-by-step to solve complex problems.
          type: boolean
          default: true
        web_scrape:
          description: >-
            Enable web scraping tool.

            Allows model to scrape content from web pages with intelligent
            format selection for structured or unstructured data.
          type: boolean
          default: true
      title: CommonToolsSettings
      x-fern-type-name: CommonToolsSettings
    AIFeaturesSettings:
      description: Describes the configuration for TrueFoundry AI features
      type: object
      required:
        - type
        - enabled
        - ai_provider
      properties:
        type:
          description: +value=settings/ai-features
          type: string
          enum:
            - settings/ai-features
        enabled:
          description: |-
            Enable/Disable AI features.
            Other fields only apply when this is true
          type: boolean
        ai_provider:
          description: >-
            AI provider to use for AI features

            When TrueFoundry is selected, TrueFoundry will manage and provide
            the AI models for the features.
          type: string
          enum:
            - truefoundry
      title: AIFeaturesSettings
      x-fern-type-name: AIFeaturesSettings
    SecretGroupManifest:
      type: object
      required:
        - type
        - name
        - integration_fqn
        - collaborators
      properties:
        type:
          description: +value=secret-group
          type: string
          enum:
            - secret-group
        name:
          description: Name of the secret group
          type: string
          pattern: ^(?!.*--)[a-z][a-z0-9-]{3,48}[a-z0-9]$
        integration_fqn:
          description: Secret Store to be associated with the secret group
          type: string
          pattern: ^\S+$
        collaborators:
          description: Users and Teams that have access to Secret Group
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: SecretGroupManifest
      x-fern-type-name: SecretGroupManifest
    AgentManifest:
      type: object
      oneOf:
        - $ref: '#/components/schemas/TrueFoundryAgentManifest'
        - $ref: '#/components/schemas/RemoteAgent'
        - $ref: '#/components/schemas/LegacyAgentManifest'
      title: AgentManifest
      x-fern-type-name: AgentManifest
    EnvironmentManifest:
      type: object
      required:
        - type
        - name
        - color
        - isProduction
        - optimizeFor
      properties:
        type:
          description: +value=environment
          type: string
          enum:
            - environment
        name:
          description: Environment Name
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        color:
          $ref: '#/components/schemas/EnvironmentColor'
        isProduction:
          description: >-
            Environment Type - Indicates if the environment is for production
            use
          type: boolean
        optimizeFor:
          $ref: '#/components/schemas/EnvironmentOptimizeFor'
      title: EnvironmentManifest
      x-fern-type-name: EnvironmentManifest
    TracingProjectManifest:
      description: >-
        Tracing Project is an entity that allows you to manage and monitor
        telemetry data.
      type: object
      required:
        - type
        - name
        - storage
        - collaborators
      properties:
        type:
          description: +value=tracing-project
          type: string
          enum:
            - tracing-project
        name:
          description: Name of the Tracing Project
          type: string
          pattern: ^[a-zA-Z][a-zA-Z0-9\-]{1,61}[a-zA-Z0-9]$
        storage:
          $ref: '#/components/schemas/TracingProjectStorageConfig'
        description:
          description: Description for the Tracing Project.
          type: string
          pattern: ^.{0,500}$
        collaborators:
          description: Users and Teams that have access to Tracing Project
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        traces_retention_duration_days:
          description: >-
            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.
          type: number
          minimum: 7
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: TracingProjectManifest
      x-fern-type-name: TracingProjectManifest
    MCPServerManifest:
      type: object
      oneOf:
        - $ref: '#/components/schemas/RemoteMCPServerManifest'
        - $ref: '#/components/schemas/VirtualMCPServerManifest'
        - $ref: '#/components/schemas/OpenAPIMCPServerManifest'
        - $ref: '#/components/schemas/StdioMCPServerManifest'
        - $ref: '#/components/schemas/TfyManagedMCPServerManifest'
      title: MCPServerManifest
      x-fern-type-name: MCPServerManifest
    RoleBindingManifest:
      type: object
      required:
        - type
        - name
        - subjects
        - permissions
      properties:
        type:
          description: +value=role-binding
          type: string
          enum:
            - role-binding
        name:
          description: Unique name for this role binding.
          type: string
          pattern: ^[a-z][a-z0-9-]{1,62}[a-z0-9]$
        subjects:
          description: >-
            One row per principal; set type and name (email, team name, virtual
            account name, or external identity name).
          type: array
          items:
            $ref: '#/components/schemas/RoleBindingSubject'
        permissions:
          description: Resource-scoped role grants (resource type, FQN, and role name).
          type: array
          items:
            $ref: '#/components/schemas/RoleBindingPermission'
      title: RoleBindingManifest
      x-fern-type-name: RoleBindingManifest
    AgentIdentityManifest:
      type: object
      required:
        - name
        - type
        - identity
        - ownedBy
      properties:
        name:
          description: Agent Identity Name
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        type:
          description: +value=agent-identity
          type: string
          enum:
            - agent-identity
        identity:
          $ref: '#/components/schemas/AgentIdentityConfig'
        tags:
          description: >-
            Key-value pairs to categorize this Agent Identity (e.g., by owner or
            environment).
          type: object
        ownedBy:
          $ref: '#/components/schemas/AgentIdentityOwnedBy'
      title: AgentIdentityManifest
      x-fern-type-name: AgentIdentityManifest
    Collaborator:
      type: object
      required:
        - subject
        - role_id
      properties:
        subject:
          description: 'Fully Qualified Name of the subject. eg: user:email or team:teamname'
          type: string
        role_id:
          description: Role ID for the resource
          type: string
      title: Collaborator
      x-fern-type-name: Collaborator
    OwnedBy:
      description: Names of the owners that own this resource
      type: object
      required:
        - account
      properties:
        account:
          description: The name of the account that owns this resource
          type: string
      title: OwnedBy
      x-fern-type-name: OwnedBy
    TrueFoundryManagedSource:
      properties:
        type:
          type: string
          enum:
            - truefoundry
          title: Type
          description: Type of the source
        uri:
          type: string
          pattern: ^(s3|gs|wasbs)://.*
          title: Uri
      type: object
      required:
        - type
      title: TrueFoundryManagedSource
      x-fern-type-name: TrueFoundryManagedSource
    ExternalBlobStorageSource:
      properties:
        type:
          type: string
          enum:
            - external
          title: Type
          description: Type of the source
        uri:
          type: string
          pattern: ^(s3|gs|wasbs)://.*
          title: Uri
          description: >-
            URI referencing a path in the blob storage bucket linked to the
            MLRepo
      type: object
      required:
        - type
        - uri
      title: ExternalBlobStorageSource
      x-fern-type-name: ExternalBlobStorageSource
    LocalArtifactSource:
      properties:
        type:
          type: string
          enum:
            - local
          title: Type
          description: Type of the source
        paths:
          items:
            $ref: '#/components/schemas/ArtifactPath'
          type: array
          title: Paths
          description: >-
            Array of ArtifactPath objects representing the source and
            destination paths
      type: object
      required:
        - type
        - paths
      title: LocalArtifactSource
      x-fern-type-name: LocalArtifactSource
    LocalModelSource:
      properties:
        type:
          type: string
          enum:
            - local
          title: Type
          description: Type of the source
        file_or_folder:
          type: string
          title: File Or Folder
          description: Path to the model file or folder
      type: object
      required:
        - type
        - file_or_folder
      title: LocalModelSource
      x-fern-type-name: LocalModelSource
    TransformersFramework:
      properties:
        type:
          type: string
          enum:
            - transformers
          title: Type
          description: Type of the framework
        library_name:
          allOf:
            - $ref: '#/components/schemas/LibraryName'
          description: Name of the library for the framework
          default: transformers
        pipeline_tag:
          type: string
          title: Pipeline Tag
          description: >-
            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
        base_model:
          type: string
          title: Base Model
          description: >-
            Base model Id from HuggingFace Hub. If this is a finetuned model,
            this points to the base model id used for finetuning.
      type: object
      required:
        - type
      title: TransformersFramework
      x-fern-type-name: TransformersFramework
    TensorFlowFramework:
      properties:
        type:
          type: string
          enum:
            - tensorflow
          title: Type
          description: Type of the framework
      type: object
      required:
        - type
      title: TensorFlowFramework
      x-fern-type-name: TensorFlowFramework
    SklearnFramework:
      properties:
        type:
          type: string
          enum:
            - sklearn
          title: Type
          description: Type of the framework
        model_filepath:
          type: string
          title: Model Filepath
          description: Relative path to the model file in the model version contents
        serialization_format:
          $ref: '#/components/schemas/SklearnSerializationFormat'
        model_schema:
          $ref: '#/components/schemas/SklearnModelSchema'
      type: object
      required:
        - type
      title: SklearnFramework
      x-fern-type-name: SklearnFramework
    PyTorchFramework:
      properties:
        type:
          type: string
          enum:
            - pytorch
          title: Type
          description: Type of the framework
      type: object
      required:
        - type
      title: PyTorchFramework
      x-fern-type-name: PyTorchFramework
    KerasFramework:
      properties:
        type:
          type: string
          enum:
            - keras
          title: Type
          description: Type of the framework
      type: object
      required:
        - type
      title: KerasFramework
      x-fern-type-name: KerasFramework
    XGBoostFramework:
      properties:
        type:
          type: string
          enum:
            - xgboost
          title: Type
          description: Type of the framework
        serialization_format:
          $ref: '#/components/schemas/XGBoostSerializationFormat'
        model_filepath:
          type: string
          title: Model Filepath
          description: Relative path to the model file in the model version contents
        model_schema:
          $ref: '#/components/schemas/XGBoostModelSchema'
      type: object
      required:
        - type
      title: XGBoostFramework
      x-fern-type-name: XGBoostFramework
    LightGBMFramework:
      properties:
        type:
          type: string
          enum:
            - lightgbm
          title: Type
          description: Type of the framework
      type: object
      required:
        - type
      title: LightGBMFramework
      x-fern-type-name: LightGBMFramework
    FastAIFramework:
      properties:
        type:
          type: string
          enum:
            - fastai
          title: Type
          description: Type of the framework
      type: object
      required:
        - type
      title: FastAIFramework
      x-fern-type-name: FastAIFramework
    H2OFramework:
      properties:
        type:
          type: string
          enum:
            - h2o
          title: Type
          description: Type of the framework
      type: object
      required:
        - type
      title: H2OFramework
      x-fern-type-name: H2OFramework
    ONNXFramework:
      properties:
        type:
          type: string
          enum:
            - onnx
          title: Type
          description: Type of the framework
      type: object
      required:
        - type
      title: ONNXFramework
      x-fern-type-name: ONNXFramework
    SpaCyFramework:
      properties:
        type:
          type: string
          enum:
            - spacy
          title: Type
          description: Type of the framework
      type: object
      required:
        - type
      title: SpaCyFramework
      x-fern-type-name: SpaCyFramework
    StatsModelsFramework:
      properties:
        type:
          type: string
          enum:
            - statsmodels
          title: Type
          description: Type of the framework
      type: object
      required:
        - type
      title: StatsModelsFramework
      x-fern-type-name: StatsModelsFramework
    GluonFramework:
      properties:
        type:
          type: string
          enum:
            - gluon
          title: Type
          description: Type of the framework
      type: object
      required:
        - type
      title: GluonFramework
      x-fern-type-name: GluonFramework
    PaddleFramework:
      properties:
        type:
          type: string
          enum:
            - paddle
          title: Type
          description: Type of the framework
      type: object
      required:
        - type
      title: PaddleFramework
      x-fern-type-name: PaddleFramework
    ModelVersionEnvironment:
      properties:
        python_version:
          type: string
          pattern: ^\d+(\.\d+){1,2}([\-\.a-z0-9]+)?$
          title: Python Version
          description: Python version to use when running the model
        pip_packages:
          items:
            type: string
          type: array
          title: Pip Packages
          description: pip dependencies needed for running the model
      type: object
      title: ModelVersionEnvironment
      description: >-
        Runtime environment describing python version and dependencies for
        running the model
      x-fern-type-name: ModelVersionEnvironment
    SystemMessage:
      description: System message for the chat
      type: object
      required:
        - role
        - content
      properties:
        role:
          description: Role of the message
          type: string
          enum:
            - system
        content:
          description: Text content for the system message
          oneOf:
            - type: string
              pattern: ^.[\s\S]*$
            - $ref: '#/components/schemas/BlobStorageReference'
        name:
          description: Name of the system
          type: string
      title: SystemMessage
      x-fern-type-name: SystemMessage
    AssistantMessage:
      description: Assistant message turn
      type: object
      required:
        - role
      properties:
        role:
          description: Role of the message
          type: string
          enum:
            - assistant
        content:
          description: Text content for the assistant message
          oneOf:
            - type: string
            - type: array
              items:
                type: object
                oneOf:
                  - $ref: '#/components/schemas/TextContentPart'
                  - $ref: '#/components/schemas/RefusalContentPart'
            - $ref: '#/components/schemas/BlobStorageReference'
        tool_calls:
          description: List of tool calls made by the assistant
          type: array
          items:
            $ref: '#/components/schemas/ToolCall'
        name:
          description: Name of the assistant this message is from
          type: string
      title: AssistantMessage
      x-fern-type-name: AssistantMessage
    UserMessage:
      description: User message turn
      type: object
      required:
        - role
        - content
      properties:
        role:
          description: Role of the message
          type: string
          enum:
            - user
        content:
          description: Content of the user message. can be a mix of text and images
          oneOf:
            - type: string
              pattern: ^.[\s\S]*$
            - type: array
              items:
                type: object
                oneOf:
                  - $ref: '#/components/schemas/TextContentPart'
                  - $ref: '#/components/schemas/ImageContentPart'
            - $ref: '#/components/schemas/BlobStorageReference'
        name:
          description: Name of the user this message is from
          type: string
      title: UserMessage
      x-fern-type-name: UserMessage
    ToolMessage:
      description: Tool message for the chat
      type: object
      required:
        - role
        - content
        - tool_call_id
      properties:
        role:
          description: Role of the message
          type: string
          enum:
            - tool
        content:
          description: Content of the tool call result
          oneOf:
            - type: string
              pattern: ^.[\s\S]*$
            - $ref: '#/components/schemas/BlobStorageReference'
        tool_call_id:
          description: Unique identifier for the tool call
          type: string
      title: ToolMessage
      x-fern-type-name: ToolMessage
    DeveloperMessage:
      description: Developer message for the chat
      type: object
      required:
        - role
        - content
      properties:
        role:
          description: The role of the messages author, in this case developer.
          type: string
          enum:
            - developer
        content:
          description: The contents of the developer message.
          oneOf:
            - type: string
              pattern: ^.[\s\S]*$
            - $ref: '#/components/schemas/BlobStorageReference'
        name:
          description: An optional name for the participant.
          type: string
      title: DeveloperMessage
      x-fern-type-name: DeveloperMessage
    ModelConfiguration:
      properties:
        provider:
          type: string
          title: Provider
          description: >-
            Name of the provider, must be one of the integration providers
            configured for the Gateway
        model:
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-.]{0,60}[a-zA-Z0-9])$
          title: Model
          description: >-
            Name of the model to be used for generations. This model should be
            available in the provider
        parameters:
          allOf:
            - $ref: '#/components/schemas/Parameters'
          title: Parameters
          description: Parameters to pass to the model when generating
        extra_parameters:
          type: object
          title: Extra Parameters
          description: Arbitrary extra parameters to pass to the model when generating
      type: object
      required:
        - provider
        - model
      title: ModelConfiguration
      description: >-
        Add a model from Gateway along with parameters to be used for chat
        completion
      x-fern-type-name: ModelConfiguration
    ToolSchema:
      description: Schema defining a tool for the chat prompt
      type: object
      required:
        - type
        - function
      properties:
        type:
          description: Type of the tool
          type: string
          enum:
            - function
        function:
          $ref: '#/components/schemas/FunctionSchema'
      title: ToolSchema
      x-fern-type-name: ToolSchema
    MCPServerWithFQN:
      description: MCP server with FQN
      type: object
      required:
        - type
        - integration_fqn
        - enable_all_tools
      properties:
        type:
          description: The FQN of the MCP server
          type: string
          enum:
            - mcp-server-fqn
        integration_fqn:
          description: The FQN of the MCP server
          type: string
        enable_all_tools:
          description: Whether to enable all tools from the MCP server
          type: boolean
          default: false
        tools:
          description: The tools to enable from the MCP server
          type: array
          items:
            $ref: '#/components/schemas/MCPTool'
      title: MCPServerWithFQN
      x-fern-type-name: MCPServerWithFQN
    MCPServerWithURL:
      description: MCP server with URL
      type: object
      required:
        - type
        - url
        - enable_all_tools
      properties:
        type:
          description: The URL of the MCP server
          type: string
          enum:
            - mcp-server-url
        url:
          description: The URL of the MCP server
          type: string
          pattern: ^https?://.+
        headers:
          description: The headers to send to the MCP server
          type: object
          additionalProperties:
            type: string
        enable_all_tools:
          description: Whether to enable all tools from the MCP server
          type: boolean
          default: false
        tools:
          description: The tools to enable from the MCP server
          type: array
          items:
            $ref: '#/components/schemas/MCPTool'
      title: MCPServerWithURL
      x-fern-type-name: MCPServerWithURL
    Guardrails:
      description: Guardrails
      type: object
      properties:
        input_guardrails:
          description: >-
            List of guardrail names to apply to user input messages before
            processing.
          type: array
          items:
            type: string
        output_guardrails:
          description: >-
            List of guardrail names to apply to AI response messages before
            returning to user.
          type: array
          items:
            type: string
      title: Guardrails
      x-fern-type-name: Guardrails
    JsonObjectResponseFormat:
      description: Simple JSON mode response format
      type: object
      required:
        - type
      properties:
        type:
          description: Type of response format
          type: string
          enum:
            - json_object
      title: JsonObjectResponseFormat
      x-fern-type-name: JsonObjectResponseFormat
    JsonSchemaResponseFormat:
      description: Structured JSON response format with schema validation
      type: object
      required:
        - type
        - json_schema
      properties:
        type:
          description: Type of response format
          type: string
          enum:
            - json_schema
        json_schema:
          $ref: '#/components/schemas/JsonSchema'
      title: JsonSchemaResponseFormat
      x-fern-type-name: JsonSchemaResponseFormat
    WeightBasedLoadBalancing:
      description: Weight-based Load Balancing
      type: object
      required:
        - type
        - load_balance_targets
      properties:
        type:
          description: Routing Type
          type: string
          enum:
            - weight-based-routing
        load_balance_targets:
          description: List of targets for load balancing with weights
          type: array
          items:
            $ref: '#/components/schemas/LoadBalanceTarget'
        sticky_routing:
          $ref: '#/components/schemas/StickyRouting'
      title: WeightBasedLoadBalancing
      x-fern-type-name: WeightBasedLoadBalancing
    LatencyBasedLoadBalancing:
      description: Latency-based Load Balancing
      type: object
      required:
        - type
        - load_balance_targets
      properties:
        type:
          description: Routing Type
          type: string
          enum:
            - latency-based-routing
        load_balance_targets:
          description: List of targets for latency-based load balancing
          type: array
          items:
            $ref: '#/components/schemas/LatencyBasedLoadBalanceTarget'
      title: LatencyBasedLoadBalancing
      x-fern-type-name: LatencyBasedLoadBalancing
    PriorityBasedLoadBalancing:
      description: Priority-based Load Balancing
      type: object
      required:
        - type
        - load_balance_targets
      properties:
        type:
          description: Routing Type
          type: string
          enum:
            - priority-based-routing
        load_balance_targets:
          description: List of targets for priority-based load balancing
          type: array
          items:
            $ref: '#/components/schemas/PriorityBasedLoadBalanceTarget'
      title: PriorityBasedLoadBalancing
      x-fern-type-name: PriorityBasedLoadBalancing
    SemanticCacheConfig:
      description: Semantic Cache Configuration
      type: object
      required:
        - type
        - similarity_threshold
        - ttl
      properties:
        type:
          description: Cache type
          type: string
          enum:
            - semantic
        similarity_threshold:
          description: Similarity threshold for semantic matching (between 0 and 1)
          type: number
          minimum: 0
          exclusiveMinimum: true
          maximum: 1
        namespace:
          description: Cache namespace (defaults to 'default' if not provided)
          type: string
        ttl:
          description: Time-to-live for cached entries in seconds (max 3 days)
          type: number
          minimum: 0
          exclusiveMinimum: true
          maximum: 259200
          default: 3600
      title: SemanticCacheConfig
      x-fern-type-name: SemanticCacheConfig
    ExactMatchCacheConfig:
      description: Exact Match Cache Configuration
      type: object
      required:
        - type
        - ttl
      properties:
        type:
          description: Cache type
          type: string
          enum:
            - exact-match
        namespace:
          description: Cache namespace (defaults to 'default' if not provided)
          type: string
        ttl:
          description: Time-to-live for cached entries in seconds (max 3 days)
          type: number
          minimum: 0
          exclusiveMinimum: true
          maximum: 259200
          default: 3600
      title: ExactMatchCacheConfig
      x-fern-type-name: ExactMatchCacheConfig
    MCPServerToolDetails:
      description: >-
        Mapping configuration for tool calls to MCP server integration and tool
        names
      type: object
      required:
        - mcp_server_integration_id
        - tool_name
      properties:
        mcp_server_integration_id:
          description: The integration ID of the MCP server
          type: string
        tool_name:
          description: The name of the tool in the MCP server
          type: string
      title: MCPServerToolDetails
      x-fern-type-name: MCPServerToolDetails
    LoggingConfig:
      description: Logging configuration for the chat prompt
      type: object
      required:
        - enabled
      properties:
        enabled:
          description: Whether logging is enabled for the chat prompt
          type: boolean
          default: true
        tracing_project_fqn:
          description: The FQN of the tracing project where the logs will be stored
          type: string
      title: LoggingConfig
      x-fern-type-name: LoggingConfig
    SubAgent:
      description: Sub agent configuration for the chat prompt
      type: object
      required:
        - name
      properties:
        name:
          description: Name of the sub agent
          type: string
      title: SubAgent
      x-fern-type-name: SubAgent
    ServiceAutoscaling:
      type: object
      properties:
        metrics:
          description: Metrics to use for the autoscaler
          type: object
          oneOf:
            - $ref: '#/components/schemas/CPUUtilizationMetric'
            - $ref: '#/components/schemas/RPSMetric'
            - $ref: '#/components/schemas/CronMetric'
          discriminator:
            propertyName: type
      allOf:
        - $ref: '#/components/schemas/BaseAutoscaling'
      required:
        - metrics
      title: ServiceAutoscaling
      x-fern-type-name: ServiceAutoscaling
    Autoshutdown:
      type: object
      required:
        - wait_time
      properties:
        wait_time:
          description: >-
            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.
          type: integer
          minimum: 0
          maximum: 604800
          default: 900
      title: Autoshutdown
      x-fern-type-name: Autoshutdown
    Rolling:
      description: >-
        This strategy updates the pods in a rolling fashion such that a subset
        of the

        total pods are replaced with new version at one time.

        A commonly used strategy can be to have maxUnavailablePercentage close
        to 0 so that there

        is no downtime and keep the maxSurgePercentage to around 25%. If you are
        anyways running

        a large number of pods, the service can often tolerate a few pods going
        down - so you

        max maxUnavailablePercentage = 10 and maxSurgePercentage=0. You can read
        about it more

        [here](https://spot.io/resources/kubernetes-autoscaling/5-kubernetes-deployment-strategies-roll-out-like-the-pros/)
      type: object
      required:
        - type
        - max_unavailable_percentage
        - max_surge_percentage
      properties:
        type:
          description: +value=rolling_update
          type: string
          enum:
            - rolling_update
        max_unavailable_percentage:
          description: >-
            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.
          type: integer
          minimum: 0
          maximum: 100
          default: 25
        max_surge_percentage:
          description: >-
            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.
          type: integer
          minimum: 0
          maximum: 100
          default: 25
      title: Rolling
      x-fern-type-name: Rolling
    Canary:
      description: >-
        This strategy brings up the new release without bringing the older
        release down. Traffic is shifted from the older release to the newer
        release in a staged manner.

        This can help with verifying the health of the new release without
        shifting complete traffic.
      type: object
      required:
        - type
        - steps
      properties:
        type:
          description: +value=canary
          type: string
          enum:
            - canary
        steps:
          description: >-
            These steps would be executed in order to enable shifting of traffic
            slowly from stable to canary version
          type: array
          items:
            $ref: '#/components/schemas/CanaryStep'
      title: Canary
      x-fern-type-name: Canary
    BlueGreen:
      description: >-
        This strategy brings up the new release completely before switching the
        complete load to the new release.

        This minimizes the time that two versions are serving traffic at the
        same time.
      type: object
      required:
        - type
      properties:
        type:
          description: +value=blue_green
          type: string
          enum:
            - blue_green
        enable_auto_promotion:
          description: >-
            Promote the new release to handle the complete traffic. A manual
            promotion would be needed if this is disabled
          type: boolean
          default: false
        auto_promotion_seconds:
          description: >-
            Promote the new release to handle the complete traffic after waiting
            for these many seconds
          type: integer
          minimum: 0
          default: 30
      title: BlueGreen
      x-fern-type-name: BlueGreen
    BaseService:
      type: object
      required:
        - name
        - image
        - ports
      properties:
        name:
          description: >-
            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
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        image:
          description: >-
            Specify whether you want to deploy a Docker image or build and
            deploy from source code
          type: object
          oneOf:
            - $ref: '#/components/schemas/Build'
            - $ref: '#/components/schemas/Image'
          discriminator:
            propertyName: type
        artifacts_download:
          $ref: '#/components/schemas/ArtifactsDownload'
        resources:
          $ref: '#/components/schemas/Resources'
        env:
          description: >-
            Configure environment variables to be injected in the service either
            as plain text or secrets.
            [Docs](https://docs.truefoundry.com/docs/env-variables)
          type: object
          default: null
          additionalProperties:
            type: string
          nullable: true
        ports:
          description: >-
            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)
          type: array
          items:
            $ref: '#/components/schemas/Port'
        service_account:
          type: string
        mounts:
          description: >-
            Configure data to be mounted to service pod(s) as a string, secret
            or volume.
            [Docs](https://docs.truefoundry.com/docs/mounting-volumes-service)
          type: array
          items:
            type: object
            oneOf:
              - $ref: '#/components/schemas/SecretMount'
              - $ref: '#/components/schemas/StringDataMount'
              - $ref: '#/components/schemas/VolumeMount'
        labels:
          description: Labels
          type: object
          additionalProperties:
            type: string
        kustomize:
          $ref: '#/components/schemas/Kustomize'
        liveness_probe:
          $ref: '#/components/schemas/HealthProbe'
        readiness_probe:
          $ref: '#/components/schemas/HealthProbe'
        startup_probe:
          $ref: '#/components/schemas/HealthProbe'
        workspace_fqn:
          description: Fully qualified name of the workspace
          type: string
      title: BaseService
      x-fern-type-name: BaseService
    InfraProviderAccount:
      type: object
      oneOf:
        - $ref: '#/components/schemas/AwsProviderAccount'
        - $ref: '#/components/schemas/AzureProviderAccount'
        - $ref: '#/components/schemas/GcpProviderAccount'
        - $ref: '#/components/schemas/DockerhubProviderAccount'
        - $ref: '#/components/schemas/BitbucketProviderAccount'
        - $ref: '#/components/schemas/CustomProviderAccount'
        - $ref: '#/components/schemas/GithubProviderAccount'
        - $ref: '#/components/schemas/GitlabProviderAccount'
        - $ref: '#/components/schemas/JfrogProviderAccount'
        - $ref: '#/components/schemas/TTLProviderAccount'
        - $ref: '#/components/schemas/TrueFoundryProviderAccount'
        - $ref: '#/components/schemas/QuayProviderAccount'
        - $ref: '#/components/schemas/SlackProviderAccount'
        - $ref: '#/components/schemas/WebhookProviderAccount'
        - $ref: '#/components/schemas/PagerDutyProviderAccount'
        - $ref: '#/components/schemas/MSTeamsProviderAccount'
        - $ref: '#/components/schemas/HashicorpProviderAccount'
      title: InfraProviderAccount
      x-fern-type-name: InfraProviderAccount
    ModelProviderAccount:
      type: object
      oneOf:
        - $ref: '#/components/schemas/AwsBedrockProviderAccount'
        - $ref: '#/components/schemas/GoogleVertexProviderAccount'
        - $ref: '#/components/schemas/GoogleGeminiProviderAccount'
        - $ref: '#/components/schemas/AzureOpenAIProviderAccount'
        - $ref: '#/components/schemas/AzureFoundryProviderAccount'
        - $ref: '#/components/schemas/CohereProviderAccount'
        - $ref: '#/components/schemas/AI21ProviderAccount'
        - $ref: '#/components/schemas/AnthropicProviderAccount'
        - $ref: '#/components/schemas/DeepinfraProviderAccount'
        - $ref: '#/components/schemas/GroqProviderAccount'
        - $ref: '#/components/schemas/MistralAIProviderAccount'
        - $ref: '#/components/schemas/PerplexityAIProviderAccount'
        - $ref: '#/components/schemas/TogetherAIProviderAccount'
        - $ref: '#/components/schemas/NomicProviderAccount'
        - $ref: '#/components/schemas/PalmProviderAccount'
        - $ref: '#/components/schemas/OllamaProviderAccount'
        - $ref: '#/components/schemas/OpenaiProviderAccount'
        - $ref: '#/components/schemas/DatabricksProviderAccount'
        - $ref: '#/components/schemas/ClouderaProviderAccount'
        - $ref: '#/components/schemas/SelfHostedModelProviderAccount'
        - $ref: '#/components/schemas/OpenRouterProviderAccount'
        - $ref: '#/components/schemas/SambaNovaProviderAccount'
        - $ref: '#/components/schemas/XAIProviderAccount'
        - $ref: '#/components/schemas/BasetenProviderAccount'
        - $ref: '#/components/schemas/AwsSagemakerProviderAccount'
        - $ref: '#/components/schemas/CerebrasProviderAccount'
        - $ref: '#/components/schemas/WaferProviderAccount'
        - $ref: '#/components/schemas/SnowflakeCortexProviderAccount'
        - $ref: '#/components/schemas/ElevenLabsProviderAccount'
        - $ref: '#/components/schemas/DeepgramProviderAccount'
        - $ref: '#/components/schemas/CartesiaProviderAccount'
        - $ref: '#/components/schemas/SmallestAiProviderAccount'
        - $ref: '#/components/schemas/AWSClaudePlatformProviderAccount'
        - $ref: '#/components/schemas/AwsBedrockMantleProviderAccount'
        - $ref: '#/components/schemas/VirtualModelProviderAccount'
        - $ref: '#/components/schemas/CustomEndpointProviderAccount'
      title: ModelProviderAccount
      x-fern-type-name: ModelProviderAccount
    MCPServerProviderAccount:
      description: MCP Server Group
      type: object
      required:
        - type
        - name
        - collaborators
        - integrations
      properties:
        type:
          description: +value=provider-account/mcp-server-group
          type: string
          enum:
            - provider-account/mcp-server-group
        name:
          description: The name of the MCP Server Group.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        collaborators:
          description: >-
            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.
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        integrations:
          description: List of MCP Servers, which are part of this MCP Server Group.
          type: array
          items:
            $ref: '#/components/schemas/MCPServerIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: MCPServerProviderAccount
      x-fern-type-name: MCPServerProviderAccount
    GuardrailConfigGroup:
      description: Guardrail Configs Group
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: |-
            +uiType=Hidden
            +value=provider-account/guardrail-config-group
          type: string
          enum:
            - provider-account/guardrail-config-group
        name:
          description: The name of the Guardrail Config Group.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        collaborators:
          description: List of users who have access to this Guardrail Config Group.
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        integrations:
          description: >-
            List of Guardrail Configs, which are part of this Guardrail Config
            Group.
          type: array
          items:
            $ref: '#/components/schemas/GuardrailConfigIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: GuardrailConfigGroup
      x-fern-type-name: GuardrailConfigGroup
    NotebookConfig:
      type: object
      required:
        - base_domain
      properties:
        base_domain:
          description: >-
            The base domain for the cluster with which you can access your
            Notebooks
          type: string
          pattern: ^[^\s]*$
      title: NotebookConfig
      x-fern-type-name: NotebookConfig
    SSHServerConfig:
      type: object
      required:
        - base_domain
        - port
      properties:
        base_domain:
          description: >-
            The base domain for the cluster with which you can access your SSH
            containers
          type: string
          pattern: ^[^\s]*$
        port:
          description: >-
            The port for the cluster with which you can access your SSH
            containers
          type: number
      title: SSHServerConfig
      x-fern-type-name: SSHServerConfig
    SparkConfig:
      type: object
      required:
        - ui_base_domain
      properties:
        ui_base_domain:
          description: >-
            The base domain for the cluster with which you can access your Spark
            UI
          type: string
          pattern: ^[^\s]*$
      title: SparkConfig
      x-fern-type-name: SparkConfig
    IngressControllerConfig:
      type: object
      required:
        - ingress_class_name
      properties:
        ingress_class_name:
          description: Ingress Class Name
          type: string
          default: nginx
        tls_enabled:
          description: >-
            Whether TLS is managed by the ingress controller. If enabled, the
            ingress object will have TLS configuration.
          type: boolean
          default: false
      title: IngressControllerConfig
      x-fern-type-name: IngressControllerConfig
    Nodepool:
      description: >-
        The nodepools that are already created in your cluster. This will be
        used to schedule your workloads on particular nodepools.
      type: object
      required:
        - name
      properties:
        name:
          type: string
        description:
          type: string
      title: Nodepool
      x-fern-type-name: Nodepool
    Permissions:
      type: object
      required:
        - resource_fqn
        - resource_type
        - role_id
      properties:
        resource_fqn:
          description: The fully qualified name of the resource
          type: string
        resource_type:
          description: The type of the resource (cluster, workspace, etc.)
          type: string
        role_id:
          description: >-
            The role id of the role to be assigned to the service account for
            that resource
          type: string
      title: Permissions
      x-fern-type-name: Permissions
    Build:
      description: Describes how we build our code into a Docker image.
      type: object
      required:
        - type
        - build_source
        - build_spec
      properties:
        type:
          description: +value=build
          type: string
          enum:
            - build
        docker_registry:
          description: >-
            FQN of the container registry. If you can't find your registry here,

            add it through the [Integrations](/integrations?tab=docker-registry)
            page
          type: string
          pattern: ^\S+$
        build_source:
          description: Source code location.
          type: object
          oneOf:
            - $ref: '#/components/schemas/RemoteSource'
            - $ref: '#/components/schemas/GitSource'
            - $ref: '#/components/schemas/LocalSource'
          discriminator:
            propertyName: type
        build_spec:
          description: Instructions to build a container image out of the build source
          type: object
          oneOf:
            - $ref: '#/components/schemas/DockerFileBuild'
            - $ref: '#/components/schemas/PythonBuild'
          discriminator:
            propertyName: type
      title: Build
      x-fern-type-name: Build
    Image:
      description: >-
        Describes that we are using a pre-built image stored in a Docker Image
        registry
      type: object
      required:
        - type
        - image_uri
      properties:
        type:
          description: +value=image
          type: string
          enum:
            - image
        image_uri:
          description: >-
            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
          type: string
          pattern: ^\S+$
        docker_registry:
          description: >-
            FQN of the container registry. If you can't find your registry here,

            add it through the [Integrations](/integrations?tab=docker-registry)
            page
          type: string
          pattern: ^\S+$
        command:
          description: >-
            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}}`
          oneOf:
            - type: string
            - type: array
              items:
                type: string
      title: Image
      x-fern-type-name: Image
    Manual:
      description: >-
        Trigger the job manually.
        [Docs](https://docs.truefoundry.com/docs/deploy-a-cron-job)
      type: object
      required:
        - type
      properties:
        type:
          description: +value=manual
          type: string
          enum:
            - manual
      title: Manual
      x-fern-type-name: Manual
    Schedule:
      description: >-
        Run the job on a schedule.
        [Docs](https://docs.truefoundry.com/docs/deploy-a-cron-job)
      type: object
      required:
        - type
        - schedule
        - concurrency_policy
      properties:
        type:
          description: +value=scheduled
          type: string
          enum:
            - scheduled
        schedule:
          description: >-
            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)

            ```
          type: string
        concurrency_policy:
          description: >-
            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.
          type: string
          enum:
            - Forbid
            - Allow
            - Replace
          default: Forbid
        timezone:
          description: >-
            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
          type: string
      title: Schedule
      x-fern-type-name: Schedule
    Param:
      type: object
      required:
        - name
      properties:
        name:
          description: Name of the param
          type: string
          pattern: ^[a-z][a-z0-9\-_]{0,30}[a-z0-9]$
        description:
          description: Description of param
          type: string
          pattern: ^.{1,127}$
        default:
          description: Default value or placeholder
          type: string
          pattern: ^.{0,127}$
        param_type:
          type: string
          enum:
            - string
            - ml_repo
          default: string
      title: Param
      x-fern-type-name: Param
    Resources:
      description: >-
        Configure resource allocations, specify node constraints and capacity
        types to improve performance and reduce expenses.
        [Docs](https://www.truefoundry.com/docs/resources-cpu-memory-storage)
      type: object
      required:
        - cpu_request
        - cpu_limit
        - memory_request
        - memory_limit
        - ephemeral_storage_request
        - ephemeral_storage_limit
      properties:
        cpu_request:
          description: >-
            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`
          type: number
          minimum: 0.001
          maximum: 256
          default: 0.2
        cpu_limit:
          description: >-
            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.
          type: number
          minimum: 0.001
          maximum: 256
          default: 0.5
        memory_request:
          description: >-
            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.
          type: integer
          minimum: 1
          maximum: 4000000
          default: 200
        memory_limit:
          description: >-
            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.
          type: integer
          minimum: 1
          maximum: 4000000
          default: 500
        ephemeral_storage_request:
          description: >-
            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
          type: integer
          minimum: 1
          maximum: 2000000
          default: 1000
        ephemeral_storage_limit:
          description: >-
            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
          type: integer
          minimum: 1
          maximum: 2000000
          default: 2000
        shared_memory_size:
          description: >-
            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.
          type: integer
          minimum: 64
          maximum: 4000000
        node:
          description: >-
            This field determines how the underlying node resource is to be
            utilized
          type: object
          oneOf:
            - $ref: '#/components/schemas/NodeSelector'
            - $ref: '#/components/schemas/NodepoolSelector'
          discriminator:
            propertyName: type
        devices:
          description: >-
            Define custom device or accelerator requirements for your workload.
            We currently support NVIDIA GPUs, AWS Inferentia Accelerators,
            Single Host TPU Slices.
          type: array
          items:
            type: object
            oneOf:
              - $ref: '#/components/schemas/NvidiaGPU'
              - $ref: '#/components/schemas/AWSInferentia'
              - $ref: '#/components/schemas/NvidiaMIGGPU'
              - $ref: '#/components/schemas/NvidiaTimeslicingGPU'
              - $ref: '#/components/schemas/GcpTPU'
      title: Resources
      x-fern-type-name: Resources
    JobAlert:
      description: Describes the configuration for the job alerts
      type: object
      properties:
        notification_channel:
          description: Specify the notification channel to send alerts to
          type: string
          minLength: 1
        to_emails:
          description: >-
            List of recipients' email addresses if the notification channel is
            Email.
          type: array
          items:
            type: string
            minLength: 1
        notification_target:
          $ref: '#/components/schemas/NotificationTarget'
        on_start:
          description: Send an alert when the job starts
          type: boolean
          default: false
        on_completion:
          type: boolean
          default: false
        on_failure:
          description: Send an alert when the job fails
          type: boolean
          default: true
      title: JobAlert
      x-fern-type-name: JobAlert
    SecretMount:
      type: object
      required:
        - type
        - mount_path
        - secret_fqn
      properties:
        type:
          description: +value=secret
          type: string
          enum:
            - secret
        mount_path:
          description: Absolute file path where the file will be created.
          type: string
          pattern: ^\/(?:[^/\n]+\/*)*[^/\n]+(\.[^/\n]+)?$
        secret_fqn:
          description: The TrueFoundry secret whose value will be the file content.
          type: string
          pattern: ^tfy-secret:\/\/.+:.+:.+$
      title: SecretMount
      x-fern-type-name: SecretMount
    StringDataMount:
      type: object
      required:
        - type
        - mount_path
        - data
      properties:
        type:
          description: +value=string
          type: string
          enum:
            - string
        mount_path:
          description: Absolute file path where the file will be created.
          type: string
          pattern: ^\/(?:[^/\n]+\/*)*[^/\n]+(\.[^/\n]+)?$
        data:
          description: The file content.
          type: string
      title: StringDataMount
      x-fern-type-name: StringDataMount
    VolumeMount:
      type: object
      required:
        - type
        - mount_path
        - volume_fqn
      properties:
        type:
          description: +value=volume
          type: string
          enum:
            - volume
        mount_path:
          description: Absolute file path where the volume will be mounted.
          type: string
          pattern: ^\/(?:[^/\n]+\/*)*[^/\n]+(\.[^/\n]+)?$
        sub_path:
          description: Sub path within the volume to mount. Defaults to root of the volume.
          type: string
          pattern: ^(?:[^/\n]+/*)*[^/\n]+(\.[^/\n]+)?$
        volume_fqn:
          description: The TrueFoundry volume that needs to be mounted.
          type: string
          pattern: ^tfy-volume:\/\/.+:.+:.+$
      title: VolumeMount
      x-fern-type-name: VolumeMount
    Kustomize:
      type: object
      properties:
        patch:
          description: >-
            Content of kustomization.yaml to perform kustomize operation. Please
            do not include the `resources` section. It is filled in
            automatically
          type: object
        additions:
          description: Additional kubernetes manifests to be included in the application
          type: array
          items:
            type: object
      title: Kustomize
      x-fern-type-name: Kustomize
    HelmRepo:
      type: object
      required:
        - type
        - repo_url
        - chart
        - version
      properties:
        type:
          description: +value=helm-repo
          type: string
          enum:
            - helm-repo
        repo_url:
          description: Helm repository URL - Needs to be a valid URL.
          type: string
          pattern: >-
            ^(((https?|wss):\/\/)?(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*))$
        integration_fqn:
          description: >-
            FQN of the helm repo integration. If you can't find your integration
            here,

            add it through the [Integrations](/integrations) page
          type: string
        chart:
          description: The helm chart name
          type: string
        version:
          description: Helm chart version
          type: string
      title: HelmRepo
      x-fern-type-name: HelmRepo
    OCIRepo:
      description: OCIRepo
      type: object
      required:
        - type
        - oci_chart_url
        - version
      properties:
        type:
          description: +value=oci-repo
          type: string
          enum:
            - oci-repo
        oci_chart_url:
          description: OCI chart URL - Need to be a valid URL.
          type: string
          pattern: >-
            ^(((oci):\/\/)?(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*))$
        integration_fqn:
          description: |-
            FQN of the container registry. If you can't find your registry here,
            add it through the [Integrations](/integrations) page
          type: string
        version:
          description: Helm chart version
          type: string
      title: OCIRepo
      x-fern-type-name: OCIRepo
    GitHelmRepo:
      type: object
      required:
        - type
        - repo_url
        - revision
        - path
      properties:
        type:
          description: +value=git-helm-repo
          type: string
          enum:
            - git-helm-repo
        repo_url:
          description: Git repository URL - Needs to be a valid URL.
          type: string
          pattern: >-
            ^(((https?|wss):\/\/)?(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*))$
        revision:
          description: Branch/Commit SHA/Tag of the git repo.
          type: string
        path:
          description: Path to the chart.
          type: string
        value_files:
          description: |-
            Helm values files for overriding values in the helm chart.
            The path is relative to the Path directory defined above
          type: array
          items:
            type: string
      title: GitHelmRepo
      x-fern-type-name: GitHelmRepo
    DynamicVolumeConfig:
      description: Create new volume
      type: object
      required:
        - type
        - storage_class
        - size
      properties:
        type:
          description: Volume Type for the volume.
          type: string
          enum:
            - dynamic
        storage_class:
          description: Name of the storage class to be used for the volume.
          type: string
        size:
          description: Size of volume in Gi
          type: integer
          minimum: 1
          maximum: 64000
      title: DynamicVolumeConfig
      x-fern-type-name: DynamicVolumeConfig
    StaticVolumeConfig:
      description: Use existing volume
      type: object
      required:
        - type
        - persistent_volume_name
      properties:
        type:
          description: Volume Type for the volume.
          type: string
          enum:
            - static
        persistent_volume_name:
          description: Persistent Volume Name of the volume to be used.
          type: string
      title: StaticVolumeConfig
      x-fern-type-name: StaticVolumeConfig
    VolumeBrowser:
      description: Volume Browser
      type: object
      required:
        - endpoint
      properties:
        username:
          description: Username for logging in the volume browser.
          type: string
          pattern: ^[a-z][a-z0-9]{1,8}[a-z0-9]$
        password_secret_fqn:
          description: >-
            TFY Secret containing the password for logging in the volume
            browser.
          type: string
          pattern: ^tfy-secret:\/\/.+:.+:.+$
        endpoint:
          $ref: '#/components/schemas/Endpoint'
        service_account:
          description: Kubernetes Service account name for the volume browser.
          type: string
      title: VolumeBrowser
      x-fern-type-name: VolumeBrowser
    WorkbenchImage:
      description: Workbench Image with persistent environment (Python 3.11.6)
      type: object
      required:
        - image_uri
      properties:
        image_uri:
          description: >-
            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
          type: string
        build_script:
          description: >-
            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)
          type: string
          minLength: 1
          maxLength: 5120
        docker_registry:
          description: >-
            FQN of the container registry. If you can't find your registry here,

            add it through the [Integrations](/integrations?tab=docker-registry)
            page
          type: string
      title: WorkbenchImage
      x-fern-type-name: WorkbenchImage
    BaseWorkbenchInput:
      description: Describes the configuration for the service
      type: object
      required:
        - name
        - home_directory_size
      properties:
        name:
          description: >-
            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
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        home_directory_size:
          description: Size of the home directory for the workbench (Persistent Storage)
          type: integer
          minimum: 5
          maximum: 64000
          default: 20
        resources:
          $ref: '#/components/schemas/Resources'
        env:
          description: >-
            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)
          type: object
          default: null
          additionalProperties:
            type: string
          nullable: true
        mounts:
          description: >-
            Configure data to be mounted to workbench pod(s) as a string, secret
            or volume.
            [Docs](https://docs.truefoundry.com/docs/mounting-volumes-job)
          type: array
          items:
            type: object
            oneOf:
              - $ref: '#/components/schemas/SecretMount'
              - $ref: '#/components/schemas/StringDataMount'
              - $ref: '#/components/schemas/VolumeMount'
        service_account:
          description: +sort=10113
          type: string
        kustomize:
          $ref: '#/components/schemas/Kustomize'
        workspace_fqn:
          description: Fully qualified name of the workspace
          type: string
      title: BaseWorkbenchInput
      x-fern-type-name: BaseWorkbenchInput
    LocalSource:
      description: >-
        Describes that we are using code stored in a local developement
        environment to build our image
      type: object
      required:
        - type
        - project_root_path
        - local_build
      properties:
        type:
          description: +value=local
          type: string
          enum:
            - local
        project_root_path:
          description: Local project root path.
          type: string
          default: ./
        local_build:
          description: run docker build locally
          type: boolean
          default: true
      title: LocalSource
      x-fern-type-name: LocalSource
    RemoteSource:
      description: >-
        Describes that we are using code stored in a remote repository to build
        our image
      type: object
      required:
        - type
        - remote_uri
      properties:
        type:
          description: +value=remote
          type: string
          enum:
            - remote
        remote_uri:
          description: Remote repository URI
          type: string
      title: RemoteSource
      x-fern-type-name: RemoteSource
    FlyteTask:
      type: object
      required:
        - template
      properties:
        template:
          $ref: '#/components/schemas/FlyteTaskTemplate'
        description: {}
      title: FlyteTask
      x-fern-type-name: FlyteTask
    FlyteWorkflow:
      type: object
      required:
        - template
      properties:
        template:
          $ref: '#/components/schemas/FlyteWorkflowTemplate'
        description: {}
      title: FlyteWorkflow
      x-fern-type-name: FlyteWorkflow
    FlyteLaunchPlan:
      type: object
      required:
        - id
        - spec
        - closure
      properties:
        id:
          $ref: '#/components/schemas/FlyteLaunchPlanID'
        spec:
          $ref: '#/components/schemas/FlyteLaunchPlanSpec'
        closure: {}
      title: FlyteLaunchPlan
      x-fern-type-name: FlyteLaunchPlan
    WorkflowAlert:
      description: Describes the configuration for the workflow alerts
      type: object
      properties:
        notification_target:
          $ref: '#/components/schemas/NotificationTarget'
        on_completion:
          description: Send an alert when the job completes
          type: boolean
          default: false
        on_failure:
          description: Send an alert when the job fails
          type: boolean
          default: true
      title: WorkflowAlert
      x-fern-type-name: WorkflowAlert
    AsyncServiceAutoscaling:
      type: object
      properties:
        metrics:
          description: Metrics to use for the autoscaler
          type: object
          oneOf:
            - $ref: '#/components/schemas/SQSQueueMetricConfig'
            - $ref: '#/components/schemas/NATSMetricConfig'
            - $ref: '#/components/schemas/KafkaMetricConfig'
            - $ref: '#/components/schemas/CronMetric'
            - $ref: '#/components/schemas/AMQPMetricConfig'
          discriminator:
            propertyName: type
      allOf:
        - $ref: '#/components/schemas/BaseAutoscaling'
      required:
        - metrics
      title: AsyncServiceAutoscaling
      x-fern-type-name: AsyncServiceAutoscaling
    WorkerConfig:
      type: object
      required:
        - input_config
        - num_concurrent_workers
      properties:
        input_config:
          description: Input Config
          type: object
          oneOf:
            - $ref: '#/components/schemas/SQSInputConfig'
            - $ref: '#/components/schemas/NATSInputConfig'
            - $ref: '#/components/schemas/KafkaInputConfig'
            - $ref: '#/components/schemas/AMQPInputConfig'
          discriminator:
            propertyName: type
        output_config:
          description: Output Config
          type: object
          oneOf:
            - $ref: '#/components/schemas/SQSOutputConfig'
            - $ref: '#/components/schemas/NATSOutputConfig'
            - $ref: '#/components/schemas/CoreNATSOutputConfig'
            - $ref: '#/components/schemas/KafkaOutputConfig'
            - $ref: '#/components/schemas/AMQPOutputConfig'
          discriminator:
            propertyName: type
        num_concurrent_workers:
          description: Number of concurrent workers to spawn for the processor
          type: integer
          minimum: 1
          maximum: 10
          default: 1
      title: WorkerConfig
      x-fern-type-name: WorkerConfig
    AsyncProcessorSidecar:
      type: object
      required:
        - destination_url
      properties:
        destination_url:
          description: URL for the processor to invoke
          type: string
        request_timeout:
          description: Timeout for the invoke request in seconds
          type: integer
          minimum: 1
          default: 10
        sidecar_image:
          description: >-
            Image for the processor sidecar (This field will be deprecated in
            the future)
          type: string
      title: AsyncProcessorSidecar
      x-fern-type-name: AsyncProcessorSidecar
    SparkImage:
      description: >-
        Describes that we are using a pre-built image stored in a Docker Image
        registry
      type: object
      required:
        - type
        - spark_version
        - image_uri
      properties:
        type:
          description: +value=spark-image
          type: string
          enum:
            - spark-image
        spark_version:
          description: Spark version should match the spark version installed in the image.
          type: string
          default: 3.5.2
        image_uri:
          description: >-
            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
          type: string
          pattern: ^\S+$
        docker_registry:
          description: >-
            FQN of the container registry. If you can't find your registry here,

            add it through the [Integrations](/integrations?tab=docker-registry)
            page
          type: string
          pattern: ^\S+$
      title: SparkImage
      x-fern-type-name: SparkImage
    SparkImageBuild:
      description: Describes that we are building a new image based on the spec
      type: object
      required:
        - type
        - build_source
        - build_spec
      properties:
        type:
          description: +value=spark-image-build
          type: string
          enum:
            - spark-image-build
        docker_registry:
          description: >-
            FQN of the container registry. If you can't find your registry here,

            add it through the [Integrations](/integrations?tab=docker-registry)
            page
          type: string
          pattern: ^\S+$
        build_source:
          description: Fetch source code
          type: object
          oneOf:
            - $ref: '#/components/schemas/GitSource'
            - $ref: '#/components/schemas/RemoteSource'
          discriminator:
            propertyName: type
        build_spec:
          $ref: '#/components/schemas/SparkBuild'
      title: SparkImageBuild
      x-fern-type-name: SparkImageBuild
    SparkJobPythonEntrypoint:
      description: python
      type: object
      required:
        - type
        - main_application_file
      properties:
        type:
          description: +value=python
          type: string
          enum:
            - python
        main_application_file:
          description: >-
            The main application file to be executed by the spark job. Relative
            path in case of git repository.
          type: string
        arguments:
          description: Arguments to be passed to the main application file.
          type: string
      title: SparkJobPythonEntrypoint
      x-fern-type-name: SparkJobPythonEntrypoint
    SparkJobScalaEntrypoint:
      description: scala
      type: object
      required:
        - type
        - main_application_file
        - main_class
      properties:
        type:
          description: +value=scala
          type: string
          enum:
            - scala
        main_application_file:
          description: The main application file to be executed by the spark job.
          type: string
        main_class:
          description: The main class to be executed by the spark job.
          type: string
        arguments:
          description: Arguments to be passed to the main application file.
          type: string
      title: SparkJobScalaEntrypoint
      x-fern-type-name: SparkJobScalaEntrypoint
    SparkJobJavaEntrypoint:
      description: java
      type: object
      required:
        - type
        - main_application_file
        - main_class
      properties:
        type:
          description: +value=java
          type: string
          enum:
            - java
        main_application_file:
          description: The main application file to be executed by the spark job.
          type: string
        main_class:
          description: The main class to be executed by the spark job.
          type: string
        arguments:
          description: Arguments to be passed to the main application file.
          type: string
      title: SparkJobJavaEntrypoint
      x-fern-type-name: SparkJobJavaEntrypoint
    SparkJobPythonNotebookEntrypoint:
      description: python notebook
      type: object
      required:
        - type
        - main_application_file
      properties:
        type:
          description: +value=python-notebook
          type: string
          enum:
            - python-notebook
        main_application_file:
          description: >-
            The main application file to be executed by the spark job. Relative
            path in case of git repository.
          type: string
      title: SparkJobPythonNotebookEntrypoint
      x-fern-type-name: SparkJobPythonNotebookEntrypoint
    SparkJobScalaNotebookEntrypoint:
      description: scala notebook
      type: object
      required:
        - type
        - main_application_file
      properties:
        type:
          description: +value=scala-notebook
          type: string
          enum:
            - scala-notebook
        main_application_file:
          description: >-
            The main application file to be executed by the spark job. Relative
            path in case of git repository.
          type: string
      title: SparkJobScalaNotebookEntrypoint
      x-fern-type-name: SparkJobScalaNotebookEntrypoint
    SparkDriverConfig:
      description: Driver Config
      type: object
      properties:
        resources:
          $ref: '#/components/schemas/Resources'
      title: SparkDriverConfig
      x-fern-type-name: SparkDriverConfig
    SparkExecutorConfig:
      description: Executor Config
      type: object
      required:
        - instances
      properties:
        instances:
          description: Executor Instances
          type: object
          default:
            type: fixed
            count: 1
          oneOf:
            - $ref: '#/components/schemas/SparkExecutorFixedInstances'
            - $ref: '#/components/schemas/SparkExecutorDynamicScaling'
          discriminator:
            propertyName: type
        resources:
          $ref: '#/components/schemas/Resources'
      title: SparkExecutorConfig
      x-fern-type-name: SparkExecutorConfig
    RateLimitConfig:
      description: Rate Limit Configuration
      type: object
      required:
        - type
        - rules
      properties:
        type:
          description: |-
            +value=gateway-rate-limiting-config
            +sort=2
          type: string
          enum:
            - gateway-rate-limiting-config
        rules:
          description: List of rate limit rules
          type: array
          items:
            $ref: '#/components/schemas/RateLimitRule'
      title: RateLimitConfig
      x-fern-type-name: RateLimitConfig
    LoadBalancingConfig:
      description: Load Balancing Configuration
      type: object
      required:
        - type
        - rules
      properties:
        type:
          description: |-
            +value=gateway-load-balancing-config
            +sort=2
          type: string
          enum:
            - gateway-load-balancing-config
        rules:
          description: List of load balancing rules
          type: array
          items:
            $ref: '#/components/schemas/LoadBalancingRule'
      title: LoadBalancingConfig
      x-fern-type-name: LoadBalancingConfig
    GuardrailsConfig:
      description: Guardrails Configuration
      type: object
      required:
        - type
        - rules
      properties:
        type:
          description: |-
            +value=gateway-guardrails-config
            +sort=2
          type: string
          enum:
            - gateway-guardrails-config
        rules:
          description: List of guardrail rules
          type: array
          items:
            $ref: '#/components/schemas/GuardrailsRule'
      title: GuardrailsConfig
      x-fern-type-name: GuardrailsConfig
    BudgetConfig:
      description: Budget Configuration
      type: object
      required:
        - type
        - rules
      properties:
        type:
          description: |-
            +value=gateway-budget-config
            +sort=2
          type: string
          enum:
            - gateway-budget-config
        rules:
          description: List of budget rules
          type: array
          items:
            $ref: '#/components/schemas/BudgetRule'
      title: BudgetConfig
      x-fern-type-name: BudgetConfig
    TenantBudgetConfig:
      description: Tenant Budget Configuration
      type: object
      required:
        - type
        - name
        - when
        - limits
        - applies_to
        - mode
        - alerts
      properties:
        type:
          description: |-
            +value=tenant-budget-config
            +sort=1
          type: string
          enum:
            - tenant-budget-config
        name:
          description: Unique name for this budget
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-]{0,60}[a-zA-Z0-9])$
        when:
          $ref: '#/components/schemas/BudgetV2WhenTenantScoped'
        limits:
          $ref: '#/components/schemas/BudgetV2Limits'
        applies_to:
          $ref: '#/components/schemas/BudgetV2AppliesTo'
        mode:
          description: '`enforce` blocks breaching requests, `audit` only tracks them.'
          type: string
          enum:
            - enforce
            - audit
          default: enforce
        alerts:
          $ref: '#/components/schemas/BudgetV2Alert'
      title: TenantBudgetConfig
      x-fern-type-name: TenantBudgetConfig
    TeamBudgetConfig:
      description: Team Budget Configuration
      type: object
      required:
        - type
        - team_name
        - name
        - when
        - limits
        - applies_to
        - mode
      properties:
        type:
          description: |-
            +value=team-budget-config
            +sort=1
          type: string
          enum:
            - team-budget-config
        team_name:
          description: >-
            Name of the team that owns this budget. RBAC is enforced on this
            value.
          type: string
        name:
          description: Unique name for this budget
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-]{0,60}[a-zA-Z0-9])$
        when:
          $ref: '#/components/schemas/BudgetV2WhenTeamScoped'
        limits:
          $ref: '#/components/schemas/BudgetV2Limits'
        applies_to:
          $ref: '#/components/schemas/BudgetV2AppliesTo'
        mode:
          description: '`enforce` blocks breaching requests, `audit` only tracks them.'
          type: string
          enum:
            - enforce
            - audit
          default: enforce
        alerts:
          $ref: '#/components/schemas/BudgetV2Alert'
      title: TeamBudgetConfig
      x-fern-type-name: TeamBudgetConfig
    GatewayOTELConfig:
      type: object
      required:
        - type
      properties:
        type:
          description: |-
            +value=gateway-otel-config
            +sort=1
          type: string
          enum:
            - gateway-otel-config
        otel_traces_exporter_config:
          description: >-
            Set this configuration to export LLM gateway OTEL traces to an
            external platform. Note that we only export OTEL traces via this
            configuration.
          type: object
          oneOf:
            - $ref: '#/components/schemas/OTELTracesExporterHttpConfig'
            - $ref: '#/components/schemas/OTELTracesExporterGrpcConfig'
          discriminator:
            propertyName: type
        otel_metrics_exporter_config:
          description: >-
            Set this configuration to export LLM gateway OTEL metrics to an
            external platform. Note that we only export OTEL metrics via this
            configuration.
          type: object
          oneOf:
            - $ref: '#/components/schemas/OTELMetricsExporterHttpConfig'
            - $ref: '#/components/schemas/OTELMetricsExporterGrpcConfig'
          discriminator:
            propertyName: type
      title: GatewayOTELConfig
      x-fern-type-name: GatewayOTELConfig
    GatewayMetadataConfig:
      description: Metadata Configuration
      type: object
      required:
        - name
        - type
        - rules
      properties:
        name:
          description: Name of the metadata configuration
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-]{0,60}[a-zA-Z0-9])$
        type:
          description: |-
            +value=gateway-metadata-config
            +sort=2
          type: string
          enum:
            - gateway-metadata-config
        rules:
          description: List of metadata rules
          type: array
          items:
            $ref: '#/components/schemas/GatewayMetadataRule'
      title: GatewayMetadataConfig
      x-fern-type-name: GatewayMetadataConfig
    GatewayLoggingConfig:
      description: Logging Configuration
      type: object
      required:
        - name
        - type
        - rules
      properties:
        name:
          description: Name of the logging configuration
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-]{0,60}[a-zA-Z0-9])$
        type:
          description: |-
            +value=gateway-logging-config
            +sort=2
          type: string
          enum:
            - gateway-logging-config
        rules:
          description: List of logging rules
          type: array
          items:
            $ref: '#/components/schemas/GatewayLoggingRule'
      title: GatewayLoggingConfig
      x-fern-type-name: GatewayLoggingConfig
    GlobalSettings:
      description: >-
        Configure global gateway settings that apply to all requests processed
        by the gateway. These settings establish default behaviors for retry
        logic, guardrail enforcement, and request logging that can be overridden
        by route-specific configurations or request headers. Use these settings
        to define baseline policies for reliability, security, and observability
        across your entire gateway deployment.
      type: object
      required:
        - type
      properties:
        type:
          description: |-
            +value=gateway-global-settings
            +sort=2
          type: string
          enum:
            - gateway-global-settings
        retry_settings:
          $ref: '#/components/schemas/RetryConfig'
        logging_settings:
          $ref: '#/components/schemas/LoggingMode'
        semantic_cache_settings:
          $ref: '#/components/schemas/SemanticCacheSettings'
        guardrail_settings:
          $ref: '#/components/schemas/GuardrailSettings'
      title: GlobalSettings
      x-fern-type-name: GlobalSettings
    GatewayDataAccessConfig:
      description: Gateway Data Access Configuration
      type: object
      required:
        - type
        - rules
      properties:
        type:
          description: |-
            +value=gateway-data-access-config
            +sort=1
          type: string
          enum:
            - gateway-data-access-config
        rules:
          description: List of data access rules
          type: array
          items:
            $ref: '#/components/schemas/DataAccessRule'
      title: GatewayDataAccessConfig
      x-fern-type-name: GatewayDataAccessConfig
    GatewayDataRoutingConfig:
      description: >-
        Configuration for gateway data routing with destinations and default
        settings.
      type: object
      required:
        - type
        - default
      properties:
        type:
          description: Type of configuration
          type: string
          enum:
            - gateway-data-routing-config
        destinations:
          description: List of conditional routing destinations
          type: array
          items:
            $ref: '#/components/schemas/GatewayDataRoutingConfigDestination'
        default:
          $ref: '#/components/schemas/GatewayDataRoutingConfigDestinationStorage'
      title: GatewayDataRoutingConfig
      x-fern-type-name: GatewayDataRoutingConfig
    TeamOwnedBy:
      description: Names of the owners that own the team
      type: object
      required:
        - account
      properties:
        account:
          description: The name of the account that owns the team
          type: string
      title: TeamOwnedBy
      x-fern-type-name: TeamOwnedBy
    IdentityProviderMapping:
      description: Configuration for mapping IdP claim values to this virtual account
      type: object
      required:
        - identity_provider
        - value
      properties:
        identity_provider:
          description: Name of the external identity provider
          type: string
        value:
          description: Claim value that should resolve to this virtual account
          type: string
      title: IdentityProviderMapping
      x-fern-type-name: IdentityProviderMapping
    PolicyMutationOperation:
      description: Mutate
      type: object
      required:
        - type
        - order
      properties:
        type:
          description: Mutates or Validates Resources
          type: string
          enum:
            - mutate
        order:
          description: >-
            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.
          type: integer
          minimum: 1
          maximum: 100
      title: PolicyMutationOperation
      x-fern-type-name: PolicyMutationOperation
    PolicyValidationOperation:
      description: Validate
      type: object
      required:
        - type
      properties:
        type:
          description: Mutates or Validates Resources
          type: string
          enum:
            - validate
      title: PolicyValidationOperation
      x-fern-type-name: PolicyValidationOperation
    PolicyEntityTypes:
      type: string
      enum:
        - service
        - async-service
        - job
        - notebook
        - ssh-server
        - workflow
        - helm
        - volume
      title: PolicyEntityTypes
      x-fern-type-name: PolicyEntityTypes
    PolicyActions:
      type: string
      enum:
        - apply
      title: PolicyActions
      x-fern-type-name: PolicyActions
    PolicyFilters:
      description: Filters
      type: object
      properties:
        cluster_names:
          description: Cluster names where Policy applies
          type: array
          items:
            type: string
            pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        workspace_names:
          description: Workspace names where Policy applies
          type: array
          items:
            type: string
            pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        env_names:
          description: Environment names where Policy applies
          type: array
          items:
            type: string
            pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
      title: PolicyFilters
      x-fern-type-name: PolicyFilters
    AlertConfigResource:
      type: object
      required:
        - type
        - fqn
      properties:
        type:
          description: >-
            The type of resource this alert config belongs to. Can be either an
            application or a cluster.
          type: string
          enum:
            - application
            - cluster
        fqn:
          description: FQN of the resource this alert config belongs to.
          type: string
      title: AlertConfigResource
      x-fern-type-name: AlertConfigResource
    NotificationTargetForAlertRule:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/Email'
        - $ref: '#/components/schemas/SlackWebhook'
        - $ref: '#/components/schemas/SlackBot'
        - $ref: '#/components/schemas/PagerDuty'
        - $ref: '#/components/schemas/MSTeamsWebhook'
      discriminator:
        propertyName: type
      title: NotificationTargetForAlertRule
      x-fern-type-name: NotificationTargetForAlertRule
    PrometheusAlertRule:
      description: Prometheus Alert Rule
      type: object
      required:
        - type
        - name
        - expression
        - for
        - severity
        - notification_enabled
      properties:
        type:
          description: Type
          type: string
          enum:
            - prometheus-alert-rule
        name:
          description: >-
            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.
          type: string
          pattern: ^[a-zA-Z][a-zA-Z0-9\-]{1,33}[a-zA-Z0-9]$
        expression:
          description: >-
            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.
          type: string
        for:
          description: >-
            The prometheus expression must remain true for this duration (in
            seconds) before the alert is triggered. If the condition becomes
            false before this time elapses, the alert will not fire.
          type: number
          minimum: 60
        severity:
          $ref: '#/components/schemas/AlertSeverity'
        description:
          description: >-
            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.
          type: string
        notification_enabled:
          description: >-
            When enabled, notifications will be sent to all configured target
            channels when the alert conditions are met.
          type: boolean
          default: true
      title: PrometheusAlertRule
      x-fern-type-name: PrometheusAlertRule
    AutoRotate:
      description: Enable Auto Rotation to automatically rotate the token
      type: object
      required:
        - auto_rotate_interval
        - grace_period
      properties:
        auto_rotate_interval:
          description: >-
            Rotation Interval in days after which the token will be rotated.
            Minimum value is 30.
          type: integer
          minimum: 30
          default: 360
        grace_period:
          description: >-
            Grace Period in days for which the token will be valid after
            rotation interval. Minimum value is 1.
          type: integer
          minimum: 1
          default: 30
      title: AutoRotate
      x-fern-type-name: AutoRotate
    NotificationTarget:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/Email'
        - $ref: '#/components/schemas/SlackWebhook'
        - $ref: '#/components/schemas/SlackBot'
        - $ref: '#/components/schemas/PagerDuty'
        - $ref: '#/components/schemas/MSTeamsWebhook'
      discriminator:
        propertyName: type
      title: NotificationTarget
      x-fern-type-name: NotificationTarget
    SecretStoreConfig:
      description: Enable to store the virtual account token in a secret store
      type: object
      required:
        - integration_fqn
        - secret_path
      properties:
        integration_fqn:
          description: The secret store to store the virtual account token in
          type: string
        secret_path:
          description: >-
            The path where the virtual account token will be stored in the
            secret store (example: secret/path/to/virtual-account-token)
          type: string
          pattern: ^/?[A-Za-z0-9/-]*[A-Za-z0-9]$
      title: SecretStoreConfig
      x-fern-type-name: SecretStoreConfig
    VirtualAccountOwnedBy:
      description: Names of the owners that own the virtual account
      type: object
      required:
        - team
      properties:
        account:
          description: The name of the account that owns this resource
          type: string
        team:
          description: The name of the team that owns this resource
          type: string
      title: VirtualAccountOwnedBy
      x-fern-type-name: VirtualAccountOwnedBy
    TrueFoundryAgentManifest:
      type: object
      required:
        - type
        - name
        - description
        - model
        - collaborators
      properties:
        type:
          description: Type of the manifest
          type: string
          enum:
            - truefoundry-agent
        name:
          description: The name of the Agent
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        description:
          description: The description of the Agent
          type: string
          maxLength: 2000
        tags:
          description: Tags for the Agent
          type: object
        model:
          $ref: '#/components/schemas/TrueFoundryAgentModel'
        skills:
          description: List of agent skills to attach to this agent
          type: array
          items:
            $ref: '#/components/schemas/TrueFoundryAgentSkill'
        mcp_servers:
          description: >-
            List of MCP servers with tag-based tool
            enable/disable/preload/approval policy
          type: array
          items:
            $ref: '#/components/schemas/TrueFoundryAgentMcpServer'
        instructions:
          description: System instructions or prompt for the agent
          type: string
        messages:
          description: >-
            Pre-defined initial messages for the agent. Supports template
            variable replacement.
          type: array
          items:
            $ref: '#/components/schemas/TrueFoundryAgentUserMessage'
        variables:
          description: >-
            Variables keyed by name. Each has optional default_value and
            optional description.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/TrueFoundryAgentVariable'
        sample_inputs:
          description: >-
            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)
          type: array
          items:
            $ref: '#/components/schemas/SampleAgentInput'
        response_format:
          $ref: '#/components/schemas/TrueFoundryAgentResponseFormat'
        config:
          $ref: '#/components/schemas/TrueFoundryAgentConfig'
        collaborators:
          description: List of users who have access to this Agent
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: TrueFoundryAgentManifest
      x-fern-type-name: TrueFoundryAgentManifest
    RemoteAgent:
      $ref: '#/components/schemas/SelfHostedAgent'
      title: RemoteAgent
      x-fern-type-name: RemoteAgent
    LegacyAgentManifest:
      type: object
      required:
        - type
        - name
        - description
        - source
        - collaborators
      properties:
        type:
          description: Type of the manifest
          type: string
          enum:
            - agent
        name:
          description: The name of the Agent
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        description:
          description: The description of the Agent
          type: string
          maxLength: 2000
        source:
          $ref: '#/components/schemas/AgentSource'
        collaborators:
          description: List of users who have access to this Agent
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        sample_inputs:
          description: >-
            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)
          type: array
          items:
            $ref: '#/components/schemas/SampleAgentInput'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: LegacyAgentManifest
      x-fern-type-name: LegacyAgentManifest
    EnvironmentColor:
      type: object
      properties:
        colorHex:
          type: string
        backgroundColorHex:
          type: string
        color:
          type: string
        backgroundColor:
          type: string
      title: EnvironmentColor
      x-fern-type-name: EnvironmentColor
    EnvironmentOptimizeFor:
      type: string
      enum:
        - COST
        - AVAILABILITY
      title: EnvironmentOptimizeFor
      x-fern-type-name: EnvironmentOptimizeFor
    TracingProjectStorageConfig:
      description: |-
        Storage configuration for tracing project
        +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/TracingProjectControlPlaneManagedStorage'
        - $ref: '#/components/schemas/TracingProjectCustomerManagedStorage'
      discriminator:
        propertyName: type
      title: TracingProjectStorageConfig
      x-fern-type-name: TracingProjectStorageConfig
    RemoteMCPServerManifest:
      description: Connect to an external MCP Server endpoint.
      type: object
      required:
        - type
        - name
        - description
        - url
        - collaborators
      properties:
        type:
          description: +value=mcp-server/remote
          type: string
          enum:
            - mcp-server/remote
        name:
          description: The name of the MCP Server.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,71}[a-z0-9]$
        description:
          description: Provide a brief description of the purpose of this MCP Server.
          type: string
          minLength: 1
          maxLength: 1000
        url:
          description: The endpoint URL for the MCP Server.
          type: string
          pattern: ^https?:\/\/[^\s]+$
        tls_settings:
          $ref: '#/components/schemas/CustomTLSSettings'
        tool_settings:
          description: >-
            Customize tool descriptions or enable/disable specific tools from
            the MCP Server.
          type: array
          items:
            $ref: '#/components/schemas/MCPToolSetting'
        auth_data:
          $ref: '#/components/schemas/MCPServerAuth'
        collaborators:
          description: Users and Teams that have access to this MCP Server
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        additional_headers:
          description: >-
            Additional HTTP headers sent on each request to the MCP server. If
            the same header is set in both `additional_headers` and `auth_data`,
            the `auth_data` value wins.
          type: object
        tags:
          description: >-
            Key-value pairs to categorize this MCP Server (e.g., by owner or
            environment).
          type: object
      title: RemoteMCPServerManifest
      x-fern-type-name: RemoteMCPServerManifest
    VirtualMCPServerManifest:
      description: TrueFoundry-hosted MCP Server composed of other MCP servers.
      type: object
      required:
        - type
        - name
        - description
        - servers
        - collaborators
      properties:
        type:
          description: +value=mcp-server/virtual
          type: string
          enum:
            - mcp-server/virtual
        name:
          description: The name of the Virtual MCP Server.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,71}[a-z0-9]$
        description:
          description: >-
            Provide a brief description of the purpose of this Virtual MCP
            Server.
          type: string
          minLength: 1
          maxLength: 1000
        servers:
          description: List of source MCP servers to include in this virtual server.
          type: array
          items:
            $ref: '#/components/schemas/McpServerSource'
        collaborators:
          description: Users and Teams that have access to this Virtual MCP Server
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        tags:
          description: >-
            Key-value pairs to categorize this Virtual MCP Server (e.g., by
            owner or environment).
          type: object
      title: VirtualMCPServerManifest
      x-fern-type-name: VirtualMCPServerManifest
    OpenAPIMCPServerManifest:
      description: Connect to an external OpenAPI Server endpoint.
      type: object
      required:
        - type
        - name
        - description
        - url
        - openapi_spec_source
        - collaborators
      properties:
        type:
          description: +value=mcp-server/openapi
          type: string
          enum:
            - mcp-server/openapi
        name:
          description: The name of the OpenAPI MCP Server.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,71}[a-z0-9]$
        description:
          description: >-
            Provide a brief description of the purpose of this OpenAPI MCP
            Server.
          type: string
          minLength: 1
          maxLength: 1000
        url:
          description: >-
            The base URL where API requests will be sent. This should be the
            root endpoint of your API server, without any path suffix.
          type: string
          pattern: ^https?:\/\/[^\s]+$
        openapi_spec_source:
          $ref: '#/components/schemas/OpenAPISpecSource'
        tls_settings:
          $ref: '#/components/schemas/CustomTLSSettings'
        enable_all_tools:
          description: >-
            When enabled, all tools from the OpenAPI spec will be available (up
            to 30 tools). Disable to select specific tools.
          type: boolean
        tool_settings:
          description: The tools to customize from the OpenAPI Server.
          type: array
          items:
            $ref: '#/components/schemas/OpenAPIMCPToolSetting'
        auth_data:
          $ref: '#/components/schemas/MCPServerAuth'
        collaborators:
          description: Users and Teams that have access to this OpenAPI Server
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        additional_headers:
          description: >-
            Additional HTTP headers sent on each request to the upstream OpenAPI
            server. If the same header is set in both `additional_headers` and
            `auth_data`, the `auth_data` value wins.
          type: object
        tags:
          description: >-
            Key-value pairs to categorize this OpenAPI MCP Server (e.g., by
            owner or environment).
          type: object
      title: OpenAPIMCPServerManifest
      x-fern-type-name: OpenAPIMCPServerManifest
    StdioMCPServerManifest:
      description: Stdio MCP server configuration.
      type: object
      required:
        - name
        - description
        - collaborators
        - type
        - command
      properties:
        name:
          description: The name of the MCP Server.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,71}[a-z0-9]$
        description:
          description: Provide a brief description of the purpose of this MCP Server.
          type: string
          minLength: 1
          maxLength: 1000
        collaborators:
          description: Users and Teams that have access to this MCP Server
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        type:
          description: |-
            +value=mcp-server/stdio
            +sort=400
          type: string
          enum:
            - mcp-server/stdio
        command:
          description: Executable to run for the stdio MCP server process.
          type: string
          minLength: 1
          default: npx
        args:
          description: Arguments passed to the stdio MCP server command.
          type: array
          items:
            type: string
        tool_settings:
          description: >-
            Customize tool descriptions or enable/disable specific tools from
            the MCP Server.
          type: array
          items:
            $ref: '#/components/schemas/MCPToolSetting'
        auth_data:
          $ref: '#/components/schemas/MCPServerEnvAuth'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        tags:
          description: >-
            Key-value pairs to categorize this MCP Server (e.g., by owner or
            environment).
          type: object
      title: StdioMCPServerManifest
      x-fern-type-name: StdioMCPServerManifest
    TfyManagedMCPServerManifest:
      description: Connect to an external MCP Server endpoint.
      type: object
      required:
        - type
        - name
        - description
        - server_identifier
        - collaborators
      properties:
        type:
          description: +value=mcp-server/tfy-managed
          type: string
          enum:
            - mcp-server/tfy-managed
        name:
          description: The name of the MCP Server.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,71}[a-z0-9]$
        description:
          description: Provide a brief description of the purpose of this MCP Server.
          type: string
          minLength: 1
          maxLength: 1000
        server_identifier:
          description: >-
            Catalog slug of the TrueFoundry-managed MCP server to connect to.
            Used to resolve the hosted endpoint and available tools.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,71}[a-z0-9]$
        tool_settings:
          description: >-
            Customize tool descriptions or enable/disable specific tools from
            the MCP Server.
          type: array
          items:
            $ref: '#/components/schemas/MCPToolSetting'
        collaborators:
          description: Users and Teams that have access to this MCP Server
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        auth_data:
          $ref: '#/components/schemas/TfyManagedMCPServerOAuth'
        tags:
          description: >-
            Key-value pairs to categorize this MCP Server (e.g., by owner or
            environment).
          type: object
      title: TfyManagedMCPServerManifest
      x-fern-type-name: TfyManagedMCPServerManifest
    RoleBindingSubject:
      description: >-
        Single row per principal: type selects how to interpret name (email vs
        names).

        Field names mirror the manifest root (type + name) for consistency in
        the UI and YAML.
      type: object
      required:
        - type
        - name
      properties:
        type:
          description: >-
            Whether this row identifies a user (email), a team (name), a virtual
            account (name), or an external identity (name).
          type: string
          enum:
            - user
            - team
            - virtualaccount
            - external-identity
        name:
          description: >-
            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.
          type: string
          minLength: 1
          maxLength: 1024
      title: RoleBindingSubject
      x-fern-type-name: RoleBindingSubject
    RoleBindingPermission:
      description: Grants a named account role on a specific resource identified by FQN.
      type: object
      required:
        - resourceType
        - resourceFqn
        - role
      properties:
        resourceType:
          description: Target resource kind (e.g. workspace, cluster, ml-repo).
          type: string
          minLength: 1
          maxLength: 128
        resourceFqn:
          description: Fully qualified name of the resource.
          type: string
          minLength: 1
          maxLength: 1024
        role:
          description: Name of the role to bind (e.g. workspace-editor, model-user).
          type: string
          minLength: 1
          maxLength: 255
      title: RoleBindingPermission
      x-fern-type-name: RoleBindingPermission
    AgentIdentityConfig:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/TruefoundryBackedIdentity'
        - $ref: '#/components/schemas/IdentityProviderBackedIdentity'
      discriminator:
        propertyName: type
      title: AgentIdentityConfig
      x-fern-type-name: AgentIdentityConfig
    AgentIdentityOwnedBy:
      description: Names of the owners that own the agent identity
      type: object
      required:
        - team
      properties:
        account:
          description: The name of the account that owns this resource
          type: string
        team:
          description: The name of the team that owns this resource
          type: string
      title: AgentIdentityOwnedBy
      x-fern-type-name: AgentIdentityOwnedBy
    ArtifactPath:
      properties:
        src:
          type: string
          title: Src
          description: Local file or folder path
        dest:
          type: string
          title: Dest
          description: >-
            Relative path where the file or folder will be uploaded to in the
            artifact
      type: object
      required:
        - src
      title: ArtifactPath
      x-fern-type-name: ArtifactPath
    LibraryName:
      type: string
      enum:
        - transformers
        - sentence-transformers
        - diffusers
      title: LibraryName
      description: Name of the library for the framework
      x-fern-type-name: LibraryName
    SklearnSerializationFormat:
      type: string
      enum:
        - cloudpickle
        - joblib
        - pickle
      title: SklearnSerializationFormat
      description: Serialization format used to save the sklearn model
      x-fern-type-name: SklearnSerializationFormat
    SklearnModelSchema:
      properties:
        infer_method_name:
          allOf:
            - $ref: '#/components/schemas/InferMethodName'
          description: Name of the method used for inference
        inputs:
          items:
            type: object
          type: array
          title: Inputs
          description: Schema of the input
        outputs:
          items:
            type: object
          type: array
          title: Outputs
          description: Schema of the output
      type: object
      required:
        - infer_method_name
        - inputs
        - outputs
      title: SklearnModelSchema
      x-fern-type-name: SklearnModelSchema
    XGBoostSerializationFormat:
      type: string
      enum:
        - cloudpickle
        - joblib
        - pickle
        - json
      title: XGBoostSerializationFormat
      description: Serialization format used to save the xgboost model
      x-fern-type-name: XGBoostSerializationFormat
    XGBoostModelSchema:
      properties:
        infer_method_name:
          type: string
          enum:
            - predict
          title: Infer Method Name
          description: Name of the method used for inference
        inputs:
          items:
            type: object
          type: array
          title: Inputs
          description: Schema of the input
        outputs:
          items:
            type: object
          type: array
          title: Outputs
          description: Schema of the output
      type: object
      required:
        - infer_method_name
        - inputs
        - outputs
      title: XGBoostModelSchema
      description: Schema of the XGBoost model
      x-fern-type-name: XGBoostModelSchema
    BlobStorageReference:
      properties:
        type:
          type: string
          enum:
            - blob-storage
          title: Type
        path:
          type: string
          pattern: ^.{1,}$
          title: Path
          description: Path to the content in blob storage
        mime_type:
          allOf:
            - $ref: '#/components/schemas/MimeType'
          description: MIME type of the content
      type: object
      required:
        - type
        - path
        - mime_type
      title: BlobStorageReference
      description: A reference to content offloaded to blob storage
      x-fern-type-name: BlobStorageReference
    TextContentPart:
      description: Text content for the message
      type: object
      required:
        - type
        - text
      properties:
        type:
          description: Type of the content part
          type: string
          enum:
            - text
        text:
          description: Text content for the message
          oneOf:
            - type: string
              pattern: ^.[\s\S]*$
            - $ref: '#/components/schemas/BlobStorageReference'
      title: TextContentPart
      x-fern-type-name: TextContentPart
    RefusalContentPart:
      type: object
      required:
        - type
        - refusal
      properties:
        type:
          description: Type of the content part
          type: string
        refusal:
          description: Reason
          type: string
      title: RefusalContentPart
      x-fern-type-name: RefusalContentPart
    ToolCall:
      type: object
      required:
        - type
        - id
        - function
      properties:
        type:
          description: Type of the tool call
          type: string
          enum:
            - function
        id:
          description: Unique identifier for the tool call
          type: string
        function:
          $ref: '#/components/schemas/Function'
      title: ToolCall
      x-fern-type-name: ToolCall
    ImageContentPart:
      description: Image content for the message
      type: object
      required:
        - type
        - image_url
      properties:
        type:
          description: Type of the content part
          type: string
          enum:
            - image_url
        image_url:
          description: Image URL linking to the image
          type: object
          required:
            - url
          properties:
            url:
              description: Image URL linking to the image
              oneOf:
                - type: string
                  pattern: "^\b((https?://)?(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}(?:[-a-zA-Z0-9()@:%_\\+.~#?&/=]*)|data:image/[a-zA-Z]+;base64,[a-zA-Z0-9+/=\\s]+)$"
                - $ref: '#/components/schemas/BlobStorageReference'
            detail:
              description: Details
              type: string
      title: ImageContentPart
      x-fern-type-name: ImageContentPart
    Parameters:
      properties:
        max_tokens:
          type: integer
          title: Max Tokens
        temperature:
          type: number
          title: Temperature
        top_k:
          type: number
          title: Top K
        top_p:
          type: number
          title: Top P
        stop:
          anyOf:
            - type: array
              items:
                type: string
            - type: string
          title: Stop
      type: object
      title: Parameters
      description: Parameters to pass to the model when generating
      x-fern-type-name: Parameters
    FunctionSchema:
      description: Schema defining a function for tool calls
      type: object
      required:
        - name
      properties:
        name:
          description: Name of the function
          type: string
        description:
          description: Description of the function
          type: string
        parameters:
          description: Parameters schema for the function
          type: object
        strict:
          description: Indicates if the function should be called strictly
          type: boolean
          default: false
      title: FunctionSchema
      x-fern-type-name: FunctionSchema
    MCPTool:
      description: Tool configuration for MCP server
      type: object
      required:
        - name
      properties:
        name:
          description: The name of the tool as it appears in the MCP server
          type: string
      title: MCPTool
      x-fern-type-name: MCPTool
    JsonSchema:
      description: JSON schema for structured output
      type: object
      required:
        - name
        - schema
      properties:
        name:
          description: Name of the schema
          type: string
        schema:
          description: JSON schema object defining the expected structure
          type: object
      title: JsonSchema
      x-fern-type-name: JsonSchema
    LoadBalanceTarget:
      description: Weight-based Target
      type: object
      required:
        - target
        - weight
      properties:
        target:
          description: Target model or provider FQN
          type: string
        weight:
          description: >-
            Relative weight for routing decisions (higher values mean more
            traffic)
          type: integer
        retry_config:
          $ref: '#/components/schemas/RetryConfig'
        fallback_status_codes:
          description: >-
            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.
          type: array
          items:
            type: string
          default:
            - '401'
            - '403'
            - '404'
            - '408'
            - '429'
            - '500'
            - '502'
            - '503'
        fallback_candidate:
          description: >-
            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
          type: boolean
          default: true
        override_params:
          description: Optional parameters to override in the request
          type: object
        headers_override:
          $ref: '#/components/schemas/HeadersOverride'
        metadata_match:
          description: >-
            Optional metadata key-value pairs that must match incoming request
            metadata headers for this target to be considered for routing.
          type: object
          additionalProperties:
            type: string
      title: LoadBalanceTarget
      x-fern-type-name: LoadBalanceTarget
    StickyRouting:
      description: Sticky Routing
      type: object
      required:
        - ttl_seconds
        - session_identifiers
      properties:
        ttl_seconds:
          description: Sticky mapping TTL in seconds
          type: integer
          minimum: 1800
          maximum: 86400
        session_identifiers:
          description: List of identifier selectors used to build sticky key
          type: array
          items:
            $ref: '#/components/schemas/StickySessionIdentifier'
      title: StickyRouting
      x-fern-type-name: StickyRouting
    LatencyBasedLoadBalanceTarget:
      description: Latency-based Target
      type: object
      required:
        - target
      properties:
        target:
          description: Target model or provider FQN
          type: string
        retry_config:
          $ref: '#/components/schemas/RetryConfig'
        fallback_status_codes:
          description: >-
            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.
          type: array
          items:
            type: string
          default:
            - '401'
            - '403'
            - '404'
            - '408'
            - '429'
            - '500'
            - '502'
            - '503'
        fallback_candidate:
          description: >-
            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
          type: boolean
          default: true
        override_params:
          description: Optional parameters to override in the request
          type: object
        headers_override:
          $ref: '#/components/schemas/HeadersOverride'
        metadata_match:
          description: >-
            Optional metadata key-value pairs that must match incoming request
            metadata headers for this target to be considered for routing.
          type: object
          additionalProperties:
            type: string
      title: LatencyBasedLoadBalanceTarget
      x-fern-type-name: LatencyBasedLoadBalanceTarget
    PriorityBasedLoadBalanceTarget:
      type: object
      required:
        - target
        - priority
      properties:
        target:
          description: Target model or provider FQN
          type: string
        priority:
          description: >-
            Priority for the target, Lower the number, higher the priority (0 is
            the highest priority)
          type: integer
          minimum: 0
          default: 0
        sla_cutoff:
          $ref: '#/components/schemas/SLACutoff'
        retry_config:
          $ref: '#/components/schemas/RetryConfig'
        fallback_status_codes:
          description: >-
            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.
          type: array
          items:
            type: string
          default:
            - '401'
            - '403'
            - '404'
            - '408'
            - '429'
            - '500'
            - '502'
            - '503'
        fallback_candidate:
          description: >-
            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
          type: boolean
          default: true
        override_params:
          description: Optional parameters to override in the request
          type: object
        headers_override:
          $ref: '#/components/schemas/HeadersOverride'
        metadata_match:
          description: >-
            Optional metadata key-value pairs that must match incoming request
            metadata headers for this target to be considered for routing.
          type: object
          additionalProperties:
            type: string
      title: PriorityBasedLoadBalanceTarget
      x-fern-type-name: PriorityBasedLoadBalanceTarget
    CPUUtilizationMetric:
      type: object
      required:
        - type
        - value
      properties:
        type:
          description: +value=cpu_utilization
          type: string
          enum:
            - cpu_utilization
        value:
          description: >-
            Percentage of cpu request averaged over all replicas which the
            autoscaler should try to maintain
          type: integer
          minimum: 1
          maximum: 100
      title: CPUUtilizationMetric
      x-fern-type-name: CPUUtilizationMetric
    RPSMetric:
      type: object
      required:
        - type
        - value
      properties:
        type:
          description: +value=rps
          type: string
          enum:
            - rps
        value:
          description: >-
            Average request per second averaged over all replicas that
            autoscaler should try to maintain
          type: number
          minimum: 0
          exclusiveMinimum: true
      title: RPSMetric
      x-fern-type-name: RPSMetric
    CronMetric:
      type: object
      required:
        - type
        - start
        - end
        - timezone
      properties:
        type:
          description: +value=cron
          type: string
          enum:
            - cron
        desired_replicas:
          description: >-
            Desired number of replicas during the given interval. Default value
            is max_replicas.
          type: integer
          minimum: 1
        start:
          description: |-
            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)
            ```
          type: string
        end:
          description: |-
            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)
            ```
          type: string
        timezone:
          description: >-
            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
          type: string
          default: UTC
      title: CronMetric
      x-fern-type-name: CronMetric
    BaseAutoscaling:
      type: object
      required:
        - min_replicas
        - max_replicas
      properties:
        min_replicas:
          description: Minimum number of replicas to keep available
          type: integer
          minimum: 0
          default: 1
        max_replicas:
          description: Maximum number of replicas allowed for the component.
          type: integer
          minimum: 1
          maximum: 500
        polling_interval:
          description: This is the interval to check each trigger on.
          type: integer
          minimum: 0
          default: 30
      title: BaseAutoscaling
      x-fern-type-name: BaseAutoscaling
    CanaryStep:
      type: object
      required:
        - weight_percentage
      properties:
        weight_percentage:
          description: |-
            Percentage of total traffic to be shifted to the canary release.
            The rest will continue to go to the existing deployment
          type: integer
          minimum: 0
          maximum: 100
        pause_duration:
          description: >-
            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
          type: integer
          minimum: 0
      title: CanaryStep
      x-fern-type-name: CanaryStep
    ArtifactsDownload:
      description: >-
        Download and cache models in a volume to enhance loading speeds and
        reduce costs by avoiding repeated downloads.
        [Docs](https://docs.truefoundry.com/docs/download-and-cache-models)
      type: object
      required:
        - artifacts
      properties:
        cache_volume:
          $ref: '#/components/schemas/ArtifactsCacheVolume'
        artifacts:
          description: List of artifacts to be cached
          type: array
          items:
            type: object
            oneOf:
              - $ref: '#/components/schemas/TrueFoundryArtifactSource'
              - $ref: '#/components/schemas/HuggingfaceArtifactSource'
      title: ArtifactsDownload
      x-fern-type-name: ArtifactsDownload
    Port:
      description: Describes the ports the service should be exposed to.
      type: object
      required:
        - port
        - protocol
        - expose
      properties:
        port:
          description: Port number to expose.
          type: integer
          minimum: 1
          maximum: 65535
          default: 80
        protocol:
          description: Protocol for the port.
          type: string
          enum:
            - TCP
            - UDP
          default: TCP
        expose:
          description: Expose the port
          type: boolean
          default: true
        app_protocol:
          description: >-
            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`.
          type: string
          enum:
            - http
            - grpc
            - tcp
          default: http
        host:
          description: Host e.g. ai.example.com, app.truefoundry.com
          type: string
          pattern: >-
            ^((([a-zA-Z0-9\-]{1,63}\.)([a-zA-Z0-9\-]{1,63}\.)*([A-Za-z]{1,63}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))$
        path:
          description: Path e.g. /v1/api/ml/, /v2/docs/
          type: string
          pattern: ^(/([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-_\.]*[a-zA-Z0-9]))*/$
        rewrite_path_to:
          description: >-
            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.
          type: string
          pattern: ^(/([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-_\.]*[a-zA-Z0-9]))*/$
        auth:
          description: Authentication method for inbound traffic
          type: object
          oneOf:
            - $ref: '#/components/schemas/BasicAuthCreds'
            - $ref: '#/components/schemas/JwtAuthConfig'
            - $ref: '#/components/schemas/TrueFoundryInteractiveLogin'
          discriminator:
            propertyName: type
      title: Port
      x-fern-type-name: Port
    HealthProbe:
      description: >-
        Describes the configuration for the Health Probe's

        To learn more you can go
        [here](https://docs.truefoundry.com/docs/liveness-readiness-probe)
      type: object
      required:
        - config
      properties:
        config:
          $ref: '#/components/schemas/HttpProbe'
        initial_delay_seconds:
          description: >-
            Time to wait after container has started before checking the
            endpoint
          type: integer
          minimum: 0
          maximum: 36000
          default: 0
        period_seconds:
          description: How often to check the endpoint
          type: integer
          minimum: 1
          maximum: 36000
          default: 10
        timeout_seconds:
          description: >-
            Time to wait for a response from the endpoint before considering it
            down
          type: integer
          minimum: 1
          maximum: 36000
          default: 1
        success_threshold:
          description: >-
            Number of successful responses from the endpoint before container is
            considered healthy
          type: integer
          minimum: 1
          maximum: 5000
          default: 1
        failure_threshold:
          description: >-
            Number of consecutive failures before the container is considered
            down
          type: integer
          minimum: 1
          maximum: 5000
          default: 3
      title: HealthProbe
      x-fern-type-name: HealthProbe
    AwsProviderAccount:
      description: AWS
      type: object
      required:
        - type
        - name
        - aws_account_id
        - integrations
      properties:
        type:
          description: +value=provider-account/aws
          type: string
          enum:
            - provider-account/aws
        name:
          description: The name of the AWS provider account.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        aws_account_id:
          description: The AWS account ID.
          type: string
          pattern: ^\S+$
        auth_data:
          description: Authentication data for the AWS account.
          type: object
          oneOf:
            - $ref: '#/components/schemas/AwsAccessKeyBasedAuth'
            - $ref: '#/components/schemas/AwsAssumedRoleBasedAuth'
          discriminator:
            propertyName: type
        integrations:
          description: >-
            List of integrations that are associated with the AWS provider
            account.
          type: array
          items:
            $ref: '#/components/schemas/AwsIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: AwsProviderAccount
      x-fern-type-name: AwsProviderAccount
    AzureProviderAccount:
      description: Azure
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/azure
          type: string
          enum:
            - provider-account/azure
        name:
          description: The name of the Azure provider account.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        subscription_id:
          description: The ID of the target subscription. The value must be an UUID.
          type: string
        integrations:
          description: >-
            List of integrations that are associated with the Azure provider
            account.
          type: array
          items:
            $ref: '#/components/schemas/AzureIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: AzureProviderAccount
      x-fern-type-name: AzureProviderAccount
    GcpProviderAccount:
      description: GCP
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/gcp
          type: string
          enum:
            - provider-account/gcp
        name:
          description: The name of the GCP provider account.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        project_id:
          description: The project id of the GCP account.
          type: string
        auth_data:
          $ref: '#/components/schemas/GcpKeyFileAuth'
        integrations:
          description: >-
            List of integrations that are associated with the GCP provider
            account.
          type: array
          items:
            $ref: '#/components/schemas/GcpIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: GcpProviderAccount
      x-fern-type-name: GcpProviderAccount
    DockerhubProviderAccount:
      description: Dockerhub
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/dockerhub
          type: string
          enum:
            - provider-account/dockerhub
        name:
          description: >-
            3 to 36 lower case characters long alphanumeric word, may contain -
            in between, cannot start with a number
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        account_name:
          description: Account Name
          type: string
          pattern: ^\S+$
        auth_data:
          $ref: '#/components/schemas/DockerhubBasicAuth'
        integrations:
          description: +uiType=IntegrationsGroup
          type: array
          items:
            $ref: '#/components/schemas/DockerhubIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: DockerhubProviderAccount
      x-fern-type-name: DockerhubProviderAccount
    BitbucketProviderAccount:
      description: Bitbucket
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/bitbucket
          type: string
          enum:
            - provider-account/bitbucket
        name:
          description: +uiProps={"disableEdit":true}
          type: string
          pattern: ^\S+$
        integrations:
          description: +uiType=IntegrationsGroup
          type: array
          items:
            $ref: '#/components/schemas/BitbucketIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: BitbucketProviderAccount
      x-fern-type-name: BitbucketProviderAccount
    CustomProviderAccount:
      description: Custom
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/custom
          type: string
          enum:
            - provider-account/custom
        name:
          description: The name of the provider account.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/CustomBasicAuth'
        integrations:
          description: List of integrations that are associated with the provider account.
          type: array
          items:
            $ref: '#/components/schemas/CustomIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: CustomProviderAccount
      x-fern-type-name: CustomProviderAccount
    GithubProviderAccount:
      description: Github
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/github
          type: string
          enum:
            - provider-account/github
        name:
          description: +uiProps={"disableEdit":true}
          type: string
          pattern: ^\S+$
        integrations:
          description: +uiType=IntegrationsGroup
          type: array
          items:
            $ref: '#/components/schemas/GithubIntegration'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: GithubProviderAccount
      x-fern-type-name: GithubProviderAccount
    GitlabProviderAccount:
      description: Gitlab
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/gitlab
          type: string
          enum:
            - provider-account/gitlab
        name:
          description: +uiProps={"disableEdit":true}
          type: string
          pattern: ^\S+$
        integrations:
          description: +uiType=IntegrationsGroup
          type: array
          items:
            $ref: '#/components/schemas/GitlabIntegration'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: GitlabProviderAccount
      x-fern-type-name: GitlabProviderAccount
    JfrogProviderAccount:
      description: Jfrog
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/jfrog
          type: string
          enum:
            - provider-account/jfrog
        name:
          description: The name of the provider account.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        account_name:
          description: The name of the JFrog account.
          type: string
          pattern: ^\S+$
        auth_data:
          $ref: '#/components/schemas/JfrogBasicAuth'
        integrations:
          description: List of integrations that are associated with the provider account.
          type: array
          items:
            $ref: '#/components/schemas/JFrogIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: JfrogProviderAccount
      x-fern-type-name: JfrogProviderAccount
    TTLProviderAccount:
      description: TTL
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/ttl
          type: string
          enum:
            - provider-account/ttl
        name:
          description: The name of the provider account.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        integrations:
          description: List of integrations that are associated with the provider account.
          type: array
          items:
            $ref: '#/components/schemas/TTLIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: TTLProviderAccount
      x-fern-type-name: TTLProviderAccount
    TrueFoundryProviderAccount:
      description: TrueFoundry
      type: object
      required:
        - type
        - name
      properties:
        type:
          description: +value=provider-account/truefoundry
          type: string
          enum:
            - provider-account/truefoundry
        name:
          description: The name of the provider account.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        integrations:
          description: List of integrations that are associated with the provider account.
          type: array
          items:
            $ref: '#/components/schemas/TrueFoundryIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: TrueFoundryProviderAccount
      x-fern-type-name: TrueFoundryProviderAccount
    QuayProviderAccount:
      description: Quay
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/quay
          type: string
          enum:
            - provider-account/quay
        name:
          description: The name of the provider account.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        account_name:
          description: The name of the account on Quay.
          type: string
          pattern: ^\S+$
        auth_data:
          $ref: '#/components/schemas/QuayBasicAuth'
        integrations:
          description: List of integrations that are associated with the provider account.
          type: array
          items:
            $ref: '#/components/schemas/QuayIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: QuayProviderAccount
      x-fern-type-name: QuayProviderAccount
    SlackProviderAccount:
      description: Slack Provider Account
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/slack
          type: string
          enum:
            - provider-account/slack
        name:
          description: The name of the provider account.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        integrations:
          description: List of integrations that are associated with the provider account.
          type: array
          items:
            $ref: '#/components/schemas/SlackIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: SlackProviderAccount
      x-fern-type-name: SlackProviderAccount
    WebhookProviderAccount:
      description: Webhook Provider Account
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/webhook
          type: string
          enum:
            - provider-account/webhook
        name:
          description: The name of the provider account.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        integrations:
          description: List of integrations that are associated with the provider account.
          type: array
          items:
            $ref: '#/components/schemas/WebhookIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: WebhookProviderAccount
      x-fern-type-name: WebhookProviderAccount
    PagerDutyProviderAccount:
      description: PagerDuty Provider Account
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/pagerduty
          type: string
          enum:
            - provider-account/pagerduty
        name:
          description: The name of the PagerDuty provider account
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,34}[a-z0-9]$
        integrations:
          description: >-
            List of integrations that are associated with the PagerDuty provider
            account
          type: array
          items:
            $ref: '#/components/schemas/PagerDutyIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: PagerDutyProviderAccount
      x-fern-type-name: PagerDutyProviderAccount
    MSTeamsProviderAccount:
      description: MS Teams Provider Account
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/ms-teams
          type: string
          enum:
            - provider-account/ms-teams
        name:
          description: The name of the MS Teams provider account
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,34}[a-z0-9]$
        integrations:
          description: >-
            List of integrations that are associated with the MS Teams provider
            account
          type: array
          items:
            $ref: '#/components/schemas/MSTeamsIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: MSTeamsProviderAccount
      x-fern-type-name: MSTeamsProviderAccount
    HashicorpProviderAccount:
      description: HashiCorp Vault
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/hashicorp
          type: string
          enum:
            - provider-account/hashicorp
        name:
          description: The name of the HashiCorp Vault provider account.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        integrations:
          description: >-
            List of integrations that are associated with the HashiCorp Vault
            provider account.
          type: array
          items:
            $ref: '#/components/schemas/HashicorpIntegrations'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: HashicorpProviderAccount
      x-fern-type-name: HashicorpProviderAccount
    AwsBedrockProviderAccount:
      description: AWS Bedrock
      type: object
      required:
        - type
        - name
        - region
        - integrations
      properties:
        type:
          description: +value=provider-account/aws-bedrock
          type: string
          enum:
            - provider-account/aws-bedrock
        name:
          description: The name of the AWS Bedrock provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        region:
          $ref: '#/components/schemas/AWSRegion'
        auth_data:
          description: Authentication data for the AWS account
          type: object
          oneOf:
            - $ref: '#/components/schemas/AwsAccessKeyBasedAuth'
            - $ref: '#/components/schemas/AwsBedrockAssumedRoleBasedAuth'
            - $ref: '#/components/schemas/AwsBedrockApiKeyAuth'
          discriminator:
            propertyName: type
        integrations:
          description: >-
            List of integrations that are associated with the AWS Bedrock
            provider account
          type: array
          items:
            $ref: '#/components/schemas/BedrockModel'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: AwsBedrockProviderAccount
      x-fern-type-name: AwsBedrockProviderAccount
    GoogleVertexProviderAccount:
      description: Google Vertex Provider Account
      type: object
      required:
        - type
        - name
        - project_id
        - region
        - integrations
      properties:
        type:
          description: +value=provider-account/google-vertex
          type: string
          enum:
            - provider-account/google-vertex
        name:
          description: The name of the Google Vertex provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        project_id:
          description: The Google Cloud project ID where Vertex AI is enabled
          type: string
          pattern: ^\S+$
        region:
          $ref: '#/components/schemas/VertexRegion'
        auth_data:
          description: >-
            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
          type: object
          oneOf:
            - $ref: '#/components/schemas/VertexKeyFileAuth'
            - $ref: '#/components/schemas/VertexWifFileAuth'
          discriminator:
            propertyName: type
        integrations:
          description: >-
            List of integrations that are associated with the Google Vertex
            provider account
          type: array
          items:
            $ref: '#/components/schemas/VertexModel'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: GoogleVertexProviderAccount
      x-fern-type-name: GoogleVertexProviderAccount
    GoogleGeminiProviderAccount:
      description: Google Gemini Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/google-gemini
          type: string
          enum:
            - provider-account/google-gemini
        name:
          description: The name of the Google Gemini provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/GcpApiKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the Google Gemini
            provider account
          type: array
          items:
            $ref: '#/components/schemas/GeminiModel'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: GoogleGeminiProviderAccount
      x-fern-type-name: GoogleGeminiProviderAccount
    AzureOpenAIProviderAccount:
      description: Azure OpenAI Provider Account
      type: object
      required:
        - type
        - name
        - azure_endpoint
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/azure-openai
          type: string
          enum:
            - provider-account/azure-openai
        name:
          description: The name of the Azure OpenAI provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        azure_endpoint:
          description: >-
            The Azure OpenAI Service endpoint URL. Should look like
            https://{resource-name}.openai.azure.com
          type: string
          pattern: ^\S+$
        auth_data:
          description: Azure OpenAI authentication credentials
          type: object
          oneOf:
            - $ref: '#/components/schemas/AzureKeyAuth'
            - $ref: '#/components/schemas/AzureCertificateAuth'
            - $ref: '#/components/schemas/AzureClientSecretAuth'
            - $ref: '#/components/schemas/AzureWorkloadIdentityAuth'
          discriminator:
            propertyName: type
        integrations:
          description: >-
            List of integrations that are associated with the Azure OpenAI
            provider account
          type: array
          items:
            $ref: '#/components/schemas/AzureOpenAIModel'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: AzureOpenAIProviderAccount
      x-fern-type-name: AzureOpenAIProviderAccount
    AzureFoundryProviderAccount:
      description: Azure AI Foundry Provider Account
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/azure-foundry
          type: string
          enum:
            - provider-account/azure-foundry
        name:
          description: The name of the Azure AI Foundry provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        integrations:
          description: >-
            List of integrations that are associated with the Azure Foundry
            provider account
          type: array
          items:
            $ref: '#/components/schemas/AzureFoundryModel'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: AzureFoundryProviderAccount
      x-fern-type-name: AzureFoundryProviderAccount
    CohereProviderAccount:
      description: Cohere Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
      properties:
        type:
          description: +value=provider-account/cohere
          type: string
          enum:
            - provider-account/cohere
        name:
          description: The name of the Cohere provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/CohereKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the Cohere provider
            account
          type: array
          items:
            $ref: '#/components/schemas/CohereIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: CohereProviderAccount
      x-fern-type-name: CohereProviderAccount
    AI21ProviderAccount:
      description: AI21
      type: object
      required:
        - type
        - name
        - auth_data
      properties:
        type:
          description: +value=provider-account/ai21
          type: string
          enum:
            - provider-account/ai21
        name:
          description: The name of the AI21 provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/AI21KeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the AI21 provider
            account
          type: array
          items:
            $ref: '#/components/schemas/AI21Integrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: AI21ProviderAccount
      x-fern-type-name: AI21ProviderAccount
    AnthropicProviderAccount:
      description: Anthropic
      type: object
      required:
        - type
        - name
      properties:
        type:
          description: +value=provider-account/anthropic
          type: string
          enum:
            - provider-account/anthropic
        name:
          description: The name of the Anthropic provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/AnthropicKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the Anthropic provider
            account
          type: array
          items:
            $ref: '#/components/schemas/AnthropicIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: AnthropicProviderAccount
      x-fern-type-name: AnthropicProviderAccount
    DeepinfraProviderAccount:
      description: DeepInfra Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
      properties:
        type:
          description: +value=provider-account/deepinfra
          type: string
          enum:
            - provider-account/deepinfra
        name:
          description: The name of the DeepInfra provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/DeepinfraKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the DeepInfra provider
            account
          type: array
          items:
            $ref: '#/components/schemas/DeepinfraIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: DeepinfraProviderAccount
      x-fern-type-name: DeepinfraProviderAccount
    GroqProviderAccount:
      description: Groq Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/groq
          type: string
          enum:
            - provider-account/groq
        name:
          description: The name of the Groq provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/GroqKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the Groq provider
            account
          type: array
          items:
            $ref: '#/components/schemas/GroqIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: GroqProviderAccount
      x-fern-type-name: GroqProviderAccount
    MistralAIProviderAccount:
      description: Mistral AI Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/mistral-ai
          type: string
          enum:
            - provider-account/mistral-ai
        name:
          description: The name of the Mistral AI provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/MistralAIKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the Mistral AI
            provider account
          type: array
          items:
            $ref: '#/components/schemas/MistralAIIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: MistralAIProviderAccount
      x-fern-type-name: MistralAIProviderAccount
    PerplexityAIProviderAccount:
      description: Perplexity AI Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/perplexity-ai
          type: string
          enum:
            - provider-account/perplexity-ai
        name:
          description: The name of the Perplexity AI provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/PerplexityAIKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the Perplexity AI
            provider account
          type: array
          items:
            $ref: '#/components/schemas/PerplexityIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: PerplexityAIProviderAccount
      x-fern-type-name: PerplexityAIProviderAccount
    TogetherAIProviderAccount:
      description: Together AI Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/together-ai
          type: string
          enum:
            - provider-account/together-ai
        name:
          description: The name of the Together AI provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/TogetherAIKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the Together AI
            provider account
          type: array
          items:
            $ref: '#/components/schemas/TogetherAIIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: TogetherAIProviderAccount
      x-fern-type-name: TogetherAIProviderAccount
    NomicProviderAccount:
      description: Nomic Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/nomic
          type: string
          enum:
            - provider-account/nomic
        name:
          description: The name of the Nomic provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/NomicKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the Nomic provider
            account
          type: array
          items:
            $ref: '#/components/schemas/NomicIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: NomicProviderAccount
      x-fern-type-name: NomicProviderAccount
    PalmProviderAccount:
      description: PaLM Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/palm
          type: string
          enum:
            - provider-account/palm
        name:
          description: The name of the PaLM provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/PalmKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the PaLM provider
            account
          type: array
          items:
            $ref: '#/components/schemas/PalmIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: PalmProviderAccount
      x-fern-type-name: PalmProviderAccount
    OllamaProviderAccount:
      description: Ollama Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/ollama
          type: string
          enum:
            - provider-account/ollama
        name:
          description: The name of the Ollama provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/OllamaKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the Ollama provider
            account
          type: array
          items:
            $ref: '#/components/schemas/OllamaIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: OllamaProviderAccount
      x-fern-type-name: OllamaProviderAccount
    OpenaiProviderAccount:
      description: OpenAI Provider Account
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/openai
          type: string
          enum:
            - provider-account/openai
        name:
          description: The name of the OpenAI provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/OpenaiApiKeyAuth'
        base_url:
          description: Optional custom base URL for OpenAI API
          type: string
          pattern: ^\S+$
        integrations:
          description: >-
            List of integrations that are associated with the OpenAI provider
            account
          type: array
          items:
            $ref: '#/components/schemas/OpenAIIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: OpenaiProviderAccount
      x-fern-type-name: OpenaiProviderAccount
    DatabricksProviderAccount:
      description: Databricks Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - base_url
        - integrations
      properties:
        type:
          description: +value=provider-account/databricks
          type: string
          enum:
            - provider-account/databricks
        name:
          description: The name of the Databricks provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          description: Databricks authentication credentials
          type: object
          oneOf:
            - $ref: '#/components/schemas/DatabricksServicePrincipalAuth'
            - $ref: '#/components/schemas/DatabricksApiKeyAuth'
          discriminator:
            propertyName: type
        base_url:
          description: The base URL of your Databricks workspace
          type: string
          pattern: ^\S+$
        integrations:
          description: >-
            List of integrations that are associated with the Databricks
            provider account
          type: array
          items:
            $ref: '#/components/schemas/DatabricksIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: DatabricksProviderAccount
      x-fern-type-name: DatabricksProviderAccount
    ClouderaProviderAccount:
      description: Cloudera Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/cloudera
          type: string
          enum:
            - provider-account/cloudera
        name:
          description: The name of the Cloudera provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          description: Cloudera authentication credentials
          type: object
          oneOf:
            - $ref: '#/components/schemas/ClouderaWorkloadAuthToken'
            - $ref: '#/components/schemas/ClouderaTokenAuth'
          discriminator:
            propertyName: type
        integrations:
          description: >-
            List of integrations that are associated with the Cloudera provider
            account
          type: array
          items:
            $ref: '#/components/schemas/ClouderaIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: ClouderaProviderAccount
      x-fern-type-name: ClouderaProviderAccount
    SelfHostedModelProviderAccount:
      description: Self Hosted
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/self-hosted-model
          type: string
          enum:
            - provider-account/self-hosted-model
        name:
          description: The name of the provider account.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        integrations:
          description: List of integrations that are associated with the provider account.
          type: array
          items:
            $ref: '#/components/schemas/SelfHostedModelIntegrations'
        collaborators:
          description: Collaborators
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: SelfHostedModelProviderAccount
      x-fern-type-name: SelfHostedModelProviderAccount
    OpenRouterProviderAccount:
      description: OpenRouter Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/openrouter
          type: string
          enum:
            - provider-account/openrouter
        name:
          description: The name of the OpenRouter provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/OpenRouterApiKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the OpenRouter
            provider account
          type: array
          items:
            $ref: '#/components/schemas/OpenRouterIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: OpenRouterProviderAccount
      x-fern-type-name: OpenRouterProviderAccount
    SambaNovaProviderAccount:
      description: SambaNova Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/sambanova
          type: string
          enum:
            - provider-account/sambanova
        name:
          description: The name of the SambaNova provider account
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,60}[a-zA-Z0-9])$
        auth_data:
          $ref: '#/components/schemas/SambaNovaKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the SambaNova provider
            account
          type: array
          items:
            $ref: '#/components/schemas/SambaNovaIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: SambaNovaProviderAccount
      x-fern-type-name: SambaNovaProviderAccount
    XAIProviderAccount:
      description: xAI
      type: object
      required:
        - type
        - name
        - auth_data
      properties:
        type:
          description: +value=provider-account/xai
          type: string
          enum:
            - provider-account/xai
        name:
          description: The name of the xAI provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/XAIKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the xAI provider
            account
          type: array
          items:
            $ref: '#/components/schemas/XAIIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: XAIProviderAccount
      x-fern-type-name: XAIProviderAccount
    BasetenProviderAccount:
      description: Baseten
      type: object
      required:
        - type
        - name
        - auth_data
      properties:
        type:
          description: +value=provider-account/baseten
          type: string
          enum:
            - provider-account/baseten
        name:
          description: The name of the Baseten provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/BasetenKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the Baseten provider
            account
          type: array
          items:
            $ref: '#/components/schemas/BasetenIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: BasetenProviderAccount
      x-fern-type-name: BasetenProviderAccount
    AwsSagemakerProviderAccount:
      description: Sagemaker
      type: object
      required:
        - type
        - name
        - region
        - integrations
      properties:
        type:
          description: +value=provider-account/aws-sagemaker
          type: string
          enum:
            - provider-account/aws-sagemaker
        name:
          description: The name of the Sagemaker provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        region:
          $ref: '#/components/schemas/AWSRegion'
        auth_data:
          description: Authentication data for the AWS account
          type: object
          oneOf:
            - $ref: '#/components/schemas/AwsAccessKeyBasedAuth'
            - $ref: '#/components/schemas/SagemakerAssumedRoleBasedAuth'
          discriminator:
            propertyName: type
        integrations:
          description: >-
            List of integrations that are associated with the Sagemaker provider
            account
          type: array
          items:
            $ref: '#/components/schemas/SagemakerModel'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: AwsSagemakerProviderAccount
      x-fern-type-name: AwsSagemakerProviderAccount
    CerebrasProviderAccount:
      description: Cerebras Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
      properties:
        type:
          description: +value=provider-account/cerebras
          type: string
          enum:
            - provider-account/cerebras
        name:
          description: The name of the Cerebras provider account
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,60}[a-zA-Z0-9])$
        auth_data:
          $ref: '#/components/schemas/CerebrasKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the Cerebras provider
            account
          type: array
          items:
            $ref: '#/components/schemas/CerebrasIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: CerebrasProviderAccount
      x-fern-type-name: CerebrasProviderAccount
    WaferProviderAccount:
      description: Wafer Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
      properties:
        type:
          description: +value=provider-account/wafer
          type: string
          enum:
            - provider-account/wafer
        name:
          description: The name of the Wafer provider account
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,60}[a-zA-Z0-9])$
        auth_data:
          $ref: '#/components/schemas/WaferAPIKeyAuth'
        base_url:
          description: >-
            Optional custom base URL for Wafer Serverless API (defaults to
            https://pass.wafer.ai/v1)
          type: string
          pattern: ^\S+$
        zero_data_retention:
          description: >-
            When enabled, sends the Wafer-ZDR: required header on API requests
            for request-scoped zero data retention
          type: boolean
          default: true
        integrations:
          description: >-
            List of integrations that are associated with the Wafer provider
            account
          type: array
          items:
            $ref: '#/components/schemas/WaferIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: WaferProviderAccount
      x-fern-type-name: WaferProviderAccount
    SnowflakeCortexProviderAccount:
      description: Snowflake Cortex Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - account_identifier
        - integrations
      properties:
        type:
          description: +value=provider-account/snowflake-cortex
          type: string
          enum:
            - provider-account/snowflake-cortex
        name:
          description: The name of the Snowflake Cortex provider account
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,60}[a-zA-Z0-9])$
        auth_data:
          $ref: '#/components/schemas/SnowflakeCortexPatTokenAuth'
        account_identifier:
          description: >-
            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.
          type: string
        integrations:
          description: >-
            List of integrations that are associated with the Snowflake Cortex
            provider account
          type: array
          items:
            $ref: '#/components/schemas/SnowflakeCortexIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: SnowflakeCortexProviderAccount
      x-fern-type-name: SnowflakeCortexProviderAccount
    ElevenLabsProviderAccount:
      description: ElevenLabs Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/elevenlabs
          type: string
          enum:
            - provider-account/elevenlabs
        name:
          description: The name of the ElevenLabs provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/ElevenLabsApiKeyAuth'
        base_url:
          description: Optional custom base URL for ElevenLabs API
          type: string
          pattern: ^\S+$
        integrations:
          description: >-
            List of integrations that are associated with the ElevenLabs
            provider account
          type: array
          items:
            $ref: '#/components/schemas/ElevenLabsModel'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: ElevenLabsProviderAccount
      x-fern-type-name: ElevenLabsProviderAccount
    DeepgramProviderAccount:
      description: Deepgram Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/deepgram
          type: string
          enum:
            - provider-account/deepgram
        name:
          description: The name of the Deepgram provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/DeepgramApiKeyAuth'
        base_url:
          description: Optional custom base URL for Deepgram API
          type: string
          pattern: ^\S+$
        integrations:
          description: >-
            List of integrations that are associated with the Deepgram provider
            account
          type: array
          items:
            $ref: '#/components/schemas/DeepgramModel'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: DeepgramProviderAccount
      x-fern-type-name: DeepgramProviderAccount
    CartesiaProviderAccount:
      description: Cartesia Provider Account
      type: object
      required:
        - type
        - name
        - cartesia_version
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/cartesia
          type: string
          enum:
            - provider-account/cartesia
        name:
          description: The name of the Cartesia provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        base_url:
          description: Optional custom base URL for Cartesia API
          type: string
          pattern: ^\S+$
        cartesia_version:
          description: >-
            The Cartesia API version header. Must be set to a supported API
            version.
          type: string
          enum:
            - '2025-04-16'
            - '2024-11-13'
            - '2024-06-10'
          default: '2025-04-16'
        auth_data:
          $ref: '#/components/schemas/CartesiaApiKeyAuth'
        integrations:
          description: >-
            List of integrations that are associated with the Cartesia provider
            account
          type: array
          items:
            $ref: '#/components/schemas/CartesiaModel'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: CartesiaProviderAccount
      x-fern-type-name: CartesiaProviderAccount
    SmallestAiProviderAccount:
      description: Smallest AI Provider Account
      type: object
      required:
        - type
        - name
        - auth_data
        - integrations
      properties:
        type:
          description: +value=provider-account/smallest-ai
          type: string
          enum:
            - provider-account/smallest-ai
        name:
          description: The name of the Smallest AI provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/SmallestAiApiKeyAuth'
        base_url:
          description: Optional custom base URL for Smallest AI API
          type: string
          pattern: ^\S+$
        integrations:
          description: >-
            List of integrations that are associated with the Smallest AI
            provider account
          type: array
          items:
            $ref: '#/components/schemas/SmallestAiModel'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: SmallestAiProviderAccount
      x-fern-type-name: SmallestAiProviderAccount
    AWSClaudePlatformProviderAccount:
      description: AWS Claude Platform
      type: object
      required:
        - type
        - name
        - workspace_id
        - region
      properties:
        type:
          description: +value=provider-account/aws-claude-platform
          type: string
          enum:
            - provider-account/aws-claude-platform
        name:
          description: The name of the AWS Claude Platform provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        workspace_id:
          description: >-
            Your Claude Platform on AWS workspace ID, in the format
            wrkspc_<alphanumeric>.
          type: string
          pattern: ^wrkspc_[A-Za-z0-9]+$
        region:
          $ref: '#/components/schemas/AWSRegion'
        auth_data:
          description: >-
            Authentication data for the AWS account. Supports SigV4 (access key
            or assumed role) and API key authentication.
          type: object
          oneOf:
            - $ref: '#/components/schemas/AwsAccessKeyBasedAuth'
            - $ref: '#/components/schemas/AWSClaudePlatformAssumedRoleBasedAuth'
            - $ref: '#/components/schemas/AWSClaudePlatformApiKeyAuth'
          discriminator:
            propertyName: type
        integrations:
          description: >-
            List of integrations that are associated with the AWS Claude
            Platform provider account
          type: array
          items:
            $ref: '#/components/schemas/AWSClaudePlatformIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: AWSClaudePlatformProviderAccount
      x-fern-type-name: AWSClaudePlatformProviderAccount
    AwsBedrockMantleProviderAccount:
      description: AWS Bedrock Mantle
      type: object
      required:
        - type
        - name
        - region
        - integrations
      properties:
        type:
          description: +value=provider-account/aws-bedrock-mantle
          type: string
          enum:
            - provider-account/aws-bedrock-mantle
        name:
          description: The name of the AWS Bedrock Mantle provider account
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        region:
          $ref: '#/components/schemas/AWSRegion'
        auth_data:
          description: Authentication data for the AWS account
          type: object
          oneOf:
            - $ref: '#/components/schemas/AwsAccessKeyBasedAuth'
            - $ref: '#/components/schemas/AwsBedrockAssumedRoleBasedAuth'
            - $ref: '#/components/schemas/AwsBedrockApiKeyAuth'
          discriminator:
            propertyName: type
        integrations:
          description: >-
            List of integrations that are associated with the AWS Bedrock Mantle
            provider account
          type: array
          items:
            $ref: '#/components/schemas/AwsBedrockMantleIntegrations'
        collaborators:
          description: List of users who have access to this provider account
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
        discount_percent:
          description: Discount % applied to upstream list price for this provider account.
          type: number
          minimum: 0
          maximum: 100
      title: AwsBedrockMantleProviderAccount
      x-fern-type-name: AwsBedrockMantleProviderAccount
    VirtualModelProviderAccount:
      description: Virtual Model Provider Group
      type: object
      required:
        - name
        - type
        - integrations
      properties:
        name:
          description: The name of the Virtual Model Provider Group
          type: string
          pattern: ^[a-z][a-z0-9\-_]{1,62}[a-z0-9]$
        type:
          description: +value=provider-account/virtual-model
          type: string
          enum:
            - provider-account/virtual-model
        integrations:
          description: List of virtual models in this group
          type: array
          items:
            $ref: '#/components/schemas/VirtualModel'
        collaborators:
          description: List of users who have access to this Virtual Model Provider Group
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: VirtualModelProviderAccount
      x-fern-type-name: VirtualModelProviderAccount
    CustomEndpointProviderAccount:
      description: Custom Endpoint
      type: object
      required:
        - type
        - name
        - integrations
      properties:
        type:
          description: +value=provider-account/custom-endpoint
          type: string
          enum:
            - provider-account/custom-endpoint
        name:
          description: The name of the custom endpoint provider account.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        endpoint_type:
          description: >-
            The type of service behind this endpoint (used for tracking
            purposes)
          type: string
          enum:
            - azure-speech-service
            - other
        routing_type:
          description: >-
            How requests are routed across the endpoints in this account. When
            unset, each endpoint is reachable individually at
            /proxy-api/<account-name>/<endpoint-name>. Set to "weight" or
            "priority" to load balance across the endpoints, reachable at
            /proxy-api/<account-name>/<slug>/<upstream-path>.
          type: string
          enum:
            - weight
            - priority
        slug:
          description: >-
            A unique identifier used to address the load-balanced endpoints of
            this account. When routing_type is "weight" or "priority", the load
            balancer is reachable at
            /proxy-api/<account-name>/<slug>/<upstream-path>, alongside the
            per-endpoint URLs.
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,60}[a-zA-Z0-9])$
        auth_data:
          $ref: '#/components/schemas/CustomHeaderAuth'
        integrations:
          description: List of endpoint integrations associated with this provider account.
          type: array
          items:
            $ref: '#/components/schemas/CustomEndpointIntegrations'
        collaborators:
          description: Collaborators
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: CustomEndpointProviderAccount
      x-fern-type-name: CustomEndpointProviderAccount
    MCPServerIntegrations:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/MCPServerIntegration'
        - $ref: '#/components/schemas/VirtualMCPServerIntegration'
      discriminator:
        propertyName: type
      title: MCPServerIntegrations
      x-fern-type-name: MCPServerIntegrations
    GuardrailConfigIntegrations:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/OpenAIModerationsGuardrailConfig'
        - $ref: '#/components/schemas/AWSBedrockGuardrailConfig'
        - $ref: '#/components/schemas/CustomGuardrailConfig'
        - $ref: '#/components/schemas/AzurePIIGuardrailConfig'
        - $ref: '#/components/schemas/AzureContentSafetyGuardrailConfig'
        - $ref: '#/components/schemas/AzurePromptShieldGuardrailConfig'
        - $ref: '#/components/schemas/EnkryptAIGuardrailConfig'
        - $ref: '#/components/schemas/PaloAltoPrismaAIRSGuardrailConfig'
        - $ref: '#/components/schemas/FiddlerGuardrailConfig'
        - $ref: '#/components/schemas/CrowdStrikeAIDRGuardrailConfig'
        - $ref: '#/components/schemas/PatronusGuardrailConfig'
        - $ref: '#/components/schemas/SecretDetectionGuardrailConfig'
        - $ref: '#/components/schemas/CodeSafetyLinterGuardrailConfig'
        - $ref: '#/components/schemas/SQLSanitizerGuardrailConfig'
        - $ref: '#/components/schemas/RegexGuardrailConfig'
        - $ref: '#/components/schemas/TfyContentModerationGuardrailConfig'
        - $ref: '#/components/schemas/TfyPIIGuardrailConfig'
        - $ref: '#/components/schemas/TfyPromptInjectionGuardrailConfig'
        - $ref: '#/components/schemas/TfyMetadataGuardrailConfig'
        - $ref: '#/components/schemas/CedarGuardrailConfig'
        - $ref: '#/components/schemas/OPAGuardrailConfig'
        - $ref: '#/components/schemas/GoogleModelArmorGuardrailConfig'
        - $ref: '#/components/schemas/GraySwanCygnalGuardrailConfig'
        - $ref: '#/components/schemas/AktoGuardrailConfig'
        - $ref: '#/components/schemas/TrojAIGuardrailConfig'
      discriminator:
        propertyName: type
      title: GuardrailConfigIntegrations
      x-fern-type-name: GuardrailConfigIntegrations
    GitSource:
      description: >-
        Describes that we are using code stored in a git repository to build our
        image
      type: object
      required:
        - type
        - repo_url
        - ref
      properties:
        type:
          description: +value=git
          type: string
          enum:
            - git
        repo_url:
          description: The repository URL.
          type: string
          pattern: ^(https?://)\S+$
        ref:
          description: The commit SHA.
          type: string
          pattern: ^\S+$
        branch_name:
          description: Selecting branch will select latest commit SHA of the branch.
          type: string
          pattern: ^\S+$
      title: GitSource
      x-fern-type-name: GitSource
    DockerFileBuild:
      description: Describes that we are using a dockerfile to build our image
      type: object
      required:
        - type
        - dockerfile_path
        - build_context_path
      properties:
        type:
          description: +value=dockerfile
          type: string
          enum:
            - dockerfile
        dockerfile_path:
          description: The file path of the Dockerfile relative to project root path.
          type: string
          default: ./Dockerfile
        build_context_path:
          description: Build context path for the Dockerfile relative to project root path.
          type: string
          default: ./
        command:
          description: >-
            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}}`
          oneOf:
            - type: string
            - type: array
              items:
                type: string
        build_args:
          description: Build arguments to pass to docker build
          type: object
          additionalProperties:
            type: string
        build_secrets:
          description: >-
            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
          type: array
          items:
            $ref: '#/components/schemas/BuildSecret'
      title: DockerFileBuild
      x-fern-type-name: DockerFileBuild
    PythonBuild:
      description: >-
        Describes that we are using python to build a container image with a
        specific python version and pip packages installed.
      type: object
      required:
        - type
        - build_context_path
        - command
      properties:
        type:
          description: +value=tfy-python-buildpack
          type: string
          enum:
            - tfy-python-buildpack
        python_version:
          description: >-
            Python version to run your application. Should be one of the tags
            listed on [Official Python Docker
            Page](https://hub.docker.com/_/python)
          type: string
          pattern: ^\d+(\.\d+){1,2}([\-\.a-z0-9]+)?$
        build_context_path:
          description: Build path relative to project root path.
          type: string
          default: ./
        requirements_path:
          description: |-
            Path to `requirements.txt` relative to
            `Path to build context`
          type: string
        pip_packages:
          description: |-
            Define pip package requirements.
            In Python/YAML E.g. ["fastapi>=0.90,<1.0", "uvicorn"]
          type: array
          items:
            type: string
        python_dependencies:
          description: Python dependencies to install
          type: object
          oneOf:
            - $ref: '#/components/schemas/Pip'
            - $ref: '#/components/schemas/UV'
            - $ref: '#/components/schemas/Poetry'
          discriminator:
            propertyName: type
        apt_packages:
          description: |-
            Debian packages to install via `apt get`.
            In Python/YAML E.g. ["git", "ffmpeg", "htop"]
          type: array
          items:
            type: string
        command:
          description: >-
            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}}`
          oneOf:
            - type: string
            - type: array
              items:
                type: string
        cuda_version:
          description: >-
            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 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
          type: string
          pattern: >-
            ^((\d+\.\d+(\.\d+)?-cudnn(\d+)?-(runtime|devel)-ubuntu\d+\.\d+)|11\.0-cudnn8|11\.1-cudnn8|11\.2-cudnn8|11\.3-cudnn8|11\.4-cudnn8|11\.5-cudnn8|11\.6-cudnn8|11\.7-cudnn8|11\.8-cudnn8|12\.0-cudnn8|12\.1-cudnn8|12\.2-cudnn8|12\.3-cudnn9|12\.4-cudnn9|12\.5-cudnn9|12\.6-cudnn9|12\.8-cudnn9|12\.9-cudnn9)$
      title: PythonBuild
      x-fern-type-name: PythonBuild
    NodeSelector:
      description: >-
        Constraints to select a Node - Specific GPU / Instance Families,
        On-Demand/Spot.
      type: object
      required:
        - type
      properties:
        type:
          description: +value=node_selector
          type: string
          enum:
            - node_selector
        instance_families:
          description: >-
            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.
          type: array
          items:
            type: string
        capacity_type:
          description: >-
            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.
          type: string
          enum:
            - spot_fallback_on_demand
            - spot
            - on_demand
      title: NodeSelector
      x-fern-type-name: NodeSelector
    NodepoolSelector:
      description: Specify one or more nodepools to run your application on.
      type: object
      required:
        - type
      properties:
        type:
          description: +value=nodepool_selector
          type: string
          enum:
            - nodepool_selector
        nodepools:
          description: >-
            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
          type: array
          items:
            type: string
      title: NodepoolSelector
      x-fern-type-name: NodepoolSelector
    NvidiaGPU:
      type: object
      required:
        - type
        - count
      properties:
        type:
          description: +value=nvidia_gpu
          type: string
          enum:
            - nvidia_gpu
        name:
          description: >-
            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
          type: string
        count:
          description: >-
            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.
          type: integer
          minimum: 1
          maximum: 16
      title: NvidiaGPU
      x-fern-type-name: NvidiaGPU
    AWSInferentia:
      type: object
      required:
        - type
        - count
      properties:
        type:
          description: +value=aws_inferentia
          type: string
          enum:
            - aws_inferentia
        name:
          description: >-
            Name of the AWS Inferentia Accccelerator. One of [INF1, INF2].

            This field is required for Node Selector and can be ignored in
            Nodepool Selector.
          type: string
        count:
          description: Count of Inferentia accelerator chips to provide to the application
          type: integer
          minimum: 1
          maximum: 16
      title: AWSInferentia
      x-fern-type-name: AWSInferentia
    NvidiaMIGGPU:
      type: object
      required:
        - type
        - profile
      properties:
        type:
          description: +value=nvidia_mig_gpu
          type: string
          enum:
            - nvidia_mig_gpu
        name:
          description: >-
            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
          type: string
        profile:
          description: >-
            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
            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]
          type: string
          enum:
            - 1g.6gb
            - 2g.12gb
            - 1g.5gb
            - 1g.10gb
            - 2g.10gb
            - 3g.20gb
            - 4g.20gb
            - 1g.20gb
            - 2g.20gb
            - 3g.40gb
            - 4g.40gb
            - 1g.12gb
            - 1g.24gb
            - 2g.24gb
            - 3g.47gb
            - 4g.47gb
            - 3g.48gb
            - 4g.48gb
            - 1g.18gb
            - 1g.35gb
            - 2g.35gb
            - 3g.71gb
            - 4g.71gb
            - 1g.23gb
            - 1g.45gb
            - 2g.45gb
            - 3g.90gb
            - 4g.90gb
            - 4g.24gb
            - 7g.40gb
            - 7g.80gb
            - 7g.94gb
            - 7g.96gb
            - 7g.180gb
      title: NvidiaMIGGPU
      x-fern-type-name: NvidiaMIGGPU
    NvidiaTimeslicingGPU:
      type: object
      required:
        - type
        - gpu_memory
      properties:
        type:
          description: +value=nvidia_timeslicing_gpu
          type: string
          enum:
            - nvidia_timeslicing_gpu
        name:
          description: >-
            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
          type: string
        gpu_memory:
          description: >-
            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
          type: integer
          minimum: 1
          maximum: 400000
      title: NvidiaTimeslicingGPU
      x-fern-type-name: NvidiaTimeslicingGPU
    GcpTPU:
      type: object
      required:
        - type
        - name
        - topology
      properties:
        type:
          description: +value=gcp_tpu
          type: string
          enum:
            - gcp_tpu
        name:
          description: |-
            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)
          type: string
          pattern: ^tpu-[a-z\d\-]+$
        topology:
          description: >-
            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`
          type: string
          pattern: ^\d+x\d+(x\d+)?$
      title: GcpTPU
      x-fern-type-name: GcpTPU
    Endpoint:
      type: object
      required:
        - host
      properties:
        host:
          description: Host e.g. ai.example.com, app.truefoundry.com
          type: string
          pattern: >-
            ^((([a-zA-Z0-9\-]{1,63}\.)([a-zA-Z0-9\-]{1,63}\.)*([A-Za-z]{1,63}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))$
        path:
          description: Path e.g. /v1/api/ml/, /v2/docs/
          type: string
          pattern: ^(/([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-_\.]*[a-zA-Z0-9]))*/$
      title: Endpoint
      x-fern-type-name: Endpoint
    FlyteTaskTemplate:
      type: object
      oneOf:
        - $ref: '#/components/schemas/TruefoundryFlyteTaskTemplate'
        - $ref: '#/components/schemas/NativeSnowflakeFlyteTaskTemplate'
      title: FlyteTaskTemplate
      x-fern-type-name: FlyteTaskTemplate
    FlyteWorkflowTemplate:
      type: object
      required:
        - id
      properties:
        id:
          $ref: '#/components/schemas/FlyteWorkflowID'
      title: FlyteWorkflowTemplate
      x-fern-type-name: FlyteWorkflowTemplate
    FlyteLaunchPlanID:
      type: object
      required:
        - resourceType
        - name
      properties:
        resourceType:
          type: string
          enum:
            - LAUNCH_PLAN
        name:
          type: string
      title: FlyteLaunchPlanID
      x-fern-type-name: FlyteLaunchPlanID
    FlyteLaunchPlanSpec:
      type: object
      required:
        - workflowId
      properties:
        workflowId:
          $ref: '#/components/schemas/FlyteWorkflowID'
      title: FlyteLaunchPlanSpec
      x-fern-type-name: FlyteLaunchPlanSpec
    SQSQueueMetricConfig:
      type: object
      required:
        - type
        - queue_length
      properties:
        type:
          description: +value=sqs
          type: string
          enum:
            - sqs
        queue_length:
          description: >-
            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.
          type: integer
          minimum: 1
        auth:
          description: Receive permissions on the SQS Queue
          type: object
          oneOf:
            - $ref: '#/components/schemas/AwsSqsAccessKeyBasedAuth'
            - $ref: '#/components/schemas/AwsSqsAssumedRoleBasedAuth'
          discriminator:
            propertyName: type
      title: SQSQueueMetricConfig
      x-fern-type-name: SQSQueueMetricConfig
    NATSMetricConfig:
      type: object
      required:
        - type
        - lag_threshold
      properties:
        type:
          description: +value=nats
          type: string
          enum:
            - nats
        lag_threshold:
          description: >-
            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.
          type: integer
          minimum: 1
      title: NATSMetricConfig
      x-fern-type-name: NATSMetricConfig
    KafkaMetricConfig:
      type: object
      required:
        - type
        - lag_threshold
      properties:
        type:
          description: +value=kafka
          type: string
          enum:
            - kafka
        lag_threshold:
          description: >-
            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.
          type: integer
          minimum: 1
      title: KafkaMetricConfig
      x-fern-type-name: KafkaMetricConfig
    AMQPMetricConfig:
      type: object
      required:
        - type
        - queue_length
      properties:
        type:
          description: +value=amqp
          type: string
          enum:
            - amqp
        queue_length:
          description: >-
            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.
          type: integer
          minimum: 1
      title: AMQPMetricConfig
      x-fern-type-name: AMQPMetricConfig
    SQSInputConfig:
      description: Describes the configuration for the input SQS worker
      type: object
      required:
        - type
        - queue_url
        - region_name
        - visibility_timeout
        - wait_time_seconds
      properties:
        type:
          description: +value=sqs
          type: string
          enum:
            - sqs
        queue_url:
          description: AWS SQS Queue URL of Subscriber
          type: string
        region_name:
          description: AWS Region Name
          type: string
        visibility_timeout:
          description: >-
            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)
          type: integer
          minimum: 1
          maximum: 43200
        wait_time_seconds:
          description: >-
            Wait timeout for long polling. For more information, see
            [here](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html)
          type: integer
          minimum: 1
          maximum: 20
          default: 19
        auth:
          $ref: '#/components/schemas/AWSAccessKeyAuth'
      title: SQSInputConfig
      x-fern-type-name: SQSInputConfig
    NATSInputConfig:
      description: Describes the configuration for the input NATS worker
      type: object
      required:
        - type
        - nats_url
        - stream_name
        - root_subject
        - consumer_name
        - wait_time_seconds
      properties:
        type:
          description: +value=nats
          type: string
          enum:
            - nats
        nats_url:
          description: Input NATS URL
          type: string
        stream_name:
          description: Name of the NATS stream
          type: string
        root_subject:
          description: Root subject of input NATS
          type: string
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9\-.]+[a-zA-Z0-9]$
        consumer_name:
          description: Consumer name of input NATS
          type: string
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9\-_]+[a-zA-Z0-9]$
        wait_time_seconds:
          description: Wait timeout for long polling.
          type: integer
          minimum: 1
          maximum: 20
          default: 19
        nats_metrics_url:
          description: >-
            URL for the NATS metrics endpoint. It is compulsory if you want to
            use NATS autoscaling.
          type: string
          pattern: ^(http(s?)://).*$
        auth:
          $ref: '#/components/schemas/NATSUserPasswordAuth'
      title: NATSInputConfig
      x-fern-type-name: NATSInputConfig
    KafkaInputConfig:
      description: Describes the configuration for the input Kafka worker
      type: object
      required:
        - type
        - bootstrap_servers
        - topic_name
        - consumer_group
        - tls
      properties:
        type:
          description: +value=kafka
          type: string
          enum:
            - kafka
        bootstrap_servers:
          description: >-
            'Kafka Bootstrap servers - Comma separated list of Kafka brokers
            "hostname:port" to connect to for bootstrap'
          type: string
        topic_name:
          description: Kafka topic to subscribe to
          type: string
        consumer_group:
          description: >-
            The name of the consumer group to join for dynamic partition
            assignment
          type: string
        tls:
          description: TLS configuration for SASL authentication
          type: boolean
          default: true
        wait_time_seconds:
          description: Wait timeout for long polling.
          type: integer
          minimum: 1
          maximum: 300
          default: 10
        auth:
          $ref: '#/components/schemas/KafkaSASLAuth'
      title: KafkaInputConfig
      x-fern-type-name: KafkaInputConfig
    AMQPInputConfig:
      description: Describes the configuration for the input AMQP worker
      type: object
      required:
        - type
        - url
        - queue_name
        - wait_time_seconds
      properties:
        type:
          description: +value=amqp
          type: string
          enum:
            - amqp
        url:
          description: AMQP Queue URL of Subscriber
          type: string
          pattern: >-
            ^(amqp|amqps?)://(?:[^:@]+(?::[^:@]+)?@)?([^/?]+)(?:/([^?]+))?/?([^?]+)?(?:\?(.*))?$
        queue_name:
          description: AMQP Queue Name
          type: string
        wait_time_seconds:
          description: Wait timeout for long polling.
          type: integer
          minimum: 1
          default: 5
      title: AMQPInputConfig
      x-fern-type-name: AMQPInputConfig
    SQSOutputConfig:
      description: Describes the configuration for the output SQS worker
      type: object
      required:
        - type
        - queue_url
        - region_name
      properties:
        type:
          description: +value=sqs
          type: string
          enum:
            - sqs
        queue_url:
          description: AWS SQS Queue URL of Publisher
          type: string
        region_name:
          description: AWS Region Name
          type: string
        auth:
          $ref: '#/components/schemas/AWSAccessKeyAuth'
      title: SQSOutputConfig
      x-fern-type-name: SQSOutputConfig
    NATSOutputConfig:
      description: Describes the configuration for the output NATS worker
      type: object
      required:
        - type
        - nats_url
        - root_subject
      properties:
        type:
          description: +value=nats
          type: string
          enum:
            - nats
        nats_url:
          description: Output NATS URL
          type: string
        root_subject:
          description: Root subject of output NATS
          type: string
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9\-.]+[a-zA-Z0-9]$
        auth:
          $ref: '#/components/schemas/NATSUserPasswordAuth'
      title: NATSOutputConfig
      x-fern-type-name: NATSOutputConfig
    CoreNATSOutputConfig:
      description: Describes the configuration for the output Core NATS worker
      type: object
      required:
        - type
        - nats_url
        - root_subject
      properties:
        type:
          description: +value=core-nats
          type: string
          enum:
            - core-nats
        nats_url:
          description: Output NATS URL
          type: string
        root_subject:
          description: Root subject of output NATS
          type: string
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9\-.]+[a-zA-Z0-9]$
        auth:
          $ref: '#/components/schemas/NATSUserPasswordAuth'
      title: CoreNATSOutputConfig
      x-fern-type-name: CoreNATSOutputConfig
    KafkaOutputConfig:
      description: Describes the configuration for the output Kafka worker
      type: object
      required:
        - type
        - bootstrap_servers
        - topic_name
        - tls
      properties:
        type:
          description: +value=kafka
          type: string
          enum:
            - kafka
        bootstrap_servers:
          description: >-
            'Kafka Bootstrap servers - Comma separated list of Kafka brokers
            "hostname:port" to connect to for bootstrap'
          type: string
        topic_name:
          description: Kafka topic to publish to
          type: string
        tls:
          description: TLS configuration for SASL authentication
          type: boolean
          default: true
        auth:
          $ref: '#/components/schemas/KafkaSASLAuth'
      title: KafkaOutputConfig
      x-fern-type-name: KafkaOutputConfig
    AMQPOutputConfig:
      description: Describes the configuration for the output AMQP worker
      type: object
      required:
        - type
        - url
        - routing_key
      properties:
        type:
          description: +value=amqp
          type: string
          enum:
            - amqp
        url:
          description: AMQP Queue URL of Publisher
          type: string
          pattern: >-
            ^(amqp|amqps?)://(?:[^:@]+(?::[^:@]+)?@)?([^/?]+)(?:/([^?]+))?/?([^?]+)?(?:\?(.*))?$
        routing_key:
          description: AMQP Routing Key to publish to.
          type: string
        exchange_name:
          description: AMQP Exchange Name
          type: string
      title: AMQPOutputConfig
      x-fern-type-name: AMQPOutputConfig
    SparkBuild:
      description: >-
        Describes that we are using python to build a container image with a
        specific python version and pip packages installed.
      type: object
      required:
        - type
        - spark_version
        - build_context_path
      properties:
        type:
          description: +value=tfy-spark-buildpack
          type: string
          enum:
            - tfy-spark-buildpack
        spark_version:
          description: Spark version should match the spark version installed in the image.
          type: string
          default: 3.5.2
        build_context_path:
          description: Build path relative to project root path.
          type: string
          default: ./
        requirements_path:
          description: |-
            Path to `requirements.txt` relative to
            `Path to build context`
          type: string
      title: SparkBuild
      x-fern-type-name: SparkBuild
    SparkExecutorFixedInstances:
      description: Fixed Instances
      type: object
      required:
        - type
        - count
      properties:
        type:
          description: +value=fixed
          type: string
          enum:
            - fixed
        count:
          description: Number of instances to start
          type: integer
          minimum: 0
          maximum: 500
          default: 1
      title: SparkExecutorFixedInstances
      x-fern-type-name: SparkExecutorFixedInstances
    SparkExecutorDynamicScaling:
      description: Dynamic Scaling
      type: object
      required:
        - type
        - min
        - max
      properties:
        type:
          description: +value=dynamic
          type: string
          enum:
            - dynamic
        min:
          description: Minimum number of instances to start / scale down to
          type: integer
          minimum: 0
          maximum: 500
          default: 1
        max:
          description: Maximum number of instances to scale up to
          type: integer
          minimum: 0
          maximum: 500
          default: 1
      title: SparkExecutorDynamicScaling
      x-fern-type-name: SparkExecutorDynamicScaling
    RateLimitRule:
      description: Rate Limit Rule
      type: object
      required:
        - id
        - when
        - limit_to
        - unit
      properties:
        id:
          description: Unique identifier for the rule
          type: string
          pattern: ^[A-Za-z{}][A-Za-z0-9{}._-]{0,60}[A-Za-z0-9{}._]$
        when:
          $ref: '#/components/schemas/RateLimitWhen'
        limit_to:
          description: Maximum number of requests or tokens allowed
          type: integer
        unit:
          $ref: '#/components/schemas/RateLimitUnit'
        rate_limit_applies_per:
          description: >-
            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).
          type: array
          items:
            type: string
      title: RateLimitRule
      x-fern-type-name: RateLimitRule
    LoadBalancingRule:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/WeightBasedLoadBalancingRule'
        - $ref: '#/components/schemas/LatencyBasedLoadBalancingRule'
        - $ref: '#/components/schemas/PriorityBasedLoadBalancingRule'
      discriminator:
        propertyName: type
      title: LoadBalancingRule
      x-fern-type-name: LoadBalancingRule
    GuardrailsRule:
      description: Guardrails Rule
      type: object
      required:
        - id
        - when
        - llm_input_guardrails
        - llm_output_guardrails
        - mcp_tool_pre_invoke_guardrails
        - mcp_tool_post_invoke_guardrails
      properties:
        id:
          description: Unique identifier for the rule
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-]{0,60}[a-zA-Z0-9])$
        when:
          $ref: '#/components/schemas/GuardrailsWhen'
        llm_input_guardrails:
          description: >-
            Guardrail selectors of the guardrails to apply to the input (format:
            groupName/guardrailName)
          type: array
          items:
            type: string
        llm_output_guardrails:
          description: >-
            Guardrail selectors of the guardrails to apply to the output
            (format: groupName/guardrailName)
          type: array
          items:
            type: string
        mcp_tool_pre_invoke_guardrails:
          description: >-
            Guardrail selectors of the guardrails to apply to the MCP tool pre
            invoke (format: groupName/guardrailName)
          type: array
          items:
            type: string
        mcp_tool_post_invoke_guardrails:
          description: >-
            Guardrail selectors of the guardrails to apply to the MCP tool post
            invoke (format: groupName/guardrailName)
          type: array
          items:
            type: string
        custom_error_message:
          description: >-
            Optional message returned to the client when a guardrail in this
            rule blocks a request. Use {{guardrail_message}} to include the
            default guardrail failure message.
          type: string
      title: GuardrailsRule
      x-fern-type-name: GuardrailsRule
    BudgetRule:
      description: Budget Rule
      type: object
      required:
        - id
        - when
        - limit_to
        - unit
      properties:
        id:
          description: Unique identifier for the rule
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-]{0,60}[a-zA-Z0-9])$
        when:
          $ref: '#/components/schemas/BudgetWhen'
        limit_to:
          description: Numeric limit value for the budget
          type: number
        unit:
          $ref: '#/components/schemas/BudgetLimitUnit'
        budget_applies_per:
          description: >-
            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).
          type: array
          items:
            type: string
        alerts:
          $ref: '#/components/schemas/BudgetAlert'
        audit_mode:
          description: >-
            When enabled, requests exceeding the budget are tracked but not
            blocked
          type: boolean
          default: false
      title: BudgetRule
      x-fern-type-name: BudgetRule
    BudgetV2WhenTenantScoped:
      description: Tenant Budget Conditions
      type: object
      properties:
        subjects:
          $ref: '#/components/schemas/BudgetV2SubjectsTenantScoped'
        models:
          $ref: '#/components/schemas/BudgetV2InNotInFilter'
        metadata:
          description: Filter by metadata key-value pairs this budget applies to
          type: object
          additionalProperties:
            $ref: '#/components/schemas/BudgetV2InNotInFilter'
      title: BudgetV2WhenTenantScoped
      x-fern-type-name: BudgetV2WhenTenantScoped
    BudgetV2Limits:
      description: Budget Limits
      type: object
      properties:
        cost_per_day:
          description: Maximum daily cost in USD
          type: number
        cost_per_week:
          description: Maximum weekly cost in USD
          type: number
        cost_per_month:
          description: Maximum monthly cost in USD
          type: number
        cost_per_quarter:
          description: Maximum quarterly cost in USD
          type: number
      title: BudgetV2Limits
      x-fern-type-name: BudgetV2Limits
    BudgetV2AppliesTo:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/BudgetV2AppliesToAggregate'
        - $ref: '#/components/schemas/BudgetV2AppliesToPerUser'
        - $ref: '#/components/schemas/BudgetV2AppliesToPerModel'
        - $ref: '#/components/schemas/BudgetV2AppliesToPerVirtualAccount'
        - $ref: '#/components/schemas/BudgetV2AppliesToMetadata'
      discriminator:
        propertyName: type
      title: BudgetV2AppliesTo
      x-fern-type-name: BudgetV2AppliesTo
    BudgetV2Alert:
      description: Budget Alert
      type: object
      required:
        - thresholds
        - send_to
        - notification_target
      properties:
        thresholds:
          description: >-
            List of usage percentages (0-100) at which alerts should be
            triggered. Default thresholds are [75, 90, 95, 100].
          type: array
          items:
            type: number
            minimum: 0
            maximum: 100
          default:
            - 75
            - 90
            - 95
            - 100
        send_to:
          description: >-
            Whom to notify when an alert fires. `shared` sends to the configured
            notification targets only. `breaching-user` additionally notifies
            the user whose usage caused the breach.
          type: string
          enum:
            - shared
            - breaching-user
          default: shared
        notification_target:
          description: Select where to send budget alert notifications
          type: array
          items:
            $ref: '#/components/schemas/NotificationTarget'
      title: BudgetV2Alert
      x-fern-type-name: BudgetV2Alert
    BudgetV2WhenTeamScoped:
      description: Team Budget Conditions
      type: object
      properties:
        subjects:
          $ref: '#/components/schemas/BudgetV2SubjectsTeamScoped'
        models:
          $ref: '#/components/schemas/BudgetV2InNotInFilter'
        metadata:
          description: Filter by metadata key-value pairs this budget applies to
          type: object
          additionalProperties:
            $ref: '#/components/schemas/BudgetV2InNotInFilter'
      title: BudgetV2WhenTeamScoped
      x-fern-type-name: BudgetV2WhenTeamScoped
    OTELTracesExporterHttpConfig:
      description: HTTP Configuration
      type: object
      properties:
        type:
          description: Configuration type
          type: string
          enum:
            - http
      allOf:
        - $ref: '#/components/schemas/OTELExporterHttpConfigBase'
        - $ref: '#/components/schemas/OTELTracesExporterCommonConfig'
      required:
        - type
      title: OTELTracesExporterHttpConfig
      x-fern-type-name: OTELTracesExporterHttpConfig
    OTELTracesExporterGrpcConfig:
      description: gRPC Configuration
      type: object
      properties:
        type:
          description: Configuration type
          type: string
          enum:
            - grpc
      allOf:
        - $ref: '#/components/schemas/OTELExporterGrpcConfigBase'
        - $ref: '#/components/schemas/OTELTracesExporterCommonConfig'
      required:
        - type
      title: OTELTracesExporterGrpcConfig
      x-fern-type-name: OTELTracesExporterGrpcConfig
    OTELMetricsExporterHttpConfig:
      description: HTTP Configuration
      type: object
      properties:
        type:
          description: Configuration type
          type: string
          enum:
            - http
      allOf:
        - $ref: '#/components/schemas/OTELExporterHttpConfigBase'
      required:
        - type
      title: OTELMetricsExporterHttpConfig
      x-fern-type-name: OTELMetricsExporterHttpConfig
    OTELMetricsExporterGrpcConfig:
      description: gRPC Configuration
      type: object
      properties:
        type:
          description: Configuration type
          type: string
          enum:
            - grpc
      allOf:
        - $ref: '#/components/schemas/OTELExporterGrpcConfigBase'
      required:
        - type
      title: OTELMetricsExporterGrpcConfig
      x-fern-type-name: OTELMetricsExporterGrpcConfig
    GatewayMetadataRule:
      description: Metadata Rule
      type: object
      required:
        - id
        - when
        - metadata_override
      properties:
        id:
          description: Unique identifier for the rule
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-]{0,60}[a-zA-Z0-9])$
        when:
          $ref: '#/components/schemas/GatewayMetadataWhen'
        metadata_override:
          description: Metadata key-value pairs to override in the request metadata
          type: object
          additionalProperties:
            type: string
      title: GatewayMetadataRule
      x-fern-type-name: GatewayMetadataRule
    GatewayLoggingRule:
      description: Logging Rule
      type: object
      required:
        - id
        - when
        - tracing_project_fqn
      properties:
        id:
          description: Unique identifier for the rule
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-]{0,60}[a-zA-Z0-9])$
        when:
          $ref: '#/components/schemas/GatewayLoggingWhen'
        tracing_project_fqn:
          description: FQN of the tracing project to send logs to
          type: string
      title: GatewayLoggingRule
      x-fern-type-name: GatewayLoggingRule
    RetryConfig:
      type: object
      required:
        - attempts
      properties:
        attempts:
          description: Number of attempts to retry the request
          type: integer
          minimum: 0
        delay:
          description: Delay between retries in milliseconds
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 100
        on_status_codes:
          description: Status codes to retry on
          type: array
          items:
            type: string
          default:
            - '429'
            - '500'
            - '502'
            - '503'
      title: RetryConfig
      x-fern-type-name: RetryConfig
    LoggingMode:
      description: Logging Mode
      type: object
      oneOf:
        - $ref: '#/components/schemas/LoggingModeAlways'
        - $ref: '#/components/schemas/LoggingModeNever'
        - $ref: '#/components/schemas/LoggingModeHeaderControlled'
      title: LoggingMode
      x-fern-type-name: LoggingMode
    SemanticCacheSettings:
      description: Semantic Cache Settings
      type: object
      required:
        - semantic_cache_embedding_model
      properties:
        semantic_cache_embedding_model:
          description: >-
            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.
          type: string
      title: SemanticCacheSettings
      x-fern-type-name: SemanticCacheSettings
    GuardrailSettings:
      description: Guardrail Settings
      type: object
      properties:
        timeout_ms:
          description: >-
            Maximum time in milliseconds the gateway waits for a guardrail
            provider to respond before timing out the call. Increase this value
            if guardrails are being invoked on large payloads (e.g. big files)
            and frequently exceed the default timeout. Applies to all guardrail
            integrations for this tenant. When unset, the gateway falls back to
            its built-in default (5000ms) or the GUARDRAIL_TIMEOUT_MS
            environment variable on the gateway instance.
          type: integer
          minimum: 1
        enable_parallel_execution:
          description: >-
            Controls whether input guardrails run in parallel with the model
            request or sequentially before it. When enabled (default), input
            guardrails are dispatched concurrently with the model request which
            lowers user-perceived latency but may invoke the model with payloads
            that a guardrail later rejects. Disable to force input guardrails to
            fully complete before the model is called, ensuring no wasted model
            invocations at the cost of additional latency. This sets the
            tenant-wide default and can still be overridden per-request via the
            x-tfy-guardrails header.
          type: boolean
      title: GuardrailSettings
      x-fern-type-name: GuardrailSettings
    DataAccessRule:
      description: Select the scope for the rule
      type: object
      oneOf:
        - $ref: '#/components/schemas/OwnDataAccessRule'
        - $ref: '#/components/schemas/TeamDataAccessRule'
        - $ref: '#/components/schemas/AllDataAccessRule'
      discriminator:
        propertyName: scope
      title: DataAccessRule
      x-fern-type-name: DataAccessRule
    GatewayDataRoutingConfigDestination:
      description: Destination for data routing based on conditions.
      type: object
      properties:
        name:
          description: Name for the destination
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-]{0,60}[a-zA-Z0-9])$
        enabled:
          description: Whether this destination is enabled
          type: boolean
          default: true
        description:
          description: Description of the destination
          type: string
          minLength: 1
        when:
          description: Conditions that must be met to use this destination
          type: array
          items:
            $ref: '#/components/schemas/GatewayDataRoutingConfigDestinationCondition'
      allOf:
        - $ref: '#/components/schemas/GatewayDataRoutingConfigDestinationStorage'
      required:
        - name
        - enabled
        - when
      title: GatewayDataRoutingConfigDestination
      x-fern-type-name: GatewayDataRoutingConfigDestination
    GatewayDataRoutingConfigDestinationStorage:
      type: object
      required:
        - storage
      properties:
        storage:
          description: Storage configuration for traces and spans
          type: object
          default:
            type: controlplane-managed
          oneOf:
            - $ref: >-
                #/components/schemas/GatewayDataRoutingConfigDestinationControlPlaneManagedStorage
            - $ref: >-
                #/components/schemas/GatewayDataRoutingConfigDestinationCustomerManagedStorage
          discriminator:
            propertyName: type
        traces_retention_period_days:
          description: >-
            Number of days to retain traces (this does not affect metrics
            storage)
          type: integer
          minimum: 7
      title: GatewayDataRoutingConfigDestinationStorage
      x-fern-type-name: GatewayDataRoutingConfigDestinationStorage
    Email:
      description: Email
      type: object
      required:
        - type
        - notification_channel
        - to_emails
      properties:
        type:
          description: +value=email
          type: string
          enum:
            - email
        notification_channel:
          description: Specify the notification channel to send alerts to
          type: string
          minLength: 1
        to_emails:
          description: >-
            List of recipients' email addresses if the notification channel is
            Email.
          type: array
          items:
            type: string
            minLength: 1
      title: Email
      x-fern-type-name: Email
    SlackWebhook:
      description: Slack Webhook
      type: object
      required:
        - type
        - notification_channel
      properties:
        type:
          description: +value=slack-webhook
          type: string
          enum:
            - slack-webhook
        notification_channel:
          description: Specify the notification channel to send alerts to
          type: string
          minLength: 1
      title: SlackWebhook
      x-fern-type-name: SlackWebhook
    SlackBot:
      type: object
      required:
        - type
        - notification_channel
        - channels
      properties:
        type:
          description: +value=slack-bot
          type: string
          enum:
            - slack-bot
        notification_channel:
          description: Specify the notification channel to send alerts to
          type: string
          minLength: 1
        channels:
          description: List of channels to send messages to.
          type: array
          items:
            type: string
            pattern: ^#[a-z0-9\-_]{2,80}$
      title: SlackBot
      x-fern-type-name: SlackBot
    PagerDuty:
      type: object
      required:
        - type
        - notification_channel
      properties:
        type:
          description: +value=pagerduty
          type: string
          enum:
            - pagerduty
        notification_channel:
          description: Specify the notification channel to send alerts to
          type: string
          minLength: 1
      title: PagerDuty
      x-fern-type-name: PagerDuty
    MSTeamsWebhook:
      description: MS Teams Webhook
      type: object
      required:
        - type
        - notification_channel
      properties:
        type:
          description: +value=ms-teams-webhook
          type: string
          enum:
            - ms-teams-webhook
        notification_channel:
          description: Specify the notification channel to send alerts to
          type: string
          minLength: 1
      title: MSTeamsWebhook
      x-fern-type-name: MSTeamsWebhook
    AlertSeverity:
      type: string
      enum:
        - warning
        - critical
      title: AlertSeverity
      x-fern-type-name: AlertSeverity
    TrueFoundryAgentModel:
      type: object
      required:
        - name
      properties:
        name:
          description: Model name, e.g. openai-main/gpt-4o
          type: string
          minLength: 1
        params:
          $ref: '#/components/schemas/TrueFoundryAgentModelParams'
      title: TrueFoundryAgentModel
      x-fern-type-name: TrueFoundryAgentModel
    TrueFoundryAgentSkill:
      type: object
      required:
        - fqn
        - preload
      properties:
        fqn:
          description: Fully qualified name of the agent skill
          type: string
          minLength: 1
          pattern: ^agent-skill:[^/]+/[^/]+/[^/:]+:[0-9]+$
        preload:
          description: If true, the SKILL.md content is injected into the agent context.
          type: boolean
          default: false
      title: TrueFoundryAgentSkill
      x-fern-type-name: TrueFoundryAgentSkill
    TrueFoundryAgentMcpServer:
      description: >-
        A tool selector is either a literal tool name or one of the special
        tags:

        @all, @read-only, @write, @destructive.
      type: object
      required:
        - name
      properties:
        name:
          description: MCP server name
          type: string
        preload:
          description: >-
            When true, this server's tools are preloaded into context. When
            false (default), tools are discovered lazily and only preload_tools
            stay eager.
          type: boolean
          default: false
        enable_tools:
          description: >-
            Tools to enable. Supports tags @all, @read-only, @write,
            @destructive or literal tool names.
          type: array
          items:
            type: string
          default:
            - '@all'
        disable_tools:
          description: Tools to disable (subtracted from enable_tools).
          type: array
          items:
            type: string
        preload_tools:
          description: When preload is false, tools to still preload into context.
          type: array
          items:
            type: string
        require_approval_for_tools:
          description: >-
            Tools that require human approval before execution. Supports tags
            and literal tool names.
          type: array
          items:
            type: string
          default:
            - '@write'
            - '@destructive'
      title: TrueFoundryAgentMcpServer
      x-fern-type-name: TrueFoundryAgentMcpServer
    TrueFoundryAgentUserMessage:
      type: object
      required:
        - role
        - content
      properties:
        role:
          description: Role of the message sender.
          type: string
          enum:
            - user
        content:
          description: >-
            Content of the user message. Supports template variables like
            {{variable_name}}.
          type: string
          minLength: 1
      title: TrueFoundryAgentUserMessage
      x-fern-type-name: TrueFoundryAgentUserMessage
    TrueFoundryAgentVariable:
      type: object
      properties:
        default_value:
          description: Default value for the variable
          type: string
        description:
          description: Description of the variable
          type: string
      title: TrueFoundryAgentVariable
      x-fern-type-name: TrueFoundryAgentVariable
    SampleAgentInput:
      type: object
      properties:
        text:
          description: Input for the agent
          type: string
        variables:
          description: Variable inputs for Prompt Variables defined in the Prompt
          type: object
          additionalProperties:
            type: string
      title: SampleAgentInput
      x-fern-type-name: SampleAgentInput
    TrueFoundryAgentResponseFormat:
      type: object
      oneOf:
        - $ref: '#/components/schemas/ResponseFormatText'
        - $ref: '#/components/schemas/ResponseFormatJSONSchema'
        - $ref: '#/components/schemas/ResponseFormatJSONObject'
      title: TrueFoundryAgentResponseFormat
      x-fern-type-name: TrueFoundryAgentResponseFormat
    TrueFoundryAgentConfig:
      type: object
      properties:
        iteration_limit:
          description: Maximum number of iterations for the agent
          type: integer
          minimum: 1
          maximum: 1024
          default: 100
        sandbox:
          $ref: '#/components/schemas/TrueFoundryAgentSandboxConfig'
        dynamic_sub_agents:
          $ref: '#/components/schemas/TrueFoundryAgentDynamicSubAgentsConfig'
        context_management:
          $ref: '#/components/schemas/TrueFoundryAgentContextManagementConfig'
        generative_ui:
          $ref: '#/components/schemas/TrueFoundryAgentGenerativeUIConfig'
        ask_user_questions:
          $ref: '#/components/schemas/TrueFoundryAgentAskUserQuestionsConfig'
      title: TrueFoundryAgentConfig
      x-fern-type-name: TrueFoundryAgentConfig
    SelfHostedAgent:
      description: Self Hosted
      type: object
      properties:
        type:
          description: Type of the manifest
          type: string
          enum:
            - remote-agent/self-hosted
        url:
          description: The URL of the server
          type: string
          pattern: ^https?:\/\/[^\s]+$
        auth_data:
          $ref: '#/components/schemas/CustomAgentServerAuth'
        framework:
          $ref: '#/components/schemas/AgentFramework'
      allOf:
        - $ref: '#/components/schemas/BaseRemoteAgent'
      required:
        - type
        - url
        - framework
      title: SelfHostedAgent
      x-fern-type-name: SelfHostedAgent
    AgentSource:
      description: |-
        +discriminator=type
        +sort=300
      type: object
      oneOf:
        - $ref: '#/components/schemas/PromptSource'
        - $ref: '#/components/schemas/HostedA2AAgent'
      discriminator:
        propertyName: type
      title: AgentSource
      x-fern-type-name: AgentSource
    TracingProjectControlPlaneManagedStorage:
      description: Managed Storage in Control-Plane.
      type: object
      required:
        - type
      properties:
        type:
          description: Type of storage configuration
          type: string
          enum:
            - controlplane-managed
      title: TracingProjectControlPlaneManagedStorage
      x-fern-type-name: TracingProjectControlPlaneManagedStorage
    TracingProjectCustomerManagedStorage:
      description: >-
        Bring your own storage. Please note that this cannot be changed once
        set.
      type: object
      required:
        - type
        - storage_integration_fqn
      properties:
        type:
          description: Type of storage configuration
          type: string
          enum:
            - customer-managed
        storage_integration_fqn:
          description: >-
            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.
          type: string
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9._:-]*[a-zA-Z0-9]$
      title: TracingProjectCustomerManagedStorage
      x-fern-type-name: TracingProjectCustomerManagedStorage
    CustomTLSSettings:
      description: >-
        Configure TLS settings for secure connections with custom CA
        certificates.
      type: object
      required:
        - reject_unauthorized
      properties:
        reject_unauthorized:
          description: >-
            When set to true, it will reject any connection which is not
            authorized with the list of supplied CAs.
          type: boolean
          default: true
        ca_cert:
          description: Add custom CA certificates to use for TLS verification.
          type: string
      title: CustomTLSSettings
      x-fern-type-name: CustomTLSSettings
    MCPToolSetting:
      description: MCP Tool Setting
      type: object
      required:
        - name
      properties:
        name:
          description: The unique name of the tool.
          type: string
          pattern: ^[A-Za-z0-9_.-]{1,128}$
        description:
          description: >-
            Describe what this tool does. This helps AI models understand when
            to use it.
          type: string
          minLength: 1
          maxLength: 20000
        disabled:
          description: Allows to disable the tool.
          type: boolean
        annotations:
          $ref: '#/components/schemas/MCPToolAnnotations'
      title: MCPToolSetting
      x-fern-type-name: MCPToolSetting
    MCPServerAuth:
      type: object
      oneOf:
        - $ref: '#/components/schemas/MCPServerHeaderAuth'
        - $ref: '#/components/schemas/MCPServerOAuth2'
        - $ref: '#/components/schemas/MCPServerPassthrough'
      title: MCPServerAuth
      x-fern-type-name: MCPServerAuth
    McpServerSource:
      description: MCP Server Source
      type: object
      required:
        - name
      properties:
        name:
          description: Name of the MCP server
          type: string
        enabled_tools:
          description: List of tools to enable from this source server.
          type: array
          items:
            type: string
        auth_data:
          $ref: '#/components/schemas/MCPServerHeaderOverrideAuth'
      title: McpServerSource
      x-fern-type-name: McpServerSource
    OpenAPISpecSource:
      type: object
      oneOf:
        - $ref: '#/components/schemas/RemoteSpecSource'
        - $ref: '#/components/schemas/UploadSpecSource'
        - $ref: '#/components/schemas/InlineSpecSource'
      title: OpenAPISpecSource
      x-fern-type-name: OpenAPISpecSource
    OpenAPIMCPToolSetting:
      description: OpenAPI MCP Tool Setting
      type: object
      required:
        - method
        - path
        - name
        - description
      properties:
        method:
          description: The HTTP method for this endpoint.
          type: string
          enum:
            - get
            - post
            - put
            - patch
            - delete
            - head
        path:
          description: The API endpoint path (e.g., /users/{id}).
          type: string
        name:
          description: The unique name of this tool, derived from OpenAPI operationId.
          type: string
          pattern: ^[A-Za-z0-9_.-]{1,128}$
        description:
          description: >-
            Describe what this tool does. This helps AI models understand when
            to use it.
          type: string
          minLength: 1
          maxLength: 20000
        annotations:
          $ref: '#/components/schemas/MCPToolAnnotations'
      title: OpenAPIMCPToolSetting
      x-fern-type-name: OpenAPIMCPToolSetting
    MCPServerEnvAuth:
      description: >-
        Environment variable authentication for stdio MCP. For individual
        credentials, use a single {{placeholder}} name in values (same rules as
        header auth).
      type: object
      required:
        - type
        - env
      properties:
        type:
          description: +value=env
          type: string
          enum:
            - env
        env:
          description: >-
            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}}).
          type: object
          additionalProperties:
            type: string
        auth_level:
          description: >-
            Level at which this authentication will be applied. Values: global
            (default), per_user
          type: string
          enum:
            - global
            - per_user
          default: global
      title: MCPServerEnvAuth
      x-fern-type-name: MCPServerEnvAuth
    TfyManagedMCPServerOAuth:
      description: TfyManaged OAuth2
      type: object
      required:
        - type
        - grant_type
      properties:
        type:
          description: OAuth2 authentication
          type: string
          enum:
            - oauth2
        grant_type:
          description: The OAuth2 grant type to use for authentication.
          type: string
          enum:
            - authorization_code
      title: TfyManagedMCPServerOAuth
      x-fern-type-name: TfyManagedMCPServerOAuth
    TruefoundryBackedIdentity:
      description: Identity backed by a TrueFoundry issued token
      type: object
      required:
        - type
      properties:
        type:
          description: +value=truefoundry-backed
          type: string
          enum:
            - truefoundry-backed
        expiration_date:
          description: >-
            Expiration Date of the agent identity token (should be in the format
            yyyy-mm-dd)
          type: string
          pattern: ^\d{4}-\d{2}-\d{2}$
        auto_rotate:
          $ref: '#/components/schemas/AgentIdentityAutoRotate'
        notification_target:
          $ref: '#/components/schemas/NotificationTarget'
        secret_store_config:
          $ref: '#/components/schemas/AgentIdentitySecretStoreConfig'
      title: TruefoundryBackedIdentity
      x-fern-type-name: TruefoundryBackedIdentity
    IdentityProviderBackedIdentity:
      description: Identity resolved from tokens issued by an external identity provider
      type: object
      required:
        - type
        - identity_provider_mapping
      properties:
        type:
          description: +value=idp-backed
          type: string
          enum:
            - idp-backed
        identity_provider_mapping:
          description: >-
            Mappings from external identity provider claim values to this agent
            identity
          type: array
          items:
            $ref: '#/components/schemas/AgentIdentityProviderMapping'
      title: IdentityProviderBackedIdentity
      x-fern-type-name: IdentityProviderBackedIdentity
    InferMethodName:
      type: string
      enum:
        - predict
        - predict_proba
      title: InferMethodName
      description: Name of the method used for inference
      x-fern-type-name: InferMethodName
    MimeType:
      type: string
      enum:
        - text/plain
        - application/json
        - image/png
        - image/jpeg
        - application/x-directory
      title: MimeType
      description: MIME type of the content
      x-fern-type-name: MimeType
    Function:
      type: object
      required:
        - name
        - arguments
      properties:
        name:
          description: Name of the tool/function being called
          type: string
        arguments:
          description: Arguments passed to the tool/function
          type: string
      title: Function
      x-fern-type-name: Function
    HeadersOverride:
      description: Headers Override
      type: object
      properties:
        remove:
          description: List of headers to remove from upstream request
          type: array
          items:
            type: string
        set:
          description: Headers to add or overwrite in upstream request
          type: object
          additionalProperties:
            type: string
      title: HeadersOverride
      x-fern-type-name: HeadersOverride
    StickySessionIdentifier:
      description: Sticky Session Identifier
      type: object
      required:
        - source
        - key
      properties:
        source:
          description: Source from which session identifier value will be extracted
          type: string
          enum:
            - headers
            - metadata
        key:
          description: Key to read from selected source
          type: string
          pattern: ^[!#$%&'*+.^_`|~0-9A-Za-z-]{1,128}$
      title: StickySessionIdentifier
      x-fern-type-name: StickySessionIdentifier
    SLACutoff:
      type: object
      properties:
        time_per_output_token_ms:
          description: >-
            Time per output token threshold in milliseconds. If time per output
            token exceeds this value, the target will be marked as unhealthy
          type: integer
          minimum: 0
          exclusiveMinimum: true
        time_to_first_token_ms:
          description: >-
            Time to first token threshold in milliseconds. If time to first
            token exceeds this value, the target will be marked as unhealthy
          type: integer
          minimum: 0
          exclusiveMinimum: true
      title: SLACutoff
      x-fern-type-name: SLACutoff
    ArtifactsCacheVolume:
      description: Describes the volume that will be used to cache the models
      type: object
      required:
        - storage_class
        - cache_size
      properties:
        storage_class:
          description: Storage class of the Volume where artifacts will be cached
          type: string
        cache_size:
          description: >-
            Size of the Volume (in GB) where artifacts will be cached. Should be
            greater than twice the size of artifacts getting cached
          type: integer
          minimum: 1
          maximum: 10000
          default: 200
      title: ArtifactsCacheVolume
      x-fern-type-name: ArtifactsCacheVolume
    TrueFoundryArtifactSource:
      description: Input for Artifact from TrueFoundry Artifact Registry
      type: object
      required:
        - type
        - artifact_version_fqn
        - download_path_env_variable
      properties:
        type:
          description: +value=truefoundry-artifact
          type: string
          enum:
            - truefoundry-artifact
        artifact_version_fqn:
          description: Artifact or Model Version FQN of the artifact to be downloaded
          type: string
        download_path_env_variable:
          description: >-
            Environment variable which will contain the download path of the
            artifact
          type: string
      title: TrueFoundryArtifactSource
      x-fern-type-name: TrueFoundryArtifactSource
    HuggingfaceArtifactSource:
      description: Input for Artifact from Huggingface Model Hub
      type: object
      required:
        - type
        - model_id
        - revision
        - ignore_patterns
        - download_path_env_variable
      properties:
        type:
          description: +value=huggingface-hub
          type: string
          enum:
            - huggingface-hub
        model_id:
          description: Model ID of the artifact to be downloaded
          type: string
        revision:
          description: Revision of the artifact to be downloaded
          type: string
        ignore_patterns:
          description: List of patterns to ignore while downloading the artifact
          type: array
          items:
            type: string
          default:
            - '*.h5'
            - '*.ot'
            - '*.tflite'
            - '*.msgpack'
        download_path_env_variable:
          description: >-
            Environment variable which will contain the download path of the
            artifact
          type: string
      title: HuggingfaceArtifactSource
      x-fern-type-name: HuggingfaceArtifactSource
    BasicAuthCreds:
      description: Username and password
      type: object
      required:
        - type
        - username
        - password
      properties:
        type:
          description: +value=basic_auth
          type: string
          enum:
            - basic_auth
        username:
          description: >-
            Username for service auth - Username for the user to authenticate
            with
          type: string
        password:
          description: >-
            Password for service auth - Password for the user to authenticate
            with
          type: string
      title: BasicAuthCreds
      x-fern-type-name: BasicAuthCreds
    JwtAuthConfig:
      description: Configure JWT-based authentication using JWKS
      type: object
      required:
        - type
        - integration_fqn
      properties:
        type:
          description: +value=jwt_auth
          type: string
          enum:
            - jwt_auth
        integration_fqn:
          description: >-
            FQN of the JWT Auth integration. If you can't find your integration
            here,

            add it through the [Integrations](/integrations) page
          type: string
        enable_login:
          description: Enable login for the service
          type: boolean
        claims:
          description: List of key-value pairs of claims to verify in the JWT token
          type: array
          items:
            type: object
            required:
              - key
              - values
            properties:
              key:
                type: string
              values:
                type: array
                items:
                  type: string
        bypass_auth_paths:
          description: >-
            List of paths that will bypass auth.

            needs to start with a forward slash(/) and should not contain
            wildcards(*)
          type: array
          items:
            type: string
            pattern: ^/[^*]*
      title: JwtAuthConfig
      x-fern-type-name: JwtAuthConfig
    TrueFoundryInteractiveLogin:
      description: Login with truefoundry
      type: object
      required:
        - type
      properties:
        type:
          description: +value=truefoundry_oauth
          type: string
          enum:
            - truefoundry_oauth
        bypass_auth_paths:
          description: >-
            List of paths that will bypass auth.

            needs to start with a forward slash(/) and should not contain
            wildcards(*)
          type: array
          items:
            type: string
            pattern: ^/[^*]*
      title: TrueFoundryInteractiveLogin
      x-fern-type-name: TrueFoundryInteractiveLogin
    HttpProbe:
      description: >-
        Describes the Instructions for assessing container health by executing
        an HTTP GET request.

        To learn more you can go
        [here](https://docs.truefoundry.com/docs/liveness-readiness-probe)
      type: object
      required:
        - type
        - path
        - port
      properties:
        type:
          description: Request Type
          type: string
          enum:
            - http
        path:
          description: Path to the health check endpoint
          type: string
        port:
          description: Listening port for the health check endpoint
          type: integer
          minimum: 0
          maximum: 65535
        host:
          description: Host name to connect to, defaults to the pod IP
          type: string
        scheme:
          description: Scheme to use for connecting to the host
          type: string
          default: HTTP
      title: HttpProbe
      x-fern-type-name: HttpProbe
    AwsAccessKeyBasedAuth:
      description: Access Key Based
      type: object
      required:
        - type
        - access_key_id
        - secret_access_key
      properties:
        type:
          description: +value=access-key-based
          type: string
          enum:
            - access-key-based
        access_key_id:
          description: AWS access key ID that you want to use for authentication.
          type: string
          pattern: ^\S+$
        secret_access_key:
          description: AWS access key secret that you want to use for authentication.
          type: string
          pattern: ^\S+$
      title: AwsAccessKeyBasedAuth
      x-fern-type-name: AwsAccessKeyBasedAuth
    AwsAssumedRoleBasedAuth:
      description: AWS Assumed Role Based Auth
      type: object
      required:
        - type
        - assumed_role_arn
      properties:
        type:
          description: +value=assumed-role-based
          type: string
          enum:
            - assumed-role-based
        assumed_role_arn:
          description: ARN of the role you want to assume.
          type: string
          pattern: >-
            ^(arn:(aws|aws-us-gov|aws-cn):iam::[0-9]{12}:role(/[\w+=,.@-]+)+|tfy-secret:\/\/.+:.+:.+)$
      title: AwsAssumedRoleBasedAuth
      x-fern-type-name: AwsAssumedRoleBasedAuth
    AwsIntegrations:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/AwsEcr'
        - $ref: '#/components/schemas/AwsS3'
        - $ref: '#/components/schemas/AwsParameterStore'
        - $ref: '#/components/schemas/AwsSecretsManager'
        - $ref: '#/components/schemas/AwsEksIntegration'
      discriminator:
        propertyName: type
      title: AwsIntegrations
      x-fern-type-name: AwsIntegrations
    AzureIntegrations:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/AzureAksIntegration'
        - $ref: '#/components/schemas/AzureContainerRegistry'
        - $ref: '#/components/schemas/AzureBlobStorage'
        - $ref: '#/components/schemas/AzureVault'
        - $ref: '#/components/schemas/AzureReposIntegration'
      discriminator:
        propertyName: type
      title: AzureIntegrations
      x-fern-type-name: AzureIntegrations
    GcpKeyFileAuth:
      description: GCP Key File Auth
      type: object
      required:
        - type
        - key_file_content
      properties:
        type:
          description: +value=key-file
          type: string
          enum:
            - key-file
        key_file_content:
          description: Key File Content - Key file content must be valid JSON
          oneOf:
            - type: string
            - type: object
      title: GcpKeyFileAuth
      x-fern-type-name: GcpKeyFileAuth
    GcpIntegrations:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/GcpGcr'
        - $ref: '#/components/schemas/GcpGcs'
        - $ref: '#/components/schemas/GcpGsm'
        - $ref: '#/components/schemas/GcpGkeIntegration'
      discriminator:
        propertyName: type
      title: GcpIntegrations
      x-fern-type-name: GcpIntegrations
    DockerhubBasicAuth:
      description: Dockerhub Basic Auth
      type: object
      required:
        - type
        - username
        - password
      properties:
        type:
          description: +value=basic-auth
          type: string
          enum:
            - basic-auth
        username:
          description: +sort=100
          type: string
        password:
          description: |-
            +sort=200
            +uiType=SecretSelect
          type: string
      title: DockerhubBasicAuth
      x-fern-type-name: DockerhubBasicAuth
    DockerhubIntegrations:
      $ref: '#/components/schemas/DockerhubRegistry'
      title: DockerhubIntegrations
      x-fern-type-name: DockerhubIntegrations
    BitbucketIntegrations:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/BitbucketIntegration'
        - $ref: '#/components/schemas/BitbucketDataCenterIntegration'
      discriminator:
        propertyName: type
      title: BitbucketIntegrations
      x-fern-type-name: BitbucketIntegrations
    CustomBasicAuth:
      description: Custom Basic Auth
      type: object
      required:
        - type
        - username
        - password
      properties:
        type:
          description: +value=basic-auth
          type: string
          enum:
            - basic-auth
        username:
          description: The username for the basic authentication.
          type: string
          pattern: ^\S+$
        password:
          description: The password for the basic authentication.
          type: string
          minLength: 1
      title: CustomBasicAuth
      x-fern-type-name: CustomBasicAuth
    CustomIntegrations:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/CustomUsernamePasswordArtifactsRegistry'
        - $ref: '#/components/schemas/EmailNotificationChannel'
        - $ref: '#/components/schemas/CustomHelmRepo'
        - $ref: '#/components/schemas/CustomBlobStorage'
        - $ref: '#/components/schemas/CustomJWTAuthIntegration'
        - $ref: '#/components/schemas/GenericSecretStoreIntegration'
      discriminator:
        propertyName: type
      title: CustomIntegrations
      x-fern-type-name: CustomIntegrations
    GithubIntegration:
      description: Github
      type: object
      required:
        - type
        - name
        - account_name
      properties:
        type:
          description: +value=integration/vcs/github
          type: string
          enum:
            - integration/vcs/github
        name:
          description: +sort=100
          type: string
          pattern: ^\S+$
        account_name:
          description: Account Name
          type: string
          pattern: ^\S+$
        auth_data:
          description: Auth
          type: object
          default:
            type: oauth
          oneOf:
            - $ref: '#/components/schemas/VCSOAuthAuthData'
            - $ref: '#/components/schemas/VCSTokenAuthData'
          discriminator:
            propertyName: type
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: GithubIntegration
      x-fern-type-name: GithubIntegration
    GitlabIntegration:
      description: Gitlab
      type: object
      required:
        - type
        - name
        - account_name
      properties:
        type:
          description: +value=integration/vcs/gitlab
          type: string
          enum:
            - integration/vcs/gitlab
        name:
          description: +sort=100
          type: string
          pattern: ^\S+$
        account_name:
          description: Account Name
          type: string
          pattern: ^\S+$
        auth_data:
          description: Auth
          type: object
          default:
            type: oauth
          oneOf:
            - $ref: '#/components/schemas/VCSOAuthAuthData'
            - $ref: '#/components/schemas/VCSTokenAuthData'
          discriminator:
            propertyName: type
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: GitlabIntegration
      x-fern-type-name: GitlabIntegration
    JfrogBasicAuth:
      description: Jfrog Basic Auth
      type: object
      required:
        - type
        - username
        - password
      properties:
        type:
          description: +value=basic-auth
          type: string
          enum:
            - basic-auth
        username:
          description: The username for the basic authentication.
          type: string
          pattern: ^\S+$
        password:
          description: The password for the basic authentication.
          type: string
      title: JfrogBasicAuth
      x-fern-type-name: JfrogBasicAuth
    JFrogIntegrations:
      $ref: '#/components/schemas/JfrogArtifactsRegistry'
      title: JFrogIntegrations
      x-fern-type-name: JFrogIntegrations
    TTLIntegrations:
      $ref: '#/components/schemas/TTLRegistry'
      title: TTLIntegrations
      x-fern-type-name: TTLIntegrations
    TrueFoundryIntegrations:
      $ref: '#/components/schemas/TrueFoundryDBSSM'
      title: TrueFoundryIntegrations
      x-fern-type-name: TrueFoundryIntegrations
    QuayBasicAuth:
      description: Quay Basic Auth
      type: object
      required:
        - type
        - username
        - password
      properties:
        type:
          description: +value=basic-auth
          type: string
          enum:
            - basic-auth
        username:
          description: The username for the basic authentication.
          type: string
        password:
          description: The password for the basic authentication.
          type: string
      title: QuayBasicAuth
      x-fern-type-name: QuayBasicAuth
    QuayIntegrations:
      $ref: '#/components/schemas/QuayArtifactsRegistry'
      title: QuayIntegrations
      x-fern-type-name: QuayIntegrations
    SlackIntegrations:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/SlackWebhookIntegration'
        - $ref: '#/components/schemas/SlackBotIntegration'
      discriminator:
        propertyName: type
      title: SlackIntegrations
      x-fern-type-name: SlackIntegrations
    WebhookIntegrations:
      $ref: '#/components/schemas/WebhookIntegration'
      title: WebhookIntegrations
      x-fern-type-name: WebhookIntegrations
    PagerDutyIntegrations:
      $ref: '#/components/schemas/PagerDutyIntegration'
      title: PagerDutyIntegrations
      x-fern-type-name: PagerDutyIntegrations
    MSTeamsIntegrations:
      $ref: '#/components/schemas/MSTeamsWebhookIntegration'
      title: MSTeamsIntegrations
      x-fern-type-name: MSTeamsIntegrations
    HashicorpIntegrations:
      $ref: '#/components/schemas/HashicorpVaultIntegration'
      title: HashicorpIntegrations
      x-fern-type-name: HashicorpIntegrations
    AWSRegion:
      type: string
      enum:
        - af-south-1
        - ap-east-1
        - ap-northeast-1
        - ap-northeast-2
        - ap-northeast-3
        - ap-south-1
        - ap-south-2
        - ap-southeast-1
        - ap-southeast-2
        - ap-southeast-3
        - ap-southeast-4
        - ap-southeast-5
        - ap-southeast-7
        - ca-central-1
        - ca-west-1
        - cn-north-1
        - cn-northwest-1
        - eu-central-1
        - eu-central-2
        - eu-north-1
        - eu-south-1
        - eu-south-2
        - eu-west-1
        - eu-west-2
        - eu-west-3
        - il-central-1
        - me-central-1
        - me-south-1
        - mx-central-1
        - sa-east-1
        - us-east-1
        - us-east-2
        - us-gov-east-1
        - us-gov-west-1
        - us-west-1
        - us-west-2
        - ap-southeast-6
        - ap-east-2
      title: AWSRegion
      x-fern-type-name: AWSRegion
    AwsBedrockAssumedRoleBasedAuth:
      description: Assumed Role Based
      type: object
      properties:
        external_id:
          description: >-
            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.
          type: string
      allOf:
        - $ref: '#/components/schemas/AwsAssumedRoleBasedAuth'
      title: AwsBedrockAssumedRoleBasedAuth
      x-fern-type-name: AwsBedrockAssumedRoleBasedAuth
    AwsBedrockApiKeyAuth:
      description: API Key Based
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: Your AWS Bedrock API key for authentication
          type: string
          pattern: ^\S+$
      title: AwsBedrockApiKeyAuth
      x-fern-type-name: AwsBedrockApiKeyAuth
    BedrockModel:
      description: Bedrock Model
      type: object
      required:
        - name
        - model_id
        - type
        - model_types
      properties:
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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).
          type: string
          pattern: ^\S+$
        type:
          description: +value=integration/model/bedrock
          type: string
          enum:
            - integration/model/bedrock
        model_types:
          description: Specify the type of the Bedrock model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        region:
          $ref: '#/components/schemas/AWSRegion'
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: BedrockModel
      x-fern-type-name: BedrockModel
    VertexRegion:
      type: string
      enum:
        - global
        - northamerica-northeast1
        - northamerica-northeast2
        - southamerica-east1
        - us-central1
        - us-east1
        - us-east4
        - us-east5
        - us-south1
        - us-west1
        - us-west2
        - us-west3
        - us-west4
        - asia-east1
        - asia-east2
        - asia-northeast1
        - asia-northeast2
        - asia-northeast3
        - asia-south1
        - asia-south2
        - asia-southeast1
        - asia-southeast2
        - australia-southeast1
        - australia-southeast2
        - europe-central2
        - europe-north1
        - europe-southwest1
        - europe-west1
        - europe-west2
        - europe-west3
        - europe-west4
        - europe-west6
        - europe-west8
        - europe-west9
        - me-central1
        - me-central2
        - me-west1
        - eu
        - us
      title: VertexRegion
      x-fern-type-name: VertexRegion
    VertexKeyFileAuth:
      description: Service account key file
      type: object
      required:
        - type
        - key_file_content
      properties:
        type:
          description: +value=key-file
          type: string
          enum:
            - key-file
        key_file_content:
          description: >-
            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.
          oneOf:
            - type: string
            - type: object
      title: VertexKeyFileAuth
      x-fern-type-name: VertexKeyFileAuth
    VertexWifFileAuth:
      description: Workload Identity Federation file
      type: object
      required:
        - type
        - key_file_content
      properties:
        type:
          description: +value=workload-identity-federation-file
          type: string
          enum:
            - workload-identity-federation-file
        key_file_content:
          description: >-
            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.
          oneOf:
            - type: string
            - type: object
      title: VertexWifFileAuth
      x-fern-type-name: VertexWifFileAuth
    VertexModel:
      description: Vertex Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/vertex
          type: string
          enum:
            - integration/model/vertex
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        region:
          $ref: '#/components/schemas/VertexRegion'
        model_types:
          description: Specify the type of the Vertex AI model (e.g., chat, text, etc.)
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: VertexModel
      x-fern-type-name: VertexModel
    GcpApiKeyAuth:
      description: Google Cloud API Key Auth
      type: object
      required:
        - type
        - apiKey
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        apiKey:
          description: The API key for Google Cloud authentication
          type: string
          pattern: ^\S+$
      title: GcpApiKeyAuth
      x-fern-type-name: GcpApiKeyAuth
    GeminiModel:
      description: Gemini Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/gemini
          type: string
          enum:
            - integration/model/gemini
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Gemini model (e.g., chat, text, etc.)
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: GeminiModel
      x-fern-type-name: GeminiModel
    AzureKeyAuth:
      description: API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Azure AI Foundry authentication
          type: string
          pattern: ^\S+$
      title: AzureKeyAuth
      x-fern-type-name: AzureKeyAuth
    AzureCertificateAuth:
      description: Entra certificate based auth
      type: object
      required:
        - type
        - tenant_id
        - client_id
        - certificate
        - certificate_thumbprint
      properties:
        type:
          description: +value=certificate
          type: string
          enum:
            - certificate
        tenant_id:
          description: The Azure AD tenant ID where the application is registered
          type: string
          pattern: ^\S+$
        client_id:
          description: >-
            The Azure AD application (client) ID for service principal
            authentication
          type: string
          pattern: ^\S+$
        certificate:
          description: >-
            Certificate in PEM format (e.g., -----BEGIN CERTIFICATE----- ...
            -----END CERTIFICATE-----)
          type: string
          pattern: \S
        certificate_thumbprint:
          description: >-
            The base64url-encoded SHA-1 thumbprint of the certificate (x5t
            claim)
          type: string
          pattern: ^\S+$
      title: AzureCertificateAuth
      x-fern-type-name: AzureCertificateAuth
    AzureClientSecretAuth:
      description: Entra client secret based auth
      type: object
      required:
        - type
        - tenant_id
        - client_id
        - client_secret
      properties:
        type:
          description: +value=client-secret
          type: string
          enum:
            - client-secret
        tenant_id:
          description: The Azure AD tenant ID where the application is registered
          type: string
          pattern: ^\S+$
        client_id:
          description: >-
            The Azure AD application (client) ID for service principal
            authentication
          type: string
          pattern: ^\S+$
        client_secret:
          description: >-
            The Azure AD application client secret value used for the OAuth
            client_credentials flow
          type: string
          pattern: ^\S+$
      title: AzureClientSecretAuth
      x-fern-type-name: AzureClientSecretAuth
    AzureWorkloadIdentityAuth:
      description: Workload Identity Federation
      type: object
      required:
        - type
        - tenant_id
        - client_id
      properties:
        type:
          description: +value=workload-identity
          type: string
          enum:
            - workload-identity
        tenant_id:
          description: The Azure AD tenant ID where the application is registered
          type: string
          pattern: ^\S+$
        client_id:
          description: >-
            The Azure AD application (client) ID configured with a federated
            identity credential for the gateway's Kubernetes service account
          type: string
          pattern: ^\S+$
      title: AzureWorkloadIdentityAuth
      x-fern-type-name: AzureWorkloadIdentityAuth
    AzureOpenAIModel:
      description: Azure OpenAI Model
      type: object
      required:
        - type
        - name
        - model_id
        - api_version
        - model_types
      properties:
        type:
          description: +value=integration/model/azure-openai
          type: string
          enum:
            - integration/model/azure-openai
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        api_version:
          description: The Azure OpenAI API version to use
          type: string
          pattern: ^\S+$
        foundation_model:
          description: The foundation model identifier (e.g., gpt-4o-2024-11-20)
          type: string
        deployment_type:
          description: >-
            Global: worldwide processing; Data zone (US): US data zone
            processing; Data zone (EU): EU data zone processing; Standard:
            single-region processing
          type: string
          enum:
            - standard
            - datazone_us
            - datazone_eu
            - global
          default: standard
        model_types:
          description: Specify the type of the Azure OpenAI model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: AzureOpenAIModel
      x-fern-type-name: AzureOpenAIModel
    AzureFoundryModel:
      description: Azure AI Foundry Model
      type: object
      required:
        - type
        - name
        - auth_data
        - model_types
        - model_id
        - azure_endpoint
      properties:
        type:
          description: +value=integration/model/azure-foundry
          type: string
          enum:
            - integration/model/azure-foundry
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        auth_data:
          description: Azure AI Foundry authentication credentials
          type: object
          oneOf:
            - $ref: '#/components/schemas/AzureKeyAuth'
            - $ref: '#/components/schemas/AzureCertificateAuth'
            - $ref: '#/components/schemas/AzureClientSecretAuth'
            - $ref: '#/components/schemas/AzureWorkloadIdentityAuth'
          discriminator:
            propertyName: type
        model_types:
          description: Types of models supported by this Azure AI Foundry deployment
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        azure_endpoint:
          description: >-
            The Azure AI Foundry endpoint URL. Should look like
            https://{deployment}.{region}.models.ai.azure.com
          type: string
          pattern: ^\S+$
        api_version:
          description: The API version for the Azure Foundry model
          type: string
          pattern: ^\S+$
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: AzureFoundryModel
      x-fern-type-name: AzureFoundryModel
    CohereKeyAuth:
      description: Cohere API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Cohere authentication
          type: string
          pattern: ^\S+$
      title: CohereKeyAuth
      x-fern-type-name: CohereKeyAuth
    CohereIntegrations:
      $ref: '#/components/schemas/CohereModel'
      title: CohereIntegrations
      x-fern-type-name: CohereIntegrations
    AI21KeyAuth:
      description: Authentication method using AI21 API key
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for AI21 authentication
          type: string
          pattern: ^\S+$
      title: AI21KeyAuth
      x-fern-type-name: AI21KeyAuth
    AI21Integrations:
      $ref: '#/components/schemas/AI21Model'
      title: AI21Integrations
      x-fern-type-name: AI21Integrations
    AnthropicKeyAuth:
      description: Authentication method using Anthropic API key
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Anthropic authentication
          type: string
          pattern: ^\S+$
      title: AnthropicKeyAuth
      x-fern-type-name: AnthropicKeyAuth
    AnthropicIntegrations:
      $ref: '#/components/schemas/AnthropicModel'
      title: AnthropicIntegrations
      x-fern-type-name: AnthropicIntegrations
    DeepinfraKeyAuth:
      description: DeepInfra API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for DeepInfra authentication
          type: string
          pattern: ^\S+$
      title: DeepinfraKeyAuth
      x-fern-type-name: DeepinfraKeyAuth
    DeepinfraIntegrations:
      $ref: '#/components/schemas/DeepinfraModel'
      title: DeepinfraIntegrations
      x-fern-type-name: DeepinfraIntegrations
    GroqKeyAuth:
      description: Groq API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Groq authentication
          type: string
          pattern: ^\S+$
      title: GroqKeyAuth
      x-fern-type-name: GroqKeyAuth
    GroqIntegrations:
      $ref: '#/components/schemas/GroqModel'
      title: GroqIntegrations
      x-fern-type-name: GroqIntegrations
    MistralAIKeyAuth:
      description: Mistral AI API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Mistral AI authentication
          type: string
          pattern: ^\S+$
      title: MistralAIKeyAuth
      x-fern-type-name: MistralAIKeyAuth
    MistralAIIntegrations:
      $ref: '#/components/schemas/MistralAIModel'
      title: MistralAIIntegrations
      x-fern-type-name: MistralAIIntegrations
    PerplexityAIKeyAuth:
      description: Perplexity AI API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Perplexity AI authentication
          type: string
          pattern: ^\S+$
      title: PerplexityAIKeyAuth
      x-fern-type-name: PerplexityAIKeyAuth
    PerplexityIntegrations:
      $ref: '#/components/schemas/PerplexityAIModel'
      title: PerplexityIntegrations
      x-fern-type-name: PerplexityIntegrations
    TogetherAIKeyAuth:
      description: Together AI API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Together AI authentication
          type: string
          pattern: ^\S+$
      title: TogetherAIKeyAuth
      x-fern-type-name: TogetherAIKeyAuth
    TogetherAIIntegrations:
      $ref: '#/components/schemas/TogetherAIModel'
      title: TogetherAIIntegrations
      x-fern-type-name: TogetherAIIntegrations
    NomicKeyAuth:
      description: Nomic API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Nomic authentication
          type: string
          pattern: ^\S+$
      title: NomicKeyAuth
      x-fern-type-name: NomicKeyAuth
    NomicIntegrations:
      $ref: '#/components/schemas/NomicModel'
      title: NomicIntegrations
      x-fern-type-name: NomicIntegrations
    PalmKeyAuth:
      description: PaLM API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: Your PaLM API key for authentication
          type: string
          pattern: ^\S+$
      title: PalmKeyAuth
      x-fern-type-name: PalmKeyAuth
    PalmIntegrations:
      $ref: '#/components/schemas/PalmModel'
      title: PalmIntegrations
      x-fern-type-name: PalmIntegrations
    OllamaKeyAuth:
      description: Ollama API Key Auth
      type: object
      required:
        - custom_host
      properties:
        custom_host:
          description: The custom host URL for Ollama API
          type: string
          pattern: ^\S+$
      title: OllamaKeyAuth
      x-fern-type-name: OllamaKeyAuth
    OllamaIntegrations:
      $ref: '#/components/schemas/OllamaModel'
      title: OllamaIntegrations
      x-fern-type-name: OllamaIntegrations
    OpenaiApiKeyAuth:
      description: OpenAI API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: Your OpenAI API key for authentication
          type: string
          pattern: ^\S+$
      title: OpenaiApiKeyAuth
      x-fern-type-name: OpenaiApiKeyAuth
    OpenAIIntegrations:
      $ref: '#/components/schemas/OpenAIModel'
      title: OpenAIIntegrations
      x-fern-type-name: OpenAIIntegrations
    DatabricksServicePrincipalAuth:
      description: >-
        You can authenticate using Databricks service principal. To generate
        OAuth secret and Client ID, go to Databricks workspace -> Workspace
        Settings -> Identity and Access -> Service Principals -> Secrets.
      type: object
      required:
        - type
        - oauth_secret
        - client_id
      properties:
        type:
          description: +value=service-principal
          type: string
          enum:
            - service-principal
        oauth_secret:
          description: OAuth secret of the Databricks service principal.
          type: string
          pattern: ^\S+$
        client_id:
          description: Client ID or Application ID of the Databricks service principal.
          type: string
          pattern: ^\S+$
      title: DatabricksServicePrincipalAuth
      x-fern-type-name: DatabricksServicePrincipalAuth
    DatabricksApiKeyAuth:
      description: Databricks API Key Based Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: API key for Databricks authentication.
          type: string
          pattern: ^\S+$
      title: DatabricksApiKeyAuth
      x-fern-type-name: DatabricksApiKeyAuth
    DatabricksIntegrations:
      $ref: '#/components/schemas/DatabricksModel'
      title: DatabricksIntegrations
      x-fern-type-name: DatabricksIntegrations
    ClouderaWorkloadAuthToken:
      description: >-
        Authenticate using Cloudera CDP workload authentication (recommended).
        This method generates a secure workload token using your API access key
        and private key, allowing you to securely access CDP workloads and
        services.
      type: object
      required:
        - type
        - cdp_base_url
        - access_key_id
        - private_key
        - workload_name
      properties:
        type:
          description: +value=workload-auth-token
          type: string
          enum:
            - workload-auth-token
        cdp_base_url:
          description: The base URL for CDP API services
          type: string
          pattern: ^\S+$
        access_key_id:
          description: The access key ID for your Cloudera CDP workload authentication.
          type: string
          pattern: ^\S+$
        private_key:
          description: The private key for your Cloudera CDP workload authentication.
          type: string
          pattern: \S
        workload_name:
          description: The name of the CDP workload you want to authenticate with.
          type: string
          pattern: ^\S+$
      title: ClouderaWorkloadAuthToken
      x-fern-type-name: ClouderaWorkloadAuthToken
    ClouderaTokenAuth:
      description: >-
        Authenticate using a pre-generated API token. Alternative to workload
        authentication, this method uses a directly provided API token for
        accessing Cloudera CDP services.
      type: object
      required:
        - type
        - api_token
      properties:
        type:
          description: +value=token
          type: string
          enum:
            - token
        api_token:
          description: >-
            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.
          type: string
          pattern: ^\S+$
      title: ClouderaTokenAuth
      x-fern-type-name: ClouderaTokenAuth
    ClouderaIntegrations:
      $ref: '#/components/schemas/ClouderaModel'
      title: ClouderaIntegrations
      x-fern-type-name: ClouderaIntegrations
    SelfHostedModelIntegrations:
      $ref: '#/components/schemas/SelfHostedModel'
      title: SelfHostedModelIntegrations
      x-fern-type-name: SelfHostedModelIntegrations
    OpenRouterApiKeyAuth:
      description: OpenRouter API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for OpenRouter authentication
          type: string
          pattern: ^\S+$
      title: OpenRouterApiKeyAuth
      x-fern-type-name: OpenRouterApiKeyAuth
    OpenRouterIntegrations:
      $ref: '#/components/schemas/OpenRouterModel'
      title: OpenRouterIntegrations
      x-fern-type-name: OpenRouterIntegrations
    SambaNovaKeyAuth:
      description: SambaNova Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for SambaNova authentication
          type: string
          pattern: ^\S+$
      title: SambaNovaKeyAuth
      x-fern-type-name: SambaNovaKeyAuth
    SambaNovaIntegrations:
      $ref: '#/components/schemas/SambaNovaModel'
      title: SambaNovaIntegrations
      x-fern-type-name: SambaNovaIntegrations
    XAIKeyAuth:
      description: Authentication method using xAI API key
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for xAI authentication
          type: string
          pattern: ^\S+$
      title: XAIKeyAuth
      x-fern-type-name: XAIKeyAuth
    XAIIntegrations:
      $ref: '#/components/schemas/XAIModel'
      title: XAIIntegrations
      x-fern-type-name: XAIIntegrations
    BasetenKeyAuth:
      description: Authentication method using Baseten API key
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Baseten authentication
          type: string
          pattern: ^\S+$
      title: BasetenKeyAuth
      x-fern-type-name: BasetenKeyAuth
    BasetenIntegrations:
      $ref: '#/components/schemas/BasetenModel'
      title: BasetenIntegrations
      x-fern-type-name: BasetenIntegrations
    SagemakerAssumedRoleBasedAuth:
      $ref: '#/components/schemas/AwsBedrockAssumedRoleBasedAuth'
      title: SagemakerAssumedRoleBasedAuth
      x-fern-type-name: SagemakerAssumedRoleBasedAuth
    SagemakerModel:
      description: Sagemaker Model
      type: object
      required:
        - name
        - model_id
        - type
        - model_types
      properties:
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        type:
          description: +value=integration/model/sagemaker
          type: string
          enum:
            - integration/model/sagemaker
        model_types:
          description: Specify the type of the Sagemaker model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        region:
          $ref: '#/components/schemas/AWSRegion'
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: SagemakerModel
      x-fern-type-name: SagemakerModel
    CerebrasKeyAuth:
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Cerebras authentication
          type: string
          pattern: ^\S+$
      title: CerebrasKeyAuth
      x-fern-type-name: CerebrasKeyAuth
    CerebrasIntegrations:
      $ref: '#/components/schemas/CerebrasModel'
      title: CerebrasIntegrations
      x-fern-type-name: CerebrasIntegrations
    WaferAPIKeyAuth:
      description: Wafer API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Wafer Serverless authentication
          type: string
          pattern: ^\S+$
      title: WaferAPIKeyAuth
      x-fern-type-name: WaferAPIKeyAuth
    WaferIntegrations:
      $ref: '#/components/schemas/WaferModel'
      title: WaferIntegrations
      x-fern-type-name: WaferIntegrations
    SnowflakeCortexPatTokenAuth:
      type: object
      required:
        - type
        - pat_token
      properties:
        type:
          description: +value=pat-token
          type: string
          enum:
            - pat-token
        pat_token:
          description: PAT token for Snowflake Cortex authentication
          type: string
          pattern: ^\S+$
      title: SnowflakeCortexPatTokenAuth
      x-fern-type-name: SnowflakeCortexPatTokenAuth
    SnowflakeCortexIntegrations:
      $ref: '#/components/schemas/SnowflakeCortexModel'
      title: SnowflakeCortexIntegrations
      x-fern-type-name: SnowflakeCortexIntegrations
    ElevenLabsApiKeyAuth:
      description: ElevenLabs API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The XI API key for ElevenLabs authentication
          type: string
          pattern: ^\S+$
      title: ElevenLabsApiKeyAuth
      x-fern-type-name: ElevenLabsApiKeyAuth
    ElevenLabsModel:
      description: ElevenLabs Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/elevenlabs
          type: string
          enum:
            - integration/model/elevenlabs
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            The ElevenLabs model identifier (for example,
            eleven_multilingual_v2, eleven_turbo_v2_5)
          type: string
          pattern: ^\S+$
        model_types:
          description: >-
            Specify the type of the ElevenLabs model (text_to_speech or
            audio_transcription)
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - text_to_speech
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: ElevenLabsModel
      x-fern-type-name: ElevenLabsModel
    DeepgramApiKeyAuth:
      description: Deepgram API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Deepgram authentication
          type: string
          pattern: ^\S+$
      title: DeepgramApiKeyAuth
      x-fern-type-name: DeepgramApiKeyAuth
    DeepgramModel:
      description: Deepgram Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/deepgram
          type: string
          enum:
            - integration/model/deepgram
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            The Deepgram model identifier (for example, nova-2, nova-2-general,
            aura-asteria-en)
          type: string
          pattern: ^\S+$
        model_types:
          description: >-
            Specify the type of the Deepgram model (text_to_speech or
            audio_transcription)
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - audio_transcription
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: DeepgramModel
      x-fern-type-name: DeepgramModel
    CartesiaApiKeyAuth:
      description: Cartesia API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Cartesia authentication
          type: string
          pattern: ^\S+$
      title: CartesiaApiKeyAuth
      x-fern-type-name: CartesiaApiKeyAuth
    CartesiaModel:
      description: Cartesia Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/cartesia
          type: string
          enum:
            - integration/model/cartesia
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            The Cartesia model identifier (for example, sonic-2,
            sonic-multilingual)
          type: string
          pattern: ^\S+$
        model_types:
          description: >-
            Specify the type of the Cartesia model (text_to_speech or
            audio_transcription)
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - text_to_speech
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: CartesiaModel
      x-fern-type-name: CartesiaModel
    SmallestAiApiKeyAuth:
      description: Smallest AI API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Smallest AI authentication
          type: string
          pattern: ^\S+$
      title: SmallestAiApiKeyAuth
      x-fern-type-name: SmallestAiApiKeyAuth
    SmallestAiModel:
      description: Smallest AI Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/smallest-ai
          type: string
          enum:
            - integration/model/smallest-ai
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            The Smallest AI model identifier (for example, lightning-v2,
            lightning-v3.1 for TTS, pulse for STT)
          type: string
          pattern: ^\S+$
        model_types:
          description: >-
            Specify the type of the Smallest AI model (text_to_speech or
            audio_transcription)
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - text_to_speech
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: SmallestAiModel
      x-fern-type-name: SmallestAiModel
    AWSClaudePlatformAssumedRoleBasedAuth:
      description: Assumed Role Based
      type: object
      properties:
        external_id:
          description: >-
            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.
          type: string
      allOf:
        - $ref: '#/components/schemas/AwsAssumedRoleBasedAuth'
      title: AWSClaudePlatformAssumedRoleBasedAuth
      x-fern-type-name: AWSClaudePlatformAssumedRoleBasedAuth
    AWSClaudePlatformApiKeyAuth:
      description: API Key Based
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: >-
            Generate API keys in the AWS Console under Claude Platform on AWS →
            API keys. Choose Generate a key, then copy the key value. Grant the
            aws-external-anthropic:CallWithBearerToken IAM action to the
            principals that should be allowed to use API key authentication.
          type: string
          pattern: ^\S+$
      title: AWSClaudePlatformApiKeyAuth
      x-fern-type-name: AWSClaudePlatformApiKeyAuth
    AWSClaudePlatformIntegrations:
      $ref: '#/components/schemas/AWSClaudePlatformModel'
      title: AWSClaudePlatformIntegrations
      x-fern-type-name: AWSClaudePlatformIntegrations
    AwsBedrockMantleIntegrations:
      $ref: '#/components/schemas/BedrockMantleModel'
      title: AwsBedrockMantleIntegrations
      x-fern-type-name: AwsBedrockMantleIntegrations
    VirtualModel:
      description: Virtual Model
      type: object
      required:
        - name
        - type
        - model_types
        - routing_config
      properties:
        name:
          description: The name of the Virtual Model
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        type:
          description: +value=integration/model/virtual
          type: string
          enum:
            - integration/model/virtual
        model_types:
          description: Specify the type of the Virtual Model
          type: array
          items:
            $ref: '#/components/schemas/VirtualModelModelType'
          default:
            - chat
        slug:
          description: >-
            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.
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,60}[a-zA-Z0-9])$
        routing_config:
          $ref: '#/components/schemas/HeaderRoutingConfig'
      title: VirtualModel
      x-fern-type-name: VirtualModel
    CustomHeaderAuth:
      description: >-
        Static API key or token authentication via request headers. All users
        share the same credentials.
      type: object
      required:
        - type
        - headers
      properties:
        type:
          description: +value=header
          type: string
          enum:
            - header
        headers:
          description: Headers passed to the generic secret server with every request.
          type: object
          additionalProperties:
            type: string
            pattern: ^\S+$
      title: CustomHeaderAuth
      x-fern-type-name: CustomHeaderAuth
    CustomEndpointIntegrations:
      $ref: '#/components/schemas/CustomEndpoint'
      title: CustomEndpointIntegrations
      x-fern-type-name: CustomEndpointIntegrations
    MCPServerIntegration:
      description: MCP Server
      type: object
      required:
        - type
        - name
        - description
        - url
        - transport
      properties:
        type:
          description: +value=integration/mcp-server/remote
          type: string
          enum:
            - integration/mcp-server/remote
        name:
          description: The name of the MCP Server.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Provide a brief description of the purpose of this MCP Server.
          type: string
          minLength: 1
          maxLength: 1000
        url:
          description: The endpoint URL for the MCP Server.
          type: string
          pattern: ^https?:\/\/[^\s]+$
        transport:
          description: The transport protocol to use for communication with the MCP Server.
          type: string
          enum:
            - streamable-http
            - sse
        auth_data:
          $ref: '#/components/schemas/MCPServerAuth'
        authorized_subjects:
          description: List of teams/users who can use this MCP server.
          type: array
          items:
            type: string
      title: MCPServerIntegration
      x-fern-type-name: MCPServerIntegration
    VirtualMCPServerIntegration:
      description: Virtual MCP Server
      type: object
      required:
        - type
        - name
        - description
        - servers
      properties:
        type:
          description: +value=integration/mcp-server/virtual
          type: string
          enum:
            - integration/mcp-server/virtual
        name:
          description: The name of the Virtual MCP Server.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: >-
            Provide a brief description of the purpose of this Virtual MCP
            Server.
          type: string
          minLength: 1
          maxLength: 1000
        servers:
          description: List of source MCP servers to include in this virtual server.
          type: array
          items:
            $ref: '#/components/schemas/VirtualMCPServerSource'
        authorized_subjects:
          description: List of teams/users who can use this MCP server.
          type: array
          items:
            type: string
      title: VirtualMCPServerIntegration
      x-fern-type-name: VirtualMCPServerIntegration
    OpenAIModerationsGuardrailConfig:
      description: OpenAI Moderation
      type: object
      required:
        - name
        - type
        - auth_data
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: >-
            OpenAI content moderation for hate, harassment, self-harm, sexual,
            violence, and illicit content
        type:
          description: |-
            +value=integration/guardrail-config/openai-moderations
            +sort=50
            +uiType=Hidden
          type: string
          enum:
            - integration/guardrail-config/openai-moderations
        auth_data:
          $ref: '#/components/schemas/OpenaiApiKeyAuth'
        operation:
          description: >-
            The operation type for this guardrail. OpenAI Moderation guardrails
            can only be used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - model
          properties:
            model:
              description: The model to use for the OpenAI Moderation API.
              type: string
              default: omni-moderation-latest
            base_url:
              description: >-
                Optional custom base URL for OpenAI API. If not provided, the
                default base URL will be used.
              type: string
              pattern: ^\S+$
            category_thresholds:
              type: object
              additionalProperties:
                type: number
                minimum: 0
                maximum: 1
      title: OpenAIModerationsGuardrailConfig
      x-fern-type-name: OpenAIModerationsGuardrailConfig
    AWSBedrockGuardrailConfig:
      description: AWS Bedrock
      type: object
      required:
        - name
        - type
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: AWS Bedrock Guardrails for content filtering and safety policies
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/aws-bedrock
          type: string
          enum:
            - integration/guardrail-config/aws-bedrock
        auth_data:
          description: Authentication data for the AWS account
          type: object
          oneOf:
            - $ref: '#/components/schemas/AwsAccessKeyBasedAuth'
            - $ref: '#/components/schemas/AwsBedrockAssumedRoleBasedAuth'
            - $ref: '#/components/schemas/AwsBedrockApiKeyAuth'
          discriminator:
            propertyName: type
        operation:
          description: >-
            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.
          type: string
          enum:
            - validate
            - mutate
          default: validate
        priority:
          description: >-
            Execution order for mutate guardrails. Lower values run first. Only
            applicable when operation is mutate.
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - guardrail_id
            - guardrail_version
            - region
          properties:
            guardrail_id:
              description: >-
                The unique identifier of the Bedrock Guardrail created in AWS
                console
              type: string
              pattern: >-
                ^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$
            guardrail_version:
              description: Version number of the guardrail to use (e.g., 2 for version 2)
              type: string
              pattern: ^(([1-9][0-9]{0,7})|(DRAFT))$
            region:
              $ref: '#/components/schemas/AWSRegion'
      title: AWSBedrockGuardrailConfig
      x-fern-type-name: AWSBedrockGuardrailConfig
    CustomGuardrailConfig:
      description: Custom
      type: object
      required:
        - name
        - type
        - operation
        - enforcing_strategy
        - target
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: Custom guardrail server for validate or mutate via HTTP endpoint
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/custom
          type: string
          enum:
            - integration/guardrail-config/custom
        auth_data:
          description: Authentication data for the Guardrail Server.
          type: object
          oneOf:
            - $ref: '#/components/schemas/CustomBasicAuth'
            - $ref: '#/components/schemas/CustomBearerAuth'
          discriminator:
            propertyName: type
        operation:
          description: >-
            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.
          type: string
          enum:
            - validate
            - mutate
          default: validate
        priority:
          description: >-
            Execution order for mutate guardrails. Lower values run first. Only
            applicable when operation is mutate.
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        target:
          description: >-
            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.
          type: string
          enum:
            - request
            - response
          default: request
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - url
          properties:
            url:
              description: The URL of the Guardrail to send a post request to.
              type: string
              pattern: ^https?:\/\/[^\s\/]+(\/[^\s\/]*)*[^\/\s]$
            headers:
              description: >-
                Headers for the Guardrail Server. Forwarded to the Guardrail
                Server as is. For example: `{"Authorization": "APIKey <token>"}`
              type: object
              additionalProperties:
                type: string
            config:
              description: >-
                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.
              type: object
      title: CustomGuardrailConfig
      x-fern-type-name: CustomGuardrailConfig
    AzurePIIGuardrailConfig:
      description: Azure PII
      type: object
      required:
        - name
        - type
        - auth_data
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: Azure AI Language PII detection and redaction for sensitive data
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/azure-pii
          type: string
          enum:
            - integration/guardrail-config/azure-pii
        auth_data:
          description: Authentication data for the Azure account
          type: object
          oneOf:
            - $ref: '#/components/schemas/AzureKeyAuth'
            - $ref: '#/components/schemas/AzureCertificateAuth'
            - $ref: '#/components/schemas/AzureClientSecretAuth'
            - $ref: '#/components/schemas/AzureWorkloadIdentityAuth'
          discriminator:
            propertyName: type
        operation:
          description: >-
            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.
          type: string
          enum:
            - mutate
            - validate
          default: mutate
        priority:
          description: >-
            Execution order for mutate guardrails. Lower values run first. Only
            applicable when operation is mutate.
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - resource_name
            - api_version
            - domain
            - pii_categories
            - model_version
            - language
          properties:
            resource_name:
              description: >-
                Name of your Azure AI Language resource where the PII detection
                service is deployed (e.g., my-language-resource)
              type: string
            api_version:
              description: API version for the PII detection API
              type: string
              default: '2024-11-01'
            custom_host:
              description: >-
                Custom endpoint URL for the PII detection API (optional, uses
                default Azure endpoint if not specified)
              type: string
              pattern: ^(https?://)\S+$
            domain:
              description: >-
                Specialized domain for PII detection. Use phi for PHI (Protected
                Health Information) or none for general text
              type: string
              enum:
                - none
                - phi
              default: none
            pii_categories:
              description: Categories of PII to detect.
              type: array
              items:
                $ref: '#/components/schemas/AzurePIICategory'
              default:
                - '*'
            model_version:
              description: >-
                Version of the PII detection model to use, use latest for the
                newest model or specify a specific version for consistency
              type: string
              default: latest
            language:
              description: Language code for PII detection (e.g., en for English)
              type: string
              default: en
      title: AzurePIIGuardrailConfig
      x-fern-type-name: AzurePIIGuardrailConfig
    AzureContentSafetyGuardrailConfig:
      description: Azure Content Safety
      type: object
      required:
        - name
        - type
        - auth_data
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: >-
            Azure Content Safety for hate, self-harm, sexual, and violence
            detection
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/azure-content-safety
          type: string
          enum:
            - integration/guardrail-config/azure-content-safety
        auth_data:
          description: Authentication data for the Azure account
          type: object
          oneOf:
            - $ref: '#/components/schemas/AzureKeyAuth'
            - $ref: '#/components/schemas/AzureCertificateAuth'
            - $ref: '#/components/schemas/AzureClientSecretAuth'
            - $ref: '#/components/schemas/AzureWorkloadIdentityAuth'
          discriminator:
            propertyName: type
        operation:
          description: >-
            The operation type for this guardrail. Azure Content Safety
            guardrails can only be used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - resource_name
            - api_version
            - severity_threshold
            - categories
          properties:
            resource_name:
              description: >-
                Name of your Azure Content Safety resource where the service is
                deployed (e.g., my-content-safety)
              type: string
            api_version:
              description: API version for the Content Safety API
              type: string
              default: '2024-09-01'
            custom_host:
              description: >-
                Custom endpoint URL for the Content Safety API (optional, uses
                default Azure endpoint if not specified)
              type: string
              pattern: ^(https?://)\S+$
            blocklist_names:
              description: >-
                Names of custom blocklists created in Azure Content Safety to
                check text against. Leave empty if not using custom blocklists
              type: array
              items:
                type: string
            severity_threshold:
              description: >-
                Minimum severity level (0-6) to flag content. Lower values are
                more restrictive (more content is blocked). 0=Safe, 2=Low risk,
                4=Medium risk, 6=High risk
              type: number
              default: 2
            categories:
              description: >-
                Types of harmful content to detect: Hate (hate speech), SelfHarm
                (self-injury), Sexual (sexual content), Violence (violent
                content)
              type: array
              items:
                $ref: '#/components/schemas/AzureContentSafetyCategory'
              default:
                - Hate
                - SelfHarm
                - Sexual
                - Violence
      title: AzureContentSafetyGuardrailConfig
      x-fern-type-name: AzureContentSafetyGuardrailConfig
    AzurePromptShieldGuardrailConfig:
      description: Azure Prompt Shield
      type: object
      required:
        - name
        - type
        - auth_data
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: Azure Prompt Shield for jailbreak and prompt injection detection
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/azure-prompt-shield
          type: string
          enum:
            - integration/guardrail-config/azure-prompt-shield
        auth_data:
          description: Authentication data for the Azure account
          type: object
          oneOf:
            - $ref: '#/components/schemas/AzureKeyAuth'
            - $ref: '#/components/schemas/AzureCertificateAuth'
            - $ref: '#/components/schemas/AzureClientSecretAuth'
            - $ref: '#/components/schemas/AzureWorkloadIdentityAuth'
          discriminator:
            propertyName: type
        operation:
          description: >-
            The operation type for this guardrail. Azure Prompt Shield
            guardrails can only be used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - resource_name
            - api_version
          properties:
            resource_name:
              description: >-
                Name of your Azure Content Safety resource where the Prompt
                Shield service is deployed (e.g., my-content-safety)
              type: string
            api_version:
              description: API version for the Prompt Shield API
              type: string
              default: '2024-09-01'
            custom_host:
              description: >-
                Custom endpoint URL for the Prompt Shield API (optional, uses
                default Azure endpoint if not specified)
              type: string
              pattern: ^(https?://)\S+$
      title: AzurePromptShieldGuardrailConfig
      x-fern-type-name: AzurePromptShieldGuardrailConfig
    EnkryptAIGuardrailConfig:
      description: Enkrypt AI
      type: object
      required:
        - name
        - type
        - auth_data
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: Enkrypt AI guardrails for content safety and policy enforcement
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/enkrypt-ai
          type: string
          enum:
            - integration/guardrail-config/enkrypt-ai
        auth_data:
          $ref: '#/components/schemas/EnkryptAIKeyAuth'
        operation:
          description: >-
            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.
          type: string
          enum:
            - validate
            - mutate
          default: validate
        priority:
          description: >-
            Execution order for mutate guardrails. Lower values run first. Only
            applicable when operation is mutate.
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - guardrail_name
          properties:
            guardrail_name:
              description: The name of the guardrail to use for the Enkrypt AI Guardrail.
              type: string
      title: EnkryptAIGuardrailConfig
      x-fern-type-name: EnkryptAIGuardrailConfig
    PaloAltoPrismaAIRSGuardrailConfig:
      description: Palo Alto Prisma AIRS
      type: object
      required:
        - name
        - type
        - auth_data
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: Palo Alto Prisma AIRS for AI security and content validation
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/palo-alto-prisma-airs
          type: string
          enum:
            - integration/guardrail-config/palo-alto-prisma-airs
        auth_data:
          $ref: '#/components/schemas/PaloAltoPrismaAIRSKeyAuth'
        operation:
          description: >-
            The operation type for this guardrail. Palo Alto Prisma AIRS
            guardrails can only be used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - profile_name
          properties:
            base_url:
              description: >-
                Optional override for the base URL for Palo Alto Prisma AIRS.
                Defaults to
                https://service.api.aisecurity.paloaltonetworks.com/v1/ if not
                provided.
              type: string
              pattern: ^\S+$
            profile_name:
              description: The profile name associated with this Guardrail Config.
              type: string
            mode:
              description: >-
                Execution mode for the guardrail. Sync waits for the guardrail
                check to complete before proceeding. Async triggers the check
                without waiting. Defaults to sync.
              type: string
              enum:
                - sync
                - async
              default: sync
            metadata_key_mapping:
              description: >-
                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)
              type: object
              additionalProperties:
                type: string
      title: PaloAltoPrismaAIRSGuardrailConfig
      x-fern-type-name: PaloAltoPrismaAIRSGuardrailConfig
    FiddlerGuardrailConfig:
      description: Fiddler
      type: object
      required:
        - name
        - type
        - auth_data
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: >-
            Fiddler for harmful content detection or response faithfulness
            checks
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/fiddler
          type: string
          enum:
            - integration/guardrail-config/fiddler
        auth_data:
          $ref: '#/components/schemas/FiddlerKeyAuth'
        operation:
          description: >-
            The operation type for this guardrail. Fiddler guardrails can only
            be used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - guard_type
          properties:
            guard_type:
              $ref: '#/components/schemas/FiddlerGuardType'
            threshold:
              description: >-
                Confidence threshold (0.0-1.0) for flagging content. Content
                scoring above the threshold will be flagged
              type: number
              minimum: 0
              maximum: 1
      title: FiddlerGuardrailConfig
      x-fern-type-name: FiddlerGuardrailConfig
    CrowdStrikeAIDRGuardrailConfig:
      description: CrowdStrike AIDR
      type: object
      required:
        - name
        - type
        - auth_data
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: CrowdStrike AIDR AI Guard for content security and PII protection
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/crowdstrike-aidr
          type: string
          enum:
            - integration/guardrail-config/crowdstrike-aidr
        auth_data:
          $ref: '#/components/schemas/CrowdStrikeAIDRKeyAuth'
        operation:
          description: >-
            The operation type to use for the Guardrail. Validate guardrails
            check for blocked content. Mutate guardrails additionally redact
            sensitive content (PII) and support unredaction on output.
          type: string
          enum:
            - validate
            - mutate
          default: validate
        priority:
          description: >-
            Execution order for mutate guardrails. Lower values run first. Only
            applicable when operation is mutate.
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          properties:
            base_url:
              description: >-
                The CrowdStrike API base URL for AIDR. Varies by region: US-1
                (https://api.crowdstrike.com/aidr/aiguard), US-2
                (https://api.us-2.crowdstrike.com/aidr/aiguard), EU-1
                (https://api.eu-1.crowdstrike.com/aidr/aiguard).
              type: string
              pattern: ^https?:\/\/\S+$
      title: CrowdStrikeAIDRGuardrailConfig
      x-fern-type-name: CrowdStrikeAIDRGuardrailConfig
    PatronusGuardrailConfig:
      description: Patronus
      type: object
      required:
        - name
        - type
        - auth_data
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: >-
            Patronus evaluators for relevance, safety, PII, PHI, toxicity, and
            more
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/patronus
          type: string
          enum:
            - integration/guardrail-config/patronus
        auth_data:
          $ref: '#/components/schemas/PatronusKeyAuth'
        operation:
          description: >-
            The operation type for this guardrail. Patronus guardrails can only
            be used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - target
            - evaluators
          properties:
            target:
              description: >-
                Where to apply evaluation: request (evaluate user input) or
                response (evaluate model response)
              type: string
              enum:
                - response
                - request
              default: response
            evaluators:
              description: >-
                Patronus evaluators guard against GenAI failures by checking for
                evaluation criteria, refer to
                [docs](https://docs.patronus.ai/docs/evaluators/reference_guide)
              type: array
              items:
                $ref: '#/components/schemas/PatronusEvaluator'
      title: PatronusGuardrailConfig
      x-fern-type-name: PatronusGuardrailConfig
    SecretDetectionGuardrailConfig:
      description: Secrets Detection
      type: object
      required:
        - name
        - type
        - operation
        - enforcing_strategy
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: >-
            Detects likely credentials/secrets (AWS keys, API keys, JWT tokens,
            private keys)
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/secret-detection
          type: string
          enum:
            - integration/guardrail-config/secret-detection
        operation:
          description: >-
            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.
          type: string
          enum:
            - validate
            - mutate
          default: validate
        priority:
          description: >-
            Execution order for mutate guardrails. Lower values run first. Only
            applicable when operation is mutate.
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          properties:
            redaction_text:
              description: >-
                Text to use when redacting detected secrets in logs and error
                messages. Defaults to '[REDACTED]'.Only applicable in mutate
                mode.
              type: string
              default: '[REDACTED]'
      title: SecretDetectionGuardrailConfig
      x-fern-type-name: SecretDetectionGuardrailConfig
    CodeSafetyLinterGuardrailConfig:
      description: Code Safety Linter
      type: object
      required:
        - name
        - type
        - operation
        - enforcing_strategy
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: >-
            Detects unsafe code patterns in tool outputs (eval, exec, os.system,
            subprocess, rm -rf)
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/code-safety-linter
          type: string
          enum:
            - integration/guardrail-config/code-safety-linter
        operation:
          description: >-
            The operation type for this guardrail. Code Safety Linter guardrails
            can only be used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
      title: CodeSafetyLinterGuardrailConfig
      x-fern-type-name: CodeSafetyLinterGuardrailConfig
    SQLSanitizerGuardrailConfig:
      description: SQL Sanitizer
      type: object
      required:
        - name
        - type
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: >-
            Detects and sanitizes risky SQL patterns (DROP, TRUNCATE,
            DELETE/UPDATE without WHERE, string interpolation)
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/sql-sanitizer
          type: string
          enum:
            - integration/guardrail-config/sql-sanitizer
        operation:
          description: >-
            Validate (detect and block) or Mutate (detect, sanitize comments,
            and continue).
          type: string
          enum:
            - validate
            - mutate
          default: validate
        priority:
          description: >-
            Execution order for mutate guardrails. Lower values run first. Only
            applicable when operation is mutate.
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          type: object
          properties:
            block_drop:
              description: Block SQL DROP statements as dangerous operations.
              type: boolean
              default: true
            block_truncate:
              description: Block SQL TRUNCATE statements as dangerous operations.
              type: boolean
              default: true
            block_alter:
              description: Block SQL ALTER statements as dangerous operations.
              type: boolean
              default: true
            block_grant:
              description: Block SQL GRANT statements as dangerous operations.
              type: boolean
              default: true
            block_revoke:
              description: Block SQL REVOKE statements as dangerous operations.
              type: boolean
              default: true
            strip_comments:
              description: >-
                Remove SQL comments (-- and block comments) from queries. In
                mutate mode, comments are stripped from the output.
              type: boolean
              default: true
            block_delete_without_where:
              description: >-
                Flag DELETE FROM statements that lack a WHERE clause as
                potentially dangerous.
              type: boolean
              default: true
            block_update_without_where:
              description: >-
                Flag UPDATE statements that lack a WHERE clause as potentially
                dangerous.
              type: boolean
              default: true
            require_parameterization:
              description: >-
                Detect naive string interpolation patterns (+, %., {}) that may
                indicate SQL injection vulnerabilities.
              type: boolean
              default: false
      title: SQLSanitizerGuardrailConfig
      x-fern-type-name: SQLSanitizerGuardrailConfig
    RegexGuardrailConfig:
      description: Regex Pattern Match
      type: object
      required:
        - name
        - type
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: Regex pattern matching for content filtering or redaction
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/regex
          type: string
          enum:
            - integration/guardrail-config/regex
        operation:
          description: >-
            Validate blocks when pattern matches. Mutate replaces matched text
            and continues.
          type: string
          enum:
            - validate
            - mutate
          default: validate
        priority:
          description: >-
            Execution order for mutate guardrails. Lower values run first. Only
            applicable when operation is mutate.
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          properties:
            preset_patterns:
              $ref: '#/components/schemas/PresetRegexPattern'
            custom_patterns:
              description: >-
                Enter your own regex patterns to match against content, each
                with its own redaction text (used in mutate mode).
              type: array
              items:
                $ref: '#/components/schemas/CustomRegexPattern'
      title: RegexGuardrailConfig
      x-fern-type-name: RegexGuardrailConfig
    TfyContentModerationGuardrailConfig:
      description: Content Moderation
      type: object
      required:
        - name
        - type
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: Content moderation guardrail, managed by TrueFoundry
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/tfy-content-moderation
          type: string
          enum:
            - integration/guardrail-config/tfy-content-moderation
        operation:
          description: >-
            The operation type for this guardrail. TrueFoundry Content
            Moderation guardrails can only be used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - severity_threshold
            - categories
          properties:
            severity_threshold:
              description: >-
                Minimum severity level (0-6) to flag content. Lower values are
                more restrictive (more content is blocked). 0=Safe, 2=Low risk,
                4=Medium risk, 6=High risk
              type: number
              default: 2
            categories:
              description: >-
                Types of harmful content to detect: Hate (hate speech), SelfHarm
                (self-injury), Sexual (sexual content), Violence (violent
                content)
              type: array
              items:
                $ref: '#/components/schemas/AzureContentSafetyCategory'
              default:
                - Hate
                - SelfHarm
                - Sexual
                - Violence
      title: TfyContentModerationGuardrailConfig
      x-fern-type-name: TfyContentModerationGuardrailConfig
    TfyPIIGuardrailConfig:
      description: PII/PHI
      type: object
      required:
        - name
        - type
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: PII detection and redaction guardrail, managed by TrueFoundry
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/tfy-pii
          type: string
          enum:
            - integration/guardrail-config/tfy-pii
        operation:
          description: >-
            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.
          type: string
          enum:
            - mutate
            - validate
          default: mutate
        priority:
          description: Execution order for mutate guardrails. Lower values run first.
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - pii_categories
          properties:
            pii_categories:
              description: Categories of PII to detect.
              type: array
              items:
                $ref: '#/components/schemas/AzurePIICategory'
              default:
                - '*'
      title: TfyPIIGuardrailConfig
      x-fern-type-name: TfyPIIGuardrailConfig
    TfyPromptInjectionGuardrailConfig:
      description: Prompt Injection
      type: object
      required:
        - name
        - type
        - operation
        - enforcing_strategy
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: Prompt injection guardrail, managed by TrueFoundry
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/tfy-prompt-injection
          type: string
          enum:
            - integration/guardrail-config/tfy-prompt-injection
        operation:
          description: >-
            The operation type for this guardrail. TrueFoundry Prompt Shield
            guardrails can only be used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
      title: TfyPromptInjectionGuardrailConfig
      x-fern-type-name: TfyPromptInjectionGuardrailConfig
    TfyMetadataGuardrailConfig:
      description: Request Metadata validation
      type: object
      required:
        - name
        - type
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: Lowercase letters, digits, and hyphens. 3 to 36 characters.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: What does this guardrail enforce?
          type: string
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/tfy-metadata
          type: string
          enum:
            - integration/guardrail-config/tfy-metadata
        operation:
          description: >-
            The operation type for this guardrail. Metadata Validation
            guardrails can only be used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - allow_unknown_keys
            - keys
          properties:
            allow_unknown_keys:
              description: Allow keys not mentioned in the spec
              type: boolean
              default: true
            keys:
              description: Conditions on keys present in the `x-tfy-metadata` header.
              type: object
              additionalProperties:
                $ref: '#/components/schemas/KeySpec'
      title: TfyMetadataGuardrailConfig
      x-fern-type-name: TfyMetadataGuardrailConfig
    CedarGuardrailConfig:
      description: Cedar
      type: object
      required:
        - name
        - type
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: Enforces access control policies using Cedar policy language
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/cedar
          type: string
          enum:
            - integration/guardrail-config/cedar
        operation:
          description: >-
            The operation type for this guardrail. Cedar guardrails can only be
            used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - policy
          properties:
            policy:
              description: >-
                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)
              type: string
      title: CedarGuardrailConfig
      x-fern-type-name: CedarGuardrailConfig
    OPAGuardrailConfig:
      description: OPA
      type: object
      required:
        - name
        - type
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: >-
            Open Policy Agent (OPA) for policy-based access control and
            validation
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/opa
          type: string
          enum:
            - integration/guardrail-config/opa
        auth_data:
          $ref: '#/components/schemas/OPAAuth'
        operation:
          description: >-
            The operation type for this guardrail. OPA guardrails can only be
            used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - opa_url
            - policy_path
          properties:
            opa_url:
              description: >-
                The base URL of the OPA server (e.g.,
                https://opa.example.com:8181). The policy will be queried at
                {opa_url}/v1/data/{policy_path}.
              type: string
              pattern: ^https?:\/\/[^\s\/]+(\/[^\s\/]*)*[^\/\s]?$
            policy_path:
              description: >-
                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}.
              type: string
              pattern: ^[a-zA-Z_][a-zA-Z0-9_]*(\/[a-zA-Z_][a-zA-Z0-9_]*)*$
      title: OPAGuardrailConfig
      x-fern-type-name: OPAGuardrailConfig
    GoogleModelArmorGuardrailConfig:
      description: Google Model Armor
      type: object
      required:
        - name
        - type
        - auth_data
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: >-
            Google Cloud Model Armor for prompt injection, harmful content, PII,
            and malicious URI detection
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/google-model-armor
          type: string
          enum:
            - integration/guardrail-config/google-model-armor
        auth_data:
          description: Authentication credentials for Google Cloud Model Armor
          type: object
          oneOf:
            - $ref: '#/components/schemas/GoogleModelArmorApiKeyAuth'
            - $ref: '#/components/schemas/GoogleModelArmorKeyFileAuth'
          discriminator:
            propertyName: type
        operation:
          description: >-
            The operation type to use for the Guardrail. Validate guardrails are
            used to validate requests and mutate can validate as well as mutate
            requests.
          type: string
          enum:
            - validate
            - mutate
          default: validate
        priority:
          description: >-
            Execution order for mutate guardrails. Lower values run first. Only
            applicable when operation is mutate.
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - project_id
            - location
            - template_id
          properties:
            project_id:
              description: The Google Cloud project ID where Model Armor is enabled
              type: string
              pattern: ^\S+$
            location:
              $ref: '#/components/schemas/GCPRegion'
            template_id:
              description: >-
                The Model Armor template name that defines which filters and
                confidence thresholds to apply (e.g. my-template)
              type: string
              pattern: ^\S+$
      title: GoogleModelArmorGuardrailConfig
      x-fern-type-name: GoogleModelArmorGuardrailConfig
    GraySwanCygnalGuardrailConfig:
      description: GraySwan Cygnal
      type: object
      required:
        - name
        - type
        - auth_data
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: GraySwan Cygnal for policy violation and content safety monitoring
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/grayswan-cygnal
          type: string
          enum:
            - integration/guardrail-config/grayswan-cygnal
        auth_data:
          $ref: '#/components/schemas/GraySwanCygnalApiKeyAuth'
        operation:
          description: >-
            The operation type for this guardrail. GraySwan Cygnal guardrails
            can only be used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - reasoning_mode
          properties:
            base_url:
              description: >-
                Optional override for the Cygnal monitor endpoint. Defaults to
                https://api.grayswan.ai/cygnal/monitor if not provided.
              type: string
              pattern: ^\S+$
            policy_ids:
              description: >-
                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)
              type: array
              items:
                type: string
            rules:
              description: >-
                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)
              type: object
              additionalProperties:
                type: string
            reasoning_mode:
              description: >-
                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.
              type: string
              enum:
                - 'off'
                - hybrid
                - thinking
              default: 'off'
      title: GraySwanCygnalGuardrailConfig
      x-fern-type-name: GraySwanCygnalGuardrailConfig
    AktoGuardrailConfig:
      description: Akto
      type: object
      required:
        - name
        - type
        - auth_data
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: >-
            Akto guardrail for LLM security, prompt injection detection, and
            policy violation monitoring
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/akto
          type: string
          enum:
            - integration/guardrail-config/akto
        auth_data:
          $ref: '#/components/schemas/AktoTokenAuth'
        operation:
          description: >-
            The operation type for this guardrail. Akto guardrails can only be
            used for validation.
          type: string
          enum:
            - validate
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - base_url
          properties:
            base_url:
              description: >-
                The base URL of the Akto guardrails service (e.g.
                https://your-akto-host:port)
              type: string
              pattern: ^https?:\/\/\S+$
      title: AktoGuardrailConfig
      x-fern-type-name: AktoGuardrailConfig
    TrojAIGuardrailConfig:
      description: TrojAI
      type: object
      required:
        - name
        - type
        - auth_data
        - operation
        - enforcing_strategy
        - config
      properties:
        name:
          description: The name of the Guardrail Config.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        description:
          description: Optional description for this Guardrail Config.
          type: string
          default: TrojAI DEFEND firewall for real-time AI security
        type:
          description: |-
            +uiType=Hidden
            +value=integration/guardrail-config/trojai
          type: string
          enum:
            - integration/guardrail-config/trojai
        auth_data:
          $ref: '#/components/schemas/TrojAIClientIdAuth'
        operation:
          description: >-
            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.
          type: string
          enum:
            - validate
            - mutate
          default: validate
        priority:
          description: >-
            Execution order for mutate guardrails. Lower values run first. Only
            applicable when operation is mutate.
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        enforcing_strategy:
          $ref: '#/components/schemas/EnforcingStrategy'
        config:
          description: |-
            +uiType=Ignore
            +uiProps={"forwardJsonKey": true}
          type: object
          required:
            - base_url
          properties:
            base_url:
              description: >-
                The base URL of the TrojAI firewall (e.g.
                https://your-trojai-firewall-host)
              type: string
              pattern: ^https?:\/\/\S+$
      title: TrojAIGuardrailConfig
      x-fern-type-name: TrojAIGuardrailConfig
    BuildSecret:
      type: object
      required:
        - id
        - value
      properties:
        id:
          description: The ID of the build secret.
          type: string
          pattern: ^\S+$
        value:
          description: The value of the build secret.
          type: string
        env:
          description: The name of the environment variable to inject the secret into.
          type: string
          pattern: ^[_a-zA-Z0-9][_a-zA-Z0-9]{1,31}$
      title: BuildSecret
      x-fern-type-name: BuildSecret
    Pip:
      description: Use pip to install requirements files and packages
      type: object
      required:
        - type
      properties:
        type:
          description: +value=pip
          type: string
          enum:
            - pip
        requirements_path:
          description: Path to `requirements.txt` relative to `Path to build context`
          type: string
        pip_packages:
          description: |-
            Define pip package requirements.
            In Python/YAML E.g. ["fastapi>=0.90,<1.0", "uvicorn"]
          type: array
          items:
            type: string
      title: Pip
      x-fern-type-name: Pip
    UV:
      description: |-
        Use `uv` to setup env.
        Your build context root must contain `pyproject.toml` and `uv.lock`
      type: object
      required:
        - type
      properties:
        type:
          description: +value=uv
          type: string
          enum:
            - uv
        uv_version:
          description: UV version to use
          type: string
          default: latest
        sync_options:
          description: Sync options to pass to uv command
          type: string
      title: UV
      x-fern-type-name: UV
    Poetry:
      description: |-
        Use `poetry` to setup env.
        Your build context root must contain `pyproject.toml` and `poetry.lock`
      type: object
      required:
        - type
      properties:
        type:
          description: +value=poetry
          type: string
          enum:
            - poetry
        poetry_version:
          description: Poetry version to use
          type: string
          default: latest
          oneOf:
            - enum:
                - latest
            - pattern: ^\d+(\.\d+){1,2}([\-\.a-z0-9]+)?$
        install_options:
          description: install options to pass to poetry command
          type: string
      title: Poetry
      x-fern-type-name: Poetry
    TruefoundryFlyteTaskTemplate:
      type: object
      required:
        - id
        - custom
      properties:
        id:
          $ref: '#/components/schemas/FlyteTaskID'
        custom:
          $ref: '#/components/schemas/FlyteTaskCustom'
      title: TruefoundryFlyteTaskTemplate
      x-fern-type-name: TruefoundryFlyteTaskTemplate
    NativeSnowflakeFlyteTaskTemplate:
      type: object
      required:
        - id
        - type
        - config
        - sql
      properties:
        id:
          $ref: '#/components/schemas/FlyteTaskID'
        type:
          type: string
          enum:
            - snowflake
        config:
          $ref: '#/components/schemas/SnowflakeConfig'
        sql:
          $ref: '#/components/schemas/SnowflakeSql'
      title: NativeSnowflakeFlyteTaskTemplate
      x-fern-type-name: NativeSnowflakeFlyteTaskTemplate
    FlyteWorkflowID:
      type: object
      required:
        - resourceType
        - name
      properties:
        resourceType:
          type: string
          enum:
            - WORKFLOW
        name:
          type: string
      title: FlyteWorkflowID
      x-fern-type-name: FlyteWorkflowID
    AwsSqsAccessKeyBasedAuth:
      description: AWS Access Key Based Auth
      type: object
      required:
        - type
        - access_key_id
        - secret_access_key
      properties:
        type:
          description: +value=access-key-based
          type: string
          enum:
            - access-key-based
        access_key_id:
          description: AWS access key ID that you want to use for authentication.
          type: string
          pattern: ^\S+$
        secret_access_key:
          description: AWS access key secret that you want to use for authentication.
          type: string
          pattern: ^\S+$
      title: AwsSqsAccessKeyBasedAuth
      x-fern-type-name: AwsSqsAccessKeyBasedAuth
    AwsSqsAssumedRoleBasedAuth:
      description: AWS Assumed Role Based Auth
      type: object
      required:
        - type
        - assumed_role_arn
      properties:
        type:
          description: +value=assumed-role-based
          type: string
          enum:
            - assumed-role-based
        assumed_role_arn:
          description: ARN of the role you want to assume.
          type: string
          pattern: ^arn:(aws|aws-us-gov|aws-cn):iam::[0-9]{12}:role(/[\w+=,.@-]+)+$
      title: AwsSqsAssumedRoleBasedAuth
      x-fern-type-name: AwsSqsAssumedRoleBasedAuth
    AWSAccessKeyAuth:
      type: object
      required:
        - aws_access_key_id
        - aws_secret_access_key
      properties:
        aws_access_key_id:
          description: AWS Access Key ID
          type: string
        aws_secret_access_key:
          description: AWS Secret Access Key for the user to authenticate with
          type: string
        aws_session_token:
          description: AWS Session Token, only required when using temporary credentials
          type: string
      title: AWSAccessKeyAuth
      x-fern-type-name: AWSAccessKeyAuth
    NATSUserPasswordAuth:
      description: NATS User Password Authentication
      type: object
      required:
        - account_name
        - user
        - password
      properties:
        account_name:
          description: Name of the NATS account
          type: string
          default: $G
        user:
          description: User for NATS authentication
          type: string
        password:
          description: Password for NATS authentication
          type: string
      title: NATSUserPasswordAuth
      x-fern-type-name: NATSUserPasswordAuth
    KafkaSASLAuth:
      type: object
      required:
        - username
        - password
      properties:
        username:
          description: Username for SASL authentication
          type: string
        password:
          description: Password for SASL authentication
          type: string
      title: KafkaSASLAuth
      x-fern-type-name: KafkaSASLAuth
    RateLimitWhen:
      description: Rule Conditions
      type: object
      properties:
        subjects:
          description: List of subjects that this rule applies to
          type: array
          items:
            type: string
        models:
          description: List of models that this rule applies to
          type: array
          items:
            type: string
        metadata:
          description: Metadata key-value pairs that this rule applies to
          type: object
          additionalProperties:
            type: string
      title: RateLimitWhen
      x-fern-type-name: RateLimitWhen
    RateLimitUnit:
      description: Unit for rate limit calculation
      type: string
      enum:
        - requests_per_day
        - tokens_per_minute
        - requests_per_minute
        - tokens_per_day
        - requests_per_hour
        - tokens_per_hour
      title: RateLimitUnit
      x-fern-type-name: RateLimitUnit
    WeightBasedLoadBalancingRule:
      description: Weight-based Load Balancing Rule
      type: object
      properties:
        id:
          description: Unique identifier for the rule
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-]{0,60}[a-zA-Z0-9])$
        when:
          $ref: '#/components/schemas/LoadBalancingWhen'
      allOf:
        - $ref: '#/components/schemas/WeightBasedLoadBalancing'
      required:
        - id
        - when
      title: WeightBasedLoadBalancingRule
      x-fern-type-name: WeightBasedLoadBalancingRule
    LatencyBasedLoadBalancingRule:
      description: Latency-based Load Balancing Rule
      type: object
      properties:
        id:
          description: Unique identifier for the rule
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-]{0,60}[a-zA-Z0-9])$
        when:
          $ref: '#/components/schemas/LoadBalancingWhen'
      allOf:
        - $ref: '#/components/schemas/LatencyBasedLoadBalancing'
      required:
        - id
        - when
      title: LatencyBasedLoadBalancingRule
      x-fern-type-name: LatencyBasedLoadBalancingRule
    PriorityBasedLoadBalancingRule:
      description: Priority-based Load Balancing Rule
      type: object
      properties:
        id:
          description: Unique identifier for the rule
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-]{0,60}[a-zA-Z0-9])$
        when:
          $ref: '#/components/schemas/LoadBalancingWhen'
      allOf:
        - $ref: '#/components/schemas/PriorityBasedLoadBalancing'
      required:
        - id
        - when
      title: PriorityBasedLoadBalancingRule
      x-fern-type-name: PriorityBasedLoadBalancingRule
    GuardrailsWhen:
      type: object
      properties:
        target:
          $ref: '#/components/schemas/TargetConditionGroup'
        subjects:
          $ref: '#/components/schemas/SubjectConditionGroup'
        metadata:
          type: object
          additionalProperties:
            type: string
      title: GuardrailsWhen
      x-fern-type-name: GuardrailsWhen
    BudgetWhen:
      description: Rule Conditions
      type: object
      properties:
        subjects:
          description: List of subjects that this rule applies to
          type: array
          items:
            type: string
        models:
          description: List of models that this rule applies to
          type: array
          items:
            type: string
        metadata:
          description: Metadata key-value pairs that this rule applies to
          type: object
          additionalProperties:
            type: string
      title: BudgetWhen
      x-fern-type-name: BudgetWhen
    BudgetLimitUnit:
      description: Unit for budget limit calculation
      type: string
      enum:
        - cost_per_day
        - cost_per_month
        - cost_per_week
        - cost_per_quarter
        - tokens_per_day
        - tokens_per_month
      title: BudgetLimitUnit
      x-fern-type-name: BudgetLimitUnit
    BudgetAlert:
      description: Budget Alert
      type: object
      required:
        - thresholds
        - notification_target
      properties:
        thresholds:
          description: >-
            List of usage percentages (0-100) at which alerts should be
            triggered. Default thresholds are [75, 90, 95, 100].
          type: array
          items:
            type: number
            minimum: 0
            maximum: 100
          default:
            - 75
            - 90
            - 95
            - 100
        notification_target:
          description: Select where to send budget alert notifications
          type: array
          items:
            $ref: '#/components/schemas/NotificationTarget'
      title: BudgetAlert
      x-fern-type-name: BudgetAlert
    BudgetV2SubjectsTenantScoped:
      description: Tenant Budget Subjects
      type: object
      properties:
        users:
          $ref: '#/components/schemas/BudgetV2InNotInFilter'
        teams:
          $ref: '#/components/schemas/BudgetV2InNotInFilter'
        virtual_accounts:
          $ref: '#/components/schemas/BudgetV2InNotInFilter'
      title: BudgetV2SubjectsTenantScoped
      x-fern-type-name: BudgetV2SubjectsTenantScoped
    BudgetV2InNotInFilter:
      description: In/Not-In Filter
      type: object
      properties:
        in:
          description: Match when the value is present in this list
          type: array
          items:
            type: string
        not_in:
          description: Match when the value is NOT present in this list
          type: array
          items:
            type: string
      title: BudgetV2InNotInFilter
      x-fern-type-name: BudgetV2InNotInFilter
    BudgetV2AppliesToAggregate:
      description: A single shared budget across every matching request.
      type: object
      required:
        - type
      properties:
        type:
          description: Applies To Type
          type: string
          enum:
            - aggregate
      title: BudgetV2AppliesToAggregate
      x-fern-type-name: BudgetV2AppliesToAggregate
    BudgetV2AppliesToPerUser:
      description: Track a separate budget for each unique user.
      type: object
      required:
        - type
      properties:
        type:
          description: Applies To Type
          type: string
          enum:
            - per-user
        overrides:
          description: Optional per-user limit overrides
          type: array
          items:
            $ref: '#/components/schemas/BudgetV2PerUserOverride'
      title: BudgetV2AppliesToPerUser
      x-fern-type-name: BudgetV2AppliesToPerUser
    BudgetV2AppliesToPerModel:
      description: Track a separate budget for each model.
      type: object
      required:
        - type
      properties:
        type:
          description: Applies To Type
          type: string
          enum:
            - per-model
        overrides:
          description: Optional per-model limit overrides
          type: array
          items:
            $ref: '#/components/schemas/BudgetV2PerModelOverride'
      title: BudgetV2AppliesToPerModel
      x-fern-type-name: BudgetV2AppliesToPerModel
    BudgetV2AppliesToPerVirtualAccount:
      description: Track a separate budget for each virtual account.
      type: object
      required:
        - type
      properties:
        type:
          description: Applies To Type
          type: string
          enum:
            - per-virtual-account
        overrides:
          description: Optional per-virtual-account limit overrides
          type: array
          items:
            $ref: '#/components/schemas/BudgetV2PerVirtualAccountOverride'
      title: BudgetV2AppliesToPerVirtualAccount
      x-fern-type-name: BudgetV2AppliesToPerVirtualAccount
    BudgetV2AppliesToMetadata:
      description: Track a separate budget for each unique value of a metadata key.
      type: object
      required:
        - type
        - metadata
      properties:
        type:
          description: Applies To Type
          type: string
          enum:
            - metadata
        metadata:
          description: Metadata key whose distinct values each get their own budget bucket
          type: string
        overrides:
          description: Optional per-metadata-value limit overrides
          type: array
          items:
            $ref: '#/components/schemas/BudgetV2PerMetadataOverride'
      title: BudgetV2AppliesToMetadata
      x-fern-type-name: BudgetV2AppliesToMetadata
    BudgetV2SubjectsTeamScoped:
      description: Team Budget Subjects
      type: object
      properties:
        users:
          $ref: '#/components/schemas/BudgetV2InNotInFilter'
        virtual_accounts:
          $ref: '#/components/schemas/BudgetV2InNotInFilter'
      title: BudgetV2SubjectsTeamScoped
      x-fern-type-name: BudgetV2SubjectsTeamScoped
    OTELExporterHttpConfigBase:
      description: Base HTTP exporter fields (without type discriminator)
      type: object
      required:
        - endpoint
        - encoding
      properties:
        endpoint:
          description: Endpoint URL where OpenTelemetry data will be sent
          type: string
        encoding:
          description: Encoding for OpenTelemetry data
          type: string
          enum:
            - proto
            - json
          default: proto
        headers:
          description: HTTP headers to include in OpenTelemetry export requests
          type: object
          additionalProperties:
            type: string
      title: OTELExporterHttpConfigBase
      x-fern-type-name: OTELExporterHttpConfigBase
    OTELTracesExporterCommonConfig:
      description: Common fields shared by HTTP and gRPC exporter configs
      type: object
      properties:
        additional_resource_attributes:
          description: >-
            Set additional attributes to append them to existing resource
            attributes of every exported trace
          type: object
          additionalProperties:
            type: string
        exclude_request_data:
          description: >-
            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
          type: boolean
        when:
          description: >-
            Export spans only when they match all of the following filters. Only
            matching on spanAttributes with string values in supported.
          type: array
          items:
            $ref: '#/components/schemas/OTELTracesExporterSpanAttributeFilter'
      title: OTELTracesExporterCommonConfig
      x-fern-type-name: OTELTracesExporterCommonConfig
    OTELExporterGrpcConfigBase:
      description: Base gRPC exporter fields (without type discriminator)
      type: object
      required:
        - endpoint
      properties:
        endpoint:
          description: Endpoint URL where OpenTelemetry data will be sent
          type: string
        headers:
          description: gRPC metadata to include in OpenTelemetry export requests
          type: object
          additionalProperties:
            type: string
      title: OTELExporterGrpcConfigBase
      x-fern-type-name: OTELExporterGrpcConfigBase
    GatewayMetadataWhen:
      description: Rule Conditions
      type: object
      properties:
        subjects:
          description: List of subjects that this rule applies to
          type: array
          items:
            type: string
      title: GatewayMetadataWhen
      x-fern-type-name: GatewayMetadataWhen
    GatewayLoggingWhen:
      description: Rule Conditions
      type: object
      properties:
        subjects:
          description: List of subjects that this rule applies to
          type: array
          items:
            type: string
      title: GatewayLoggingWhen
      x-fern-type-name: GatewayLoggingWhen
    LoggingModeAlways:
      description: >-
        Enable this mode to log request and response bodies for all incoming
        gateway requests, ignoring request headers. Use it for in-depth logging
        required for debugging, compliance, or auditing.
      type: object
      required:
        - type
      properties:
        type:
          description: +value=always
          type: string
          enum:
            - always
      title: LoggingModeAlways
      x-fern-type-name: LoggingModeAlways
    LoggingModeNever:
      description: >-
        Enable this mode to disable request and response body logging for all
        gateway requests, regardless of headers. Request metadata and headers
        are still logged, but body content is excluded.
      type: object
      required:
        - type
      properties:
        type:
          description: +value=never
          type: string
          enum:
            - never
      title: LoggingModeNever
      x-fern-type-name: LoggingModeNever
    LoggingModeHeaderControlled:
      description: >-
        Enable this mode to allow per-request control of request body logging
        via HTTP headers. Individual requests can opt in or opt out of body
        logging using specific headers.
      type: object
      required:
        - type
        - log_body_by_default
      properties:
        type:
          description: +value=header_controlled
          type: string
          enum:
            - header_controlled
        log_body_by_default:
          description: >-
            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.
          type: boolean
      title: LoggingModeHeaderControlled
      x-fern-type-name: LoggingModeHeaderControlled
    OwnDataAccessRule:
      description: Own Data
      type: object
      properties:
        scope:
          description: Data access scope - access to own data only
          type: string
          enum:
            - own_data
      allOf:
        - $ref: '#/components/schemas/DataAccessRuleBase'
      required:
        - scope
      title: OwnDataAccessRule
      x-fern-type-name: OwnDataAccessRule
    TeamDataAccessRule:
      description: Team Data
      type: object
      properties:
        scope:
          description: >-
            Data access scope - access to team data including owned virtual
            accounts
          type: string
          enum:
            - team_data
      allOf:
        - $ref: '#/components/schemas/DataAccessRuleBase'
      required:
        - scope
      title: TeamDataAccessRule
      x-fern-type-name: TeamDataAccessRule
    AllDataAccessRule:
      description: All Data
      type: object
      properties:
        scope:
          description: Data access scope - access to all data with optional filters
          type: string
          enum:
            - all_data
        filters:
          description: >-
            Optional filters to restrict data access (only applicable for
            all_data scope)
          type: array
          items:
            type: object
            oneOf:
              - $ref: '#/components/schemas/GatewayDataMetadataFilter'
              - $ref: '#/components/schemas/GatewayDataCreatedByFilter'
      allOf:
        - $ref: '#/components/schemas/DataAccessRuleBase'
      required:
        - scope
      title: AllDataAccessRule
      x-fern-type-name: AllDataAccessRule
    GatewayDataRoutingConfigDestinationCondition:
      description: +discriminator=field
      type: object
      oneOf:
        - $ref: >-
            #/components/schemas/GatewayDataRoutingConfigDestinationMetadataCondition
        - $ref: >-
            #/components/schemas/GatewayDataRoutingConfigDestinationCreatedByCondition
      discriminator:
        propertyName: field
      title: GatewayDataRoutingConfigDestinationCondition
      x-fern-type-name: GatewayDataRoutingConfigDestinationCondition
    GatewayDataRoutingConfigDestinationControlPlaneManagedStorage:
      description: Managed Storage in Control-Plane.
      type: object
      required:
        - type
      properties:
        type:
          description: Type of storage configuration
          type: string
          enum:
            - controlplane-managed
        region:
          description: Specifies the region where control plane–managed storage is located.
          type: string
          enum:
            - us
            - australia
            - india
      title: GatewayDataRoutingConfigDestinationControlPlaneManagedStorage
      x-fern-type-name: GatewayDataRoutingConfigDestinationControlPlaneManagedStorage
    GatewayDataRoutingConfigDestinationCustomerManagedStorage:
      description: Bring your own storage.
      type: object
      required:
        - type
        - storage_integration_fqn
      properties:
        type:
          description: Type of storage configuration
          type: string
          enum:
            - customer-managed
        storage_integration_fqn:
          description: >-
            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.
          type: string
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9._:-]*[a-zA-Z0-9]$
      title: GatewayDataRoutingConfigDestinationCustomerManagedStorage
      x-fern-type-name: GatewayDataRoutingConfigDestinationCustomerManagedStorage
    TrueFoundryAgentModelParams:
      type: object
      properties:
        max_tokens:
          description: Maximum number of tokens to generate.
          type: integer
          minimum: 0
        reasoning_effort:
          description: Reasoning depth when the model and provider support this parameter.
          type: string
        temperature:
          description: Sampling temperature (0–2). Higher values increase randomness.
          type: number
          minimum: 0
          maximum: 2
        top_p:
          description: Nucleus sampling threshold (0–1). Alternative to temperature.
          type: number
          minimum: 0
          maximum: 1
        top_k:
          description: Top-K sampling when supported by the provider.
          type: integer
          minimum: 0
        parallel_tool_calls:
          description: >-
            Allow the model to request multiple tool calls in parallel when
            supported.
          type: boolean
      title: TrueFoundryAgentModelParams
      x-fern-type-name: TrueFoundryAgentModelParams
    ResponseFormatText:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - text
      title: ResponseFormatText
      x-fern-type-name: ResponseFormatText
    ResponseFormatJSONSchema:
      type: object
      required:
        - type
        - json_schema
      properties:
        type:
          type: string
          enum:
            - json_schema
        json_schema:
          type: object
          required:
            - name
          properties:
            name:
              type: string
            description:
              type: string
            schema:
              type: object
            strict:
              type: boolean
      title: ResponseFormatJSONSchema
      x-fern-type-name: ResponseFormatJSONSchema
    ResponseFormatJSONObject:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - json_object
      title: ResponseFormatJSONObject
      x-fern-type-name: ResponseFormatJSONObject
    TrueFoundryAgentSandboxConfig:
      type: object
      required:
        - enabled
      properties:
        enabled:
          type: boolean
          default: true
        file_downloads:
          type: boolean
          default: true
      title: TrueFoundryAgentSandboxConfig
      x-fern-type-name: TrueFoundryAgentSandboxConfig
    TrueFoundryAgentDynamicSubAgentsConfig:
      type: object
      required:
        - enabled
      properties:
        enabled:
          type: boolean
          default: true
      title: TrueFoundryAgentDynamicSubAgentsConfig
      x-fern-type-name: TrueFoundryAgentDynamicSubAgentsConfig
    TrueFoundryAgentContextManagementConfig:
      type: object
      properties:
        compaction:
          $ref: '#/components/schemas/TrueFoundryAgentCompactionConfig'
        large_tool_response:
          $ref: '#/components/schemas/TrueFoundryAgentLargeToolResponseConfig'
      title: TrueFoundryAgentContextManagementConfig
      x-fern-type-name: TrueFoundryAgentContextManagementConfig
    TrueFoundryAgentGenerativeUIConfig:
      type: object
      required:
        - enabled
      properties:
        enabled:
          type: boolean
          default: true
      title: TrueFoundryAgentGenerativeUIConfig
      x-fern-type-name: TrueFoundryAgentGenerativeUIConfig
    TrueFoundryAgentAskUserQuestionsConfig:
      type: object
      required:
        - enabled
      properties:
        enabled:
          type: boolean
          default: true
      title: TrueFoundryAgentAskUserQuestionsConfig
      x-fern-type-name: TrueFoundryAgentAskUserQuestionsConfig
    CustomAgentServerAuth:
      type: object
      oneOf:
        - $ref: '#/components/schemas/CustomServerHeaderAuth'
        - $ref: '#/components/schemas/CustomServerPassthrough'
      title: CustomAgentServerAuth
      x-fern-type-name: CustomAgentServerAuth
    AgentFramework:
      description: +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/A2AFramework'
        - $ref: '#/components/schemas/CustomFramework'
      discriminator:
        propertyName: type
      title: AgentFramework
      x-fern-type-name: AgentFramework
    BaseRemoteAgent:
      type: object
      required:
        - name
        - description
        - collaborators
      properties:
        name:
          description: The name of the Agent
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,30}[a-z0-9]$
        description:
          description: The description of the Agent
          type: string
          maxLength: 2000
        tags:
          description: Tags for the Agent
          type: object
        collaborators:
          description: List of users who have access to this Agent
          type: array
          items:
            $ref: '#/components/schemas/Collaborator'
        ownedBy:
          $ref: '#/components/schemas/OwnedBy'
      title: BaseRemoteAgent
      x-fern-type-name: BaseRemoteAgent
    PromptSource:
      description: Prompt
      type: object
      required:
        - type
        - prompt_version_fqn
      properties:
        type:
          description: Type of agent source
          type: string
          enum:
            - prompt
        prompt_version_fqn:
          description: >-
            Fully qualified name of the prompt version to use as the agent
            source
          type: string
        skills:
          description: List of skills associated with the agent
          type: array
          items:
            $ref: '#/components/schemas/A2AAgentSkill'
      title: PromptSource
      x-fern-type-name: PromptSource
    HostedA2AAgent:
      description: Hosted A2A Agent
      type: object
      required:
        - type
        - agent_card_url
      properties:
        type:
          description: Type of agent source
          type: string
          enum:
            - hosted-a2a-agent
        agent_card_url:
          description: Agent Card URL for the A2A Agent
          type: string
        headers:
          description: >-
            Headers to be sent with the request to the hosted A2A agent.
            Primarily used for authentication.
          type: object
          additionalProperties:
            type: string
      title: HostedA2AAgent
      x-fern-type-name: HostedA2AAgent
    MCPToolAnnotations:
      description: MCP Tool Annotations
      type: object
      properties:
        readOnlyHint:
          description: Indicates the tool only reads data and does not modify anything.
          type: boolean
        destructiveHint:
          description: Indicates the tool may perform destructive updates.
          type: boolean
      title: MCPToolAnnotations
      x-fern-type-name: MCPToolAnnotations
    MCPServerHeaderAuth:
      description: >-
        Authenticate using a static key or token sent as a request header.
        Choose shared vs individual credentials below.
      type: object
      required:
        - type
        - headers
        - auth_level
      properties:
        type:
          description: +value=header
          type: string
          enum:
            - header
        headers:
          description: >-
            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}}).
          type: object
          additionalProperties:
            type: string
        auth_level:
          description: >-
            Level at which this authentication will be applied. Values: global
            (default), per_user
          type: string
          enum:
            - global
            - per_user
          default: global
      title: MCPServerHeaderAuth
      x-fern-type-name: MCPServerHeaderAuth
    MCPServerOAuth2:
      description: OAuth2
      type: object
      properties:
        type:
          description: OAuth2 authentication
          type: string
          enum:
            - oauth2
        grant_type:
          description: The OAuth2 grant type to use for authentication.
          type: string
          enum:
            - authorization_code
            - client_credentials
          default: authorization_code
        authorization_url:
          description: URL for the authorization request
          type: string
          pattern: >-
            ^https:\/\/(([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z]{2,63})(:[0-9]{1,5})?(\/[^\s]*)?$
        token_url:
          description: The endpoint to exchange auth code for tokens.
          type: string
          pattern: >-
            ^https:\/\/(([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z]{2,63})(:[0-9]{1,5})?(\/[^\s]*)?$
        client_id:
          description: >-
            client ID for OAuth2 or the TrueFoundry secret FQN containing the
            client ID.
          type: string
          pattern: ^\S+$
        client_secret:
          description: >-
            Client secret or the TrueFoundry secret FQN containing the client
            secret for OAuth2.
          type: string
          minLength: 1
        registration_url:
          description: >-
            URL for dynamic client registration (RFC 7591). If provided, client
            credentials will be obtained automatically using the Dynamic Client
            Registration (DCR) process.
          type: string
          pattern: >-
            ^https:\/\/(([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z]{2,63})(:[0-9]{1,5})?(\/[^\s]*)?$
        introspection_url:
          description: >-
            URL to fetch token expiry (RFC 7662) when the provider does not
            return expires_in (e.g. Salesforce). Requires client_id and
            client_secret.
          type: string
          pattern: >-
            ^https:\/\/(([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z]{2,63})(:[0-9]{1,5})?(\/[^\s]*)?$
        provider:
          description: >-
            Select the OAuth provider when provider-specific configuration is
            required.
          type: string
          enum:
            - auth0
        code_challenge_methods_supported:
          description: List of supported PKCE code challenge methods (S256 only)
          type: array
          items:
            type: string
            enum:
              - S256
        jwt_source:
          description: Source of the JWT token to be used for verification.
          type: string
          enum:
            - access_token
            - id_token
          default: access_token
        scopes:
          description: List of scopes to request from the OAuth2 provider.
          type: array
          items:
            type: string
            minLength: 1
        additional_token_params:
          description: >-
            Extra key/value pairs sent on every token endpoint request (e.g.
            Auth0 'audience').
          type: object
          additionalProperties:
            type: string
      allOf:
        - $ref: '#/components/schemas/MCPServerOAuth2ProviderAuth0Settings'
      required:
        - type
        - grant_type
        - token_url
        - jwt_source
      title: MCPServerOAuth2
      x-fern-type-name: MCPServerOAuth2
    MCPServerPassthrough:
      description: >-
        Authenticate using your existing TrueFoundry account (PAT or Virtual
        Accounts). Your credentials are automatically passed to the MCP server.
      type: object
      required:
        - type
      properties:
        type:
          description: +value=passthrough
          type: string
          enum:
            - passthrough
      title: MCPServerPassthrough
      x-fern-type-name: MCPServerPassthrough
    MCPServerHeaderOverrideAuth:
      description: Override authentication for this source server
      type: object
      required:
        - type
        - headers
      properties:
        type:
          description: +value=header
          type: string
          enum:
            - header
        headers:
          type: object
          additionalProperties:
            type: string
      title: MCPServerHeaderOverrideAuth
      x-fern-type-name: MCPServerHeaderOverrideAuth
    RemoteSpecSource:
      description: Fetch the OpenAPI specification from a remote HTTP/HTTPS endpoint.
      type: object
      required:
        - type
        - url
      properties:
        type:
          description: +value=remote
          type: string
          enum:
            - remote
        url:
          description: URL to fetch the OpenAPI specification (JSON or YAML format).
          type: string
          pattern: ^https?:\/\/[^\s]+$
      title: RemoteSpecSource
      x-fern-type-name: RemoteSpecSource
    UploadSpecSource:
      description: Fetch the stored/uploaded OpenAPI specification.
      type: object
      required:
        - type
        - url
      properties:
        type:
          description: +value=upload
          type: string
          enum:
            - upload
        url:
          description: >-
            Cloud storage path where the OpenAPI specification is stored (S3,
            GCS, or Azure Blob).
          type: string
          pattern: >-
            ^(s3://[^/]+|gs://[^/]+|https://[^.]+\.blob\.core\.windows\.net/[^/]+)/tfy-openapi-specs/(?:\d{4}-\d{2}/|[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/)[a-f0-9-]+\.json$
      title: UploadSpecSource
      x-fern-type-name: UploadSpecSource
    InlineSpecSource:
      description: >-
        Inline your OpenAPI specification directly. The spec will be stored
        securely.
      type: object
      required:
        - type
        - openapi_spec
      properties:
        type:
          description: +value=inline
          type: string
          enum:
            - inline
        openapi_spec:
          description: The OpenAPI specification as a JSON object or a JSON/YAML string.
          oneOf:
            - type: object
            - type: string
      title: InlineSpecSource
      x-fern-type-name: InlineSpecSource
    AgentIdentityAutoRotate:
      description: Enable Auto Rotation to automatically rotate the token
      type: object
      required:
        - auto_rotate_interval
        - grace_period
      properties:
        auto_rotate_interval:
          description: >-
            Rotation Interval in days after which the token will be rotated.
            Minimum value is 30.
          type: integer
          minimum: 30
          default: 360
        grace_period:
          description: >-
            Grace Period in days for which the token will be valid after
            rotation interval. Minimum value is 1.
          type: integer
          minimum: 1
          default: 30
      title: AgentIdentityAutoRotate
      x-fern-type-name: AgentIdentityAutoRotate
    AgentIdentitySecretStoreConfig:
      description: Enable to store the agent identity token in a secret store
      type: object
      required:
        - integration_fqn
        - secret_path
      properties:
        integration_fqn:
          description: The secret store to store the agent identity token in
          type: string
        secret_path:
          description: >-
            The path where the agent identity token will be stored in the secret
            store (example: secret/path/to/agent-identity-token)
          type: string
          pattern: ^/?[A-Za-z0-9/-]*[A-Za-z0-9]$
      title: AgentIdentitySecretStoreConfig
      x-fern-type-name: AgentIdentitySecretStoreConfig
    AgentIdentityProviderMapping:
      description: Configuration for mapping IdP claim values to this agent identity
      type: object
      required:
        - identity_provider
        - value
      properties:
        identity_provider:
          description: Name of the external identity provider
          type: string
        value:
          description: Claim value that should resolve to this agent identity
          type: string
      title: AgentIdentityProviderMapping
      x-fern-type-name: AgentIdentityProviderMapping
    AwsEcr:
      description: AWS ECR
      type: object
      required:
        - type
        - name
        - registry_url
      properties:
        type:
          description: +value=integration/docker-registry/aws/ecr
          type: string
          enum:
            - integration/docker-registry/aws/ecr
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        registry_url:
          description: The URL of the registry.
          type: string
          pattern: >-
            ^([\w]+)\.dkr\.ecr\.([\w-]+)\.amazonaws\.com|(https?:\/\/)?(public\.ecr\.aws)(\/([\w.-]+))?(\/?)$
        auth_data:
          description: Custom authentication data for the integration.
          type: object
          oneOf:
            - $ref: '#/components/schemas/AwsAccessKeyBasedAuth'
            - $ref: '#/components/schemas/AwsAssumedRoleBasedAuth'
          discriminator:
            propertyName: type
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: AwsEcr
      x-fern-type-name: AwsEcr
    AwsS3:
      description: AWS S3
      type: object
      required:
        - type
        - name
        - storage_root
        - region
      properties:
        type:
          description: +value=integration/blob-storage/aws/s3
          type: string
          enum:
            - integration/blob-storage/aws/s3
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        storage_root:
          description: >-
            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'.
          type: string
        region:
          $ref: '#/components/schemas/AWSRegion'
        auth_data:
          description: Custom authentication data for the integration.
          type: object
          oneOf:
            - $ref: '#/components/schemas/AwsAccessKeyBasedAuth'
            - $ref: '#/components/schemas/AwsAssumedRoleBasedAuth'
          discriminator:
            propertyName: type
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: AwsS3
      x-fern-type-name: AwsS3
    AwsParameterStore:
      description: AWS Parameter Store
      type: object
      required:
        - type
        - name
        - region
      properties:
        type:
          description: +value=integration/secret-store/aws/parameter-store
          type: string
          enum:
            - integration/secret-store/aws/parameter-store
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        region:
          $ref: '#/components/schemas/AWSRegion'
        auth_data:
          description: Custom authentication data for the integration.
          type: object
          oneOf:
            - $ref: '#/components/schemas/AwsAccessKeyBasedAuth'
            - $ref: '#/components/schemas/AwsAssumedRoleBasedAuth'
          discriminator:
            propertyName: type
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
        kms_arn:
          description: The ARN of the KMS key to use for encryption.
          type: string
          pattern: ^arn:aws[a-zA-Z-]*:kms:[a-z0-9-]+:[0-9]{12}:key/[a-fA-F0-9-]+$
      title: AwsParameterStore
      x-fern-type-name: AwsParameterStore
    AwsSecretsManager:
      description: AWS Secrets Manager
      type: object
      required:
        - type
        - name
        - region
      properties:
        type:
          description: +value=integration/secret-store/aws/secrets-manager
          type: string
          enum:
            - integration/secret-store/aws/secrets-manager
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        region:
          $ref: '#/components/schemas/AWSRegion'
        auth_data:
          description: Custom authentication data for the integration.
          type: object
          oneOf:
            - $ref: '#/components/schemas/AwsAccessKeyBasedAuth'
            - $ref: '#/components/schemas/AwsAssumedRoleBasedAuth'
          discriminator:
            propertyName: type
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
        kms_arn:
          description: The ARN of the KMS key to use for encryption.
          type: string
          pattern: ^arn:aws[a-zA-Z-]*:kms:[a-z0-9-]+:[0-9]{12}:key/[a-fA-F0-9-]+$
      title: AwsSecretsManager
      x-fern-type-name: AwsSecretsManager
    AwsEksIntegration:
      description: AWS EKS
      type: object
      required:
        - type
        - name
        - region
        - cluster_name
      properties:
        type:
          description: +value=integration/cluster/aws/eks
          type: string
          enum:
            - integration/cluster/aws/eks
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        region:
          $ref: '#/components/schemas/AWSRegion'
        cluster_name:
          description: Name of the cluster given in the cloud account.
          type: string
          pattern: ^\S+$
        auth_data:
          description: Custom authentication data for the integration.
          type: object
          oneOf:
            - $ref: '#/components/schemas/AwsAccessKeyBasedAuth'
            - $ref: '#/components/schemas/AwsAssumedRoleBasedAuth'
          discriminator:
            propertyName: type
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: AwsEksIntegration
      x-fern-type-name: AwsEksIntegration
    AzureAksIntegration:
      description: Azure AKS
      type: object
      required:
        - type
        - name
        - resource_group
        - cluster_name
      properties:
        type:
          description: +value=integration/cluster/azure/aks
          type: string
          enum:
            - integration/cluster/azure/aks
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        resource_group:
          description: The resource group of the cluster in the cloud account.
          type: string
          pattern: ^\S+$
        cluster_name:
          description: Name of the cluster given in the cloud account.
          type: string
          pattern: ^\S+$
        auth_data:
          $ref: '#/components/schemas/AzureOAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: AzureAksIntegration
      x-fern-type-name: AzureAksIntegration
    AzureContainerRegistry:
      description: Azure ACR
      type: object
      required:
        - type
        - name
        - registry_url
      properties:
        type:
          description: +value=integration/docker-registry/azure/acr
          type: string
          enum:
            - integration/docker-registry/azure/acr
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        registry_url:
          description: The URL of the registry.
          type: string
          pattern: ^([a-z0-9-]{5,50}\.azurecr\.io)$
        auth_data:
          $ref: '#/components/schemas/AzureBasicAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: AzureContainerRegistry
      x-fern-type-name: AzureContainerRegistry
    AzureBlobStorage:
      description: Azure ABS
      type: object
      required:
        - type
        - name
        - storage_root
      properties:
        type:
          description: +value=integration/blob-storage/azure/blob
          type: string
          enum:
            - integration/blob-storage/azure/blob
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        storage_root:
          description: >-
            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' or
            'https://mystorageaccount.blob.core.windows.net/mycontainer/artifacts/production'.
          type: string
          pattern: ^\S+$
        auth_data:
          $ref: '#/components/schemas/AzureConnectionStringAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: AzureBlobStorage
      x-fern-type-name: AzureBlobStorage
    AzureVault:
      description: Azure Vault
      type: object
      required:
        - type
        - name
        - key_vault_name
      properties:
        type:
          description: +value=integration/secret-store/azure/vault
          type: string
          enum:
            - integration/secret-store/azure/vault
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/AzureOAuth'
        key_vault_name:
          description: Name of key vault name.
          type: string
          pattern: ^\S+$
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: AzureVault
      x-fern-type-name: AzureVault
    AzureReposIntegration:
      description: Azure Repo
      type: object
      required:
        - type
        - name
        - account_name
      properties:
        type:
          description: +value=integration/vcs/azure
          type: string
          enum:
            - integration/vcs/azure
        name:
          description: +sort=100
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        account_name:
          description: Account Name
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,33}[a-z0-9]$
        auth_data:
          description: Auth
          type: object
          default:
            type: oauth
          oneOf:
            - $ref: '#/components/schemas/VCSOAuthAuthData'
            - $ref: '#/components/schemas/VCSTokenAuthData'
          discriminator:
            propertyName: type
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: AzureReposIntegration
      x-fern-type-name: AzureReposIntegration
    GcpGcr:
      description: GCP GCR
      type: object
      required:
        - type
        - name
        - registry_url
      properties:
        type:
          description: +value=integration/docker-registry/gcp/gcr
          type: string
          enum:
            - integration/docker-registry/gcp/gcr
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        registry_url:
          description: The URL of the registry.
          type: string
          pattern: ^([\w-]+-docker\.pkg\.dev\/[\w-]+|(?:[\w-]+\.)?gcr\.io\/[\w-]+)$
        auth_data:
          $ref: '#/components/schemas/GcpKeyFileAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: GcpGcr
      x-fern-type-name: GcpGcr
    GcpGcs:
      description: GCP GCS
      type: object
      required:
        - type
        - name
        - storage_root
      properties:
        type:
          description: +value=integration/blob-storage/gcp/gcs
          type: string
          enum:
            - integration/blob-storage/gcp/gcs
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        storage_root:
          description: >-
            The Google Cloud Storage path in the format
            'gs://<bucket-name>/<optional-path-prefix>'. Example:
            'gs://mybucket' or 'gs://mybucket/artifacts/production'.
          type: string
        auth_data:
          $ref: '#/components/schemas/GcpKeyFileAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: GcpGcs
      x-fern-type-name: GcpGcs
    GcpGsm:
      description: GCP GSM
      type: object
      required:
        - type
        - name
      properties:
        type:
          description: +value=integration/secret-store/gcp/gsm
          type: string
          enum:
            - integration/secret-store/gcp/gsm
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/GcpKeyFileAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: GcpGsm
      x-fern-type-name: GcpGsm
    GcpGkeIntegration:
      description: GCP GKE
      type: object
      required:
        - type
        - name
        - location
        - cluster_name
      properties:
        type:
          description: +value=integration/cluster/gcp/gke-standard
          type: string
          enum:
            - integration/cluster/gcp/gke-standard
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        location:
          $ref: '#/components/schemas/GCPRegion'
        cluster_name:
          description: Name of the cluster given in the cloud account.
          type: string
          pattern: ^\S+$
        auth_data:
          $ref: '#/components/schemas/GcpKeyFileAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: GcpGkeIntegration
      x-fern-type-name: GcpGkeIntegration
    DockerhubRegistry:
      description: Dockerhub Registry
      type: object
      required:
        - type
        - name
        - registry_url
      properties:
        type:
          description: +value=integration/docker-registry/dockerhub
          type: string
          enum:
            - integration/docker-registry/dockerhub
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        registry_url:
          description: Registry URL
          type: string
          pattern: >-
            ^(https?:\/\/)?(index\.docker\.io|docker\.io|registry\.hub\.docker\.com)(\/([\w.-]+))?(\/?)$
        auth_data:
          $ref: '#/components/schemas/DockerhubBasicAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: DockerhubRegistry
      x-fern-type-name: DockerhubRegistry
    BitbucketIntegration:
      description: Bitbucket
      type: object
      required:
        - type
        - name
        - account_name
      properties:
        type:
          description: +value=integration/vcs/bitbucket
          type: string
          enum:
            - integration/vcs/bitbucket
        name:
          description: +sort=100
          type: string
          pattern: ^\S+$
        account_name:
          description: Account Name
          type: string
          pattern: ^\S+$
        auth_data:
          description: Auth
          type: object
          default:
            type: oauth
          oneOf:
            - $ref: '#/components/schemas/VCSOAuthAuthData'
            - $ref: '#/components/schemas/VCSTokenAuthData'
          discriminator:
            propertyName: type
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: BitbucketIntegration
      x-fern-type-name: BitbucketIntegration
    BitbucketDataCenterIntegration:
      description: Bitbucket Data Center
      type: object
      required:
        - type
        - name
        - account_name
        - auth_data
      properties:
        type:
          description: +value=integration/vcs/bitbucket/data-center
          type: string
          enum:
            - integration/vcs/bitbucket/data-center
        name:
          description: +sort=100
          type: string
          pattern: ^\S+$
        account_name:
          description: Account Name
          type: string
          pattern: ^\S+$
        auth_data:
          $ref: '#/components/schemas/VCSTokenAuthData'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: BitbucketDataCenterIntegration
      x-fern-type-name: BitbucketDataCenterIntegration
    CustomUsernamePasswordArtifactsRegistry:
      description: Custom Docker Registry
      type: object
      required:
        - type
        - name
        - registry_url
      properties:
        type:
          description: +value=integration/docker-registry/custom
          type: string
          enum:
            - integration/docker-registry/custom
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        registry_url:
          description: The URL of the registry.
          type: string
          pattern: ^(https?:\/\/)?[^\s\/:]+(:\d{1,5})?(\/.*)?$
        auth_data:
          $ref: '#/components/schemas/CustomBasicAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: CustomUsernamePasswordArtifactsRegistry
      x-fern-type-name: CustomUsernamePasswordArtifactsRegistry
    EmailNotificationChannel:
      description: Email Notification Channel
      type: object
      required:
        - type
        - name
        - auth_data
        - from_email
      properties:
        type:
          description: +value=integration/notification-channel/email
          type: string
          enum:
            - integration/notification-channel/email
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/SMTPCredentials'
        from_email:
          description: The email address from which the email will be sent.
          type: string
          minLength: 1
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: EmailNotificationChannel
      x-fern-type-name: EmailNotificationChannel
    CustomHelmRepo:
      description: Custom Helm Repo
      type: object
      required:
        - type
        - name
        - repo_url
        - auth_data
      properties:
        type:
          description: +value=integration/helm-repo/custom
          type: string
          enum:
            - integration/helm-repo/custom
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        repo_url:
          description: The URL of the Helm Repo.
          type: string
          pattern: ^(https?|wss?):\/\/[^\s\/:]+(:\d{1,5})?(\/.*)?$
        auth_data:
          $ref: '#/components/schemas/CustomBasicAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: CustomHelmRepo
      x-fern-type-name: CustomHelmRepo
    CustomBlobStorage:
      description: Custom Blob Storage
      type: object
      required:
        - type
        - name
        - endpoint
        - storage_root
        - auth_data
      properties:
        type:
          description: +value=integration/blob-storage/custom
          type: string
          enum:
            - integration/blob-storage/custom
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        endpoint:
          description: The endpoint of the storage provider.
          type: string
          pattern: ^https?:\/\/[^\s\/:]+(:[0-9]{1,5})?(\/.*)?$
        storage_root:
          description: >-
            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'.
          type: string
          pattern: ^\S+$
        region:
          description: The region where the storage is located.
          type: string
        auth_data:
          $ref: '#/components/schemas/CustomBasicAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: CustomBlobStorage
      x-fern-type-name: CustomBlobStorage
    CustomJWTAuthIntegration:
      description: Custom JWT Auth Integration
      type: object
      required:
        - type
        - name
        - issuer
        - jwks_uri
      properties:
        type:
          description: +value=integration/jwt-auth/custom
          type: string
          enum:
            - integration/jwt-auth/custom
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        issuer:
          description: The base URL of the authentication provider.
          type: string
          pattern: ^(https?:\/\/)?(([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z]{2,63})(\/[^\s]*)?$
        jwks_uri:
          description: The JSON Web Key Set URI for JWT verification.
          type: string
          pattern: ^https:\/\/(([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z]{2,63})(\/[^\s]*)?$
        login_provider:
          $ref: '#/components/schemas/OAuth2LoginProvider'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: CustomJWTAuthIntegration
      x-fern-type-name: CustomJWTAuthIntegration
    GenericSecretStoreIntegration:
      description: Generic Secret Store
      type: object
      required:
        - type
        - name
        - base_url
        - auth_data
      properties:
        type:
          description: +value=integration/secret-store/custom/generic
          type: string
          enum:
            - integration/secret-store/custom/generic
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        base_url:
          description: Base URL of the generic secret server.
          type: string
          pattern: ^https?://[^/\s?#]+/?$
        auth_data:
          $ref: '#/components/schemas/CustomHeaderAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: GenericSecretStoreIntegration
      x-fern-type-name: GenericSecretStoreIntegration
    VCSOAuthAuthData:
      description: OAuth
      type: object
      required:
        - type
      properties:
        type:
          description: +value=oauth
          type: string
          enum:
            - oauth
      title: VCSOAuthAuthData
      x-fern-type-name: VCSOAuthAuthData
    VCSTokenAuthData:
      description: Personal access token
      type: object
      required:
        - type
        - token
      properties:
        type:
          description: +value=token
          type: string
          enum:
            - token
        token:
          description: >-
            Personal access token for API and Git access when not using the
            default OAuth or app-based flow.
          type: string
          pattern: ^\S+$
      title: VCSTokenAuthData
      x-fern-type-name: VCSTokenAuthData
    JfrogArtifactsRegistry:
      description: Jfrog Artifacts Registry
      type: object
      required:
        - type
        - name
        - registry_url
      properties:
        type:
          description: +value=integration/docker-registry/jfrog
          type: string
          enum:
            - integration/docker-registry/jfrog
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        registry_url:
          description: The URL of the registry.
          type: string
          pattern: >-
            ^(https?:\/\/)?([-a-zA-Z0-9._\-+/]{1,256}\.[a-zA-Z0-9()]{1,6})(\/([\w.-]+))?(\/?)$
        auth_data:
          $ref: '#/components/schemas/JfrogBasicAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: JfrogArtifactsRegistry
      x-fern-type-name: JfrogArtifactsRegistry
    TTLRegistry:
      description: TTL
      type: object
      required:
        - type
        - name
        - registry_url
      properties:
        type:
          description: +value=integration/docker-registry/ttl
          type: string
          enum:
            - integration/docker-registry/ttl
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        registry_url:
          description: The URL of the registry.
          type: string
          default: https://ttl.sh
          pattern: ^(https?:\/\/)?(ttl\.sh)$
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: TTLRegistry
      x-fern-type-name: TTLRegistry
    TrueFoundryDBSSM:
      description: TrueFoundry DBSSM
      type: object
      required:
        - type
        - name
      properties:
        type:
          description: +value=integration/secret-store/truefoundry/db
          type: string
          enum:
            - integration/secret-store/truefoundry/db
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,30}[a-z0-9]$
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: TrueFoundryDBSSM
      x-fern-type-name: TrueFoundryDBSSM
    QuayArtifactsRegistry:
      description: Quay Artifacts Registry
      type: object
      required:
        - type
        - name
        - registry_url
      properties:
        type:
          description: +value=integration/docker-registry/quay
          type: string
          enum:
            - integration/docker-registry/quay
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        registry_url:
          description: The URL of the registry.
          type: string
          pattern: ^(https?://)?(quay\.io)(/([\w.-]+))?(/?)$
        auth_data:
          $ref: '#/components/schemas/QuayBasicAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: QuayArtifactsRegistry
      x-fern-type-name: QuayArtifactsRegistry
    SlackWebhookIntegration:
      description: Slack Webhook Integration
      type: object
      required:
        - type
        - name
        - auth_data
      properties:
        type:
          description: +value=integration/notification-channel/slack-webhook
          type: string
          enum:
            - integration/notification-channel/slack-webhook
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/SlackWebhookAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: SlackWebhookIntegration
      x-fern-type-name: SlackWebhookIntegration
    SlackBotIntegration:
      description: Slack Bot Integration
      type: object
      required:
        - type
        - name
        - auth_data
      properties:
        type:
          description: +value=integration/notification-channel/slack-bot
          type: string
          enum:
            - integration/notification-channel/slack-bot
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/SlackBotAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: SlackBotIntegration
      x-fern-type-name: SlackBotIntegration
    WebhookIntegration:
      description: Webhook Integration
      type: object
      required:
        - type
        - name
        - webhook_url
      properties:
        type:
          description: +value=integration/gateway-request-logger/webhook
          type: string
          enum:
            - integration/gateway-request-logger/webhook
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        webhook_url:
          description: The URL of the webhook endpoint
          type: string
        auth_data:
          description: Authentication configuration for the webhook
          type: object
          oneOf:
            - $ref: '#/components/schemas/WebhookBasicAuth'
            - $ref: '#/components/schemas/WebhookBearerAuth'
          discriminator:
            propertyName: type
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: WebhookIntegration
      x-fern-type-name: WebhookIntegration
    PagerDutyIntegration:
      description: PagerDuty Integration
      type: object
      required:
        - type
        - name
        - auth_data
      properties:
        type:
          description: +value=integration/notification-channel/pagerduty
          type: string
          enum:
            - integration/notification-channel/pagerduty
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,34}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/PagerDutyIntegrationKeyAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: PagerDutyIntegration
      x-fern-type-name: PagerDutyIntegration
    MSTeamsWebhookIntegration:
      description: MS Teams Webhook Integration
      type: object
      required:
        - type
        - name
        - auth_data
      properties:
        type:
          description: +value=integration/notification-channel/ms-teams-webhook
          type: string
          enum:
            - integration/notification-channel/ms-teams-webhook
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z](?:[a-z0-9]|-(?!-)){1,34}[a-z0-9]$
        auth_data:
          $ref: '#/components/schemas/MSTeamsWebhookAuth'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: MSTeamsWebhookIntegration
      x-fern-type-name: MSTeamsWebhookIntegration
    HashicorpVaultIntegration:
      description: HashiCorp Vault Integration
      type: object
      required:
        - type
        - name
        - vault_url
        - kv_mount_path
        - auth_data
      properties:
        type:
          description: +value=integration/secret-store/hashicorp/vault
          type: string
          enum:
            - integration/secret-store/hashicorp/vault
        name:
          description: >-
            The name of the integration that will be displayed in the
            TrueFoundry UI.
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        vault_url:
          description: >-
            The URL of the HashiCorp Vault server (e.g.,
            https://vault.example.com:8200).
          type: string
          pattern: ^https?://[^\s]+$
        kv_mount_path:
          description: Mount path of the KV v2 engine vault to use for secrets.
          type: string
        root_path:
          type: string
          pattern: ^[^/\s]+(?:/[^/\s]+)*$
        auth_data:
          description: Authentication data for the Vault integration.
          type: object
          oneOf:
            - $ref: '#/components/schemas/HashicorpTokenAuth'
            - $ref: '#/components/schemas/HashicorpAppRoleAuth'
          discriminator:
            propertyName: type
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
        namespace:
          description: >-
            Namespace for vault operations, used for multi-tenancy in HashiCorp
            Vault Enterprise. Optional for open source Vault.
          type: string
      title: HashicorpVaultIntegration
      x-fern-type-name: HashicorpVaultIntegration
    ModelType:
      description: Model Type
      type: string
      enum:
        - chat
        - completion
        - embedding
        - realtime
        - rerank
        - audio_transcription
        - audio_translation
        - text_to_speech
        - moderation
        - image
        - responses
        - ocr
      title: ModelType
      x-fern-type-name: ModelType
    ModelCostMetric:
      type: object
      oneOf:
        - $ref: '#/components/schemas/PerThousandTokensCostMetric'
        - $ref: '#/components/schemas/PerThousandEmbeddingTokensCostMetric'
        - $ref: '#/components/schemas/PerMillionCharactersCostMetric'
        - $ref: '#/components/schemas/PerMinuteOfAudioCostMetric'
        - $ref: '#/components/schemas/OCRCostMetric'
        - $ref: '#/components/schemas/PublicCostMetric'
      title: ModelCostMetric
      x-fern-type-name: ModelCostMetric
    CohereModel:
      description: Cohere Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/cohere
          type: string
          enum:
            - integration/model/cohere
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Cohere model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: CohereModel
      x-fern-type-name: CohereModel
    AI21Model:
      description: AI21 Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/ai21
          type: string
          enum:
            - integration/model/ai21
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            The AI21 model identifier (e.g., jamba-large, jamba-mini). This is
            the model name from AI21's model catalog.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the AI21 model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: AI21Model
      x-fern-type-name: AI21Model
    AnthropicModel:
      description: Anthropic Model
      type: object
      required:
        - name
        - model_id
        - type
        - model_types
      properties:
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        type:
          description: +value=integration/model/anthropic
          type: string
          enum:
            - integration/model/anthropic
        model_types:
          description: Specify the type of the Anthropic model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: AnthropicModel
      x-fern-type-name: AnthropicModel
    DeepinfraModel:
      description: DeepInfra Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/deepinfra
          type: string
          enum:
            - integration/model/deepinfra
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the DeepInfra model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: DeepinfraModel
      x-fern-type-name: DeepinfraModel
    GroqModel:
      description: Groq Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/groq
          type: string
          enum:
            - integration/model/groq
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Groq model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: GroqModel
      x-fern-type-name: GroqModel
    MistralAIModel:
      description: Mistral AI Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/mistral-ai
          type: string
          enum:
            - integration/model/mistral-ai
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Mistral AI model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: MistralAIModel
      x-fern-type-name: MistralAIModel
    PerplexityAIModel:
      description: Perplexity AI Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/perplexity-ai
          type: string
          enum:
            - integration/model/perplexity-ai
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            The Perplexity AI model identifier (e.g., sonar-reasoning, sonar).
            This is the model name from Perplexity AI's API documentation.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Perplexity AI model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: PerplexityAIModel
      x-fern-type-name: PerplexityAIModel
    TogetherAIModel:
      description: Together AI Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/together-ai
          type: string
          enum:
            - integration/model/together-ai
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Together AI model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: TogetherAIModel
      x-fern-type-name: TogetherAIModel
    NomicModel:
      description: Nomic Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/nomic
          type: string
          enum:
            - integration/model/nomic
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: The name of the Nomic model to use
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Nomic model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: NomicModel
      x-fern-type-name: NomicModel
    PalmModel:
      description: PaLM Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/palm
          type: string
          enum:
            - integration/model/palm
        name:
          description: Name to identify this PaLM model in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: The name of the PaLM model to use
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the PaLM model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: PalmModel
      x-fern-type-name: PalmModel
    OllamaModel:
      description: Ollama Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/ollama
          type: string
          enum:
            - integration/model/ollama
        name:
          description: Name to identify this Ollama model in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: The name of the Ollama model to use
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Ollama model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: OllamaModel
      x-fern-type-name: OllamaModel
    OpenAIModel:
      description: OpenAI Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/openai
          type: string
          enum:
            - integration/model/openai
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the OpenAI model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: OpenAIModel
      x-fern-type-name: OpenAIModel
    DatabricksModel:
      description: Databricks Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/databricks
          type: string
          enum:
            - integration/model/databricks
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            The serving endpoint name configured in your Databricks workspace.
            This is the endpoint you created in Databricks Model Serving, not
            the underlying model name.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Databricks model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: DatabricksModel
      x-fern-type-name: DatabricksModel
    ClouderaModel:
      description: Cloudera Model
      type: object
      required:
        - type
        - name
        - model_id
        - base_url
        - model_types
      properties:
        type:
          description: +value=integration/model/cloudera
          type: string
          enum:
            - integration/model/cloudera
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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
          type: string
          pattern: ^\S+$
        base_url:
          description: >-
            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
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Cloudera model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: ClouderaModel
      x-fern-type-name: ClouderaModel
    SelfHostedModel:
      description: Self Hosted Model Integration
      type: object
      required:
        - type
        - name
        - hosted_model_name
        - url
        - model_server
        - model_types
      properties:
        type:
          description: +value=integration/model/self-hosted-model
          type: string
          enum:
            - integration/model/self-hosted-model
        name:
          description: A descriptive name to identify this self-hosted model in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        hosted_model_name:
          description: The name of the hosted model
          type: string
          pattern: ^\S+$
        url:
          description: The URL where the model is hosted
          type: string
          pattern: ^https?:\/\/[^\s\/]+(\/[^\s\/]*)*[^\/\s]$
        model_server:
          description: The type of model server being used
          type: string
          enum:
            - openai-compatible
            - cohere-rerank-v2
            - nemo-retriever
            - infinity
            - tei
            - vllm-openai
        tfy_application_id:
          description: +uiType=Hidden
          type: string
        model_types:
          description: Specify the type of the model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        tls_settings:
          $ref: '#/components/schemas/CustomTLSSettings'
        auth_data:
          description: Self Hosted Model authentication data for the integration.
          type: object
          oneOf:
            - $ref: '#/components/schemas/CustomBasicAuth'
            - $ref: '#/components/schemas/CustomBearerAuth'
          discriminator:
            propertyName: type
        headers:
          description: >-
            Self Hosted Model headers for the integration. Forwarded to the
            provider as is. For example: `{"Authorization": "APIKey <token>"}`
          type: object
          additionalProperties:
            type: string
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: SelfHostedModel
      x-fern-type-name: SelfHostedModel
    OpenRouterModel:
      description: OpenRouter Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/openrouter
          type: string
          enum:
            - integration/model/openrouter
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            The OpenRouter model identifier (e.g., anthropic/claude-3-haiku,
            openai/gpt-4o-mini). This is the model name from OpenRouter's model
            catalog.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the OpenRouter model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: OpenRouterModel
      x-fern-type-name: OpenRouterModel
    SambaNovaModel:
      description: SambaNova Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/sambanova
          type: string
          enum:
            - integration/model/sambanova
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the SambaNova model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: SambaNovaModel
      x-fern-type-name: SambaNovaModel
    XAIModel:
      description: xAI Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/xai
          type: string
          enum:
            - integration/model/xai
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the xAI model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: XAIModel
      x-fern-type-name: XAIModel
    BasetenModel:
      description: Baseten Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/baseten
          type: string
          enum:
            - integration/model/baseten
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            The Baseten model identifier. This is the model name from Baseten's
            model catalog.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Baseten model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: BasetenModel
      x-fern-type-name: BasetenModel
    CerebrasModel:
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/cerebras
          type: string
          enum:
            - integration/model/cerebras
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Cerebras model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: CerebrasModel
      x-fern-type-name: CerebrasModel
    WaferModel:
      description: Wafer Model
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/wafer
          type: string
          enum:
            - integration/model/wafer
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            The Wafer model identifier (e.g., GLM-5.2). See
            https://docs.wafer.ai/serverless for the public catalog.
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Wafer model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: WaferModel
      x-fern-type-name: WaferModel
    SnowflakeCortexModel:
      type: object
      required:
        - type
        - name
        - model_id
        - model_types
      properties:
        type:
          description: +value=integration/model/snowflake-cortex
          type: string
          enum:
            - integration/model/snowflake-cortex
        name:
          description: Name to identify this Snowflake Cortex model in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: ID of the Snowflake Cortex model to use
          type: string
          pattern: ^\S+$
        model_types:
          description: Specify the type of the Snowflake Cortex model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: SnowflakeCortexModel
      x-fern-type-name: SnowflakeCortexModel
    AWSClaudePlatformModel:
      description: AWS Claude Platform Model
      type: object
      required:
        - name
        - model_id
        - type
        - model_types
      properties:
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        type:
          description: |-
            +value=integration/model/aws-claude-platform
            +icon=claude
          type: string
          enum:
            - integration/model/aws-claude-platform
        model_types:
          description: Specify the type of the Anthropic model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: AWSClaudePlatformModel
      x-fern-type-name: AWSClaudePlatformModel
    BedrockMantleModel:
      description: Bedrock Mantle Model
      type: object
      required:
        - name
        - model_id
        - type
        - model_types
      properties:
        name:
          description: A descriptive name to identify this model integration in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        model_id:
          description: >-
            The Bedrock Mantle model identifier (e.g., openai.gpt-oss-20b-1:0).
            Use the OpenAI-compatible model name exposed by the Bedrock Mantle
            endpoint.
          type: string
          pattern: ^\S+$
        type:
          description: +value=integration/model/bedrock-mantle
          type: string
          enum:
            - integration/model/bedrock-mantle
        model_types:
          description: Specify the type of the Bedrock Mantle model
          type: array
          items:
            $ref: '#/components/schemas/ModelType'
          default:
            - chat
        region:
          $ref: '#/components/schemas/AWSRegion'
        cost:
          $ref: '#/components/schemas/ModelCostMetric'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this integration.
            List of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: BedrockMantleModel
      x-fern-type-name: BedrockMantleModel
    VirtualModelModelType:
      type: string
      enum:
        - chat
        - completion
        - embedding
        - rerank
        - moderation
        - audio_transcription
        - audio_translation
        - text_to_speech
        - image
      title: VirtualModelModelType
      x-fern-type-name: VirtualModelModelType
    HeaderRoutingConfig:
      description: >-
        this union is mainly for gateway to parse the load balancing config from
        request header

        +discriminator=type
      type: object
      oneOf:
        - $ref: '#/components/schemas/WeightBasedLoadBalancing'
        - $ref: '#/components/schemas/LatencyBasedLoadBalancing'
        - $ref: '#/components/schemas/PriorityBasedLoadBalancing'
      discriminator:
        propertyName: type
      title: HeaderRoutingConfig
      x-fern-type-name: HeaderRoutingConfig
    CustomEndpoint:
      description: Custom Endpoint
      type: object
      required:
        - type
        - name
        - base_url
      properties:
        type:
          description: +value=integration/model/custom-endpoint
          type: string
          enum:
            - integration/model/custom-endpoint
        name:
          description: A descriptive name to identify this endpoint in the UI
          type: string
          pattern: ^[a-zA-Z](?:[a-zA-Z0-9\-._]{0,62}[a-zA-Z0-9])$
        base_url:
          description: >-
            The target base URL to proxy requests to (e.g.,
            https://my-service.example.com/v1)
          type: string
          pattern: ^https?:\/\/[^\s\/]+(\/[^\s\/]*)*[^\/\s]$
        auth_data:
          $ref: '#/components/schemas/CustomHeaderAuth'
        headers:
          description: >-
            Custom headers forwarded to the upstream endpoint with every
            request. For example: `{"X-Custom-Header": "value"}`
          type: object
          additionalProperties:
            type: string
        tls_settings:
          $ref: '#/components/schemas/CustomTLSSettings'
        loadbalancing_config:
          $ref: '#/components/schemas/CustomEndpointTargetConfig'
        authorized_subjects:
          description: >-
            List of subjects that are authorized to access this endpoint. List
            of user fqn in format <user_type>:<username>.
          type: array
          items:
            type: string
      title: CustomEndpoint
      x-fern-type-name: CustomEndpoint
    VirtualMCPServerSource:
      description: Virtual MCP Server Source
      type: object
      required:
        - name
      properties:
        name:
          description: >-
            Name of the source MCP server within this group (use
            {provider_account_name}/{integration_name} format).
          type: string
          pattern: ^[a-z][a-z0-9\-]{1,34}[a-z0-9]/[a-z][a-z0-9\-]{1,34}[a-z0-9]$
        enabled_tools:
          description: List of tools to enable from this source server.
          type: array
          items:
            type: string
        auth_data:
          $ref: '#/components/schemas/MCPServerHeaderOverrideAuth'
      title: VirtualMCPServerSource
      x-fern-type-name: VirtualMCPServerSource
    EnforcingStrategy:
      description: >-
        Strategy for enforcing this guardrail: enforce (block on failure),
        enforce_but_ignore_on_error (continue on error but block on failure), or
        audit (only audit violations)
      type: string
      enum:
        - enforce_but_ignore_on_error
        - enforce
        - audit
      default: enforce_but_ignore_on_error
      title: EnforcingStrategy
      x-fern-type-name: EnforcingStrategy
    CustomBearerAuth:
      description: Custom Bearer Auth
      type: object
      required:
        - type
        - bearer_token
      properties:
        type:
          description: +value=bearer-auth
          type: string
          enum:
            - bearer-auth
        bearer_token:
          description: The bearer token for the custom bearer authentication.
          type: string
      title: CustomBearerAuth
      x-fern-type-name: CustomBearerAuth
    AzurePIICategory:
      type: string
      enum:
        - '*'
        - ABARoutingNumber
        - Address
        - Age
        - ARNationalIdentityNumber
        - AUBankAccountNumber
        - AUDriversLicenseNumber
        - AUMedicalAccountNumber
        - AUPassportNumber
        - AUTaxFileNumber
        - AUBusinessNumber
        - AUCompanyNumber
        - ATIdentityCard
        - ATTaxIdentificationNumber
        - ATValueAddedTaxNumber
        - AzureDocumentDBAuthKey
        - AzureIAASDatabaseConnectionAndSQLString
        - AzureIoTConnectionString
        - AzurePublishSettingPassword
        - AzureRedisCacheString
        - AzureSAS
        - AzureServiceBusString
        - AzureStorageAccountKey
        - AzureStorageAccountGeneric
        - BankAccountNumber
        - BENationalNumber
        - BEValueAddedTaxNumber
        - BRCPFNumber
        - BRLegalEntityNumber
        - BRNationalIDRG
        - BGUniformCivilNumber
        - CABankAccountNumber
        - CADriversLicenseNumber
        - CAHealthServiceNumber
        - CAPassportNumber
        - CAPersonalHealthID
        - CASocialInsuranceNumber
        - CLIdentityCardNumber
        - CNResidentIdentityCardNumber
        - CreditCardNumber
        - HRIdentityCardNumber
        - HRNationalIDCardNumber
        - HRPersonalIdentificationNumber
        - CYIdentityCard
        - CYTaxIdentificationNumber
        - CZPersonalIdentityNumber
        - Date
        - DateTime
        - DKPersonalIdentificationNumber
        - DEANumber
        - Email
        - EEPersonalIdentificationCode
        - EUDebitCardNumber
        - EUDriversLicenseNumber
        - EUGPSCoordinates
        - EUNationalIdentificationNumber
        - EUPassportNumber
        - EUSocialSecurityNumber
        - EUTaxIdentificationNumber
        - FIEuropeanHealthNumber
        - FINationalID
        - FIPassportNumber
        - FRDriversLicenseNumber
        - FRHealthInsuranceNumber
        - FRNationalID
        - FRPassportNumber
        - FRSocialSecurityNumber
        - FRTaxIdentificationNumber
        - FRValueAddedTaxNumber
        - DEDriversLicenseNumber
        - DEPassportNumber
        - DEIdentityCardNumber
        - DETaxIdentificationNumber
        - DEValueAddedTaxNumber
        - GRNationalIDCard
        - GRTaxIdentificationNumber
        - HKIdentityCardNumber
        - HUValueAddedTaxNumber
        - HUPersonalIdentificationNumber
        - HUTaxIdentificationNumber
        - INPermanentAccountNumber
        - INUniqueIdentificationNumber
        - IDIdentityCardNumber
        - InternationalBankingAccountNumber
        - IPAddress
        - IEPersonalPublicServiceNumber
        - ILBankAccountNumber
        - ILNationalID
        - ITDriversLicenseNumber
        - ITFiscalCode
        - ITValueAddedTaxNumber
        - JPBankAccountNumber
        - JPDriversLicenseNumber
        - JPPassportNumber
        - JPResidentRegistrationNumber
        - JPSocialInsuranceNumber
        - JPMyNumberCorporate
        - JPMyNumberPersonal
        - JPResidenceCardNumber
        - LVPersonalCode
        - LTPersonalCode
        - LUNationalIdentificationNumberNatural
        - LUNationalIdentificationNumberNonNatural
        - MYIdentityCardNumber
        - MTIdentityCardNumber
        - MTTaxIDNumber
        - NLCitizensServiceNumber
        - NLTaxIdentificationNumber
        - NLValueAddedTaxNumber
        - NZBankAccountNumber
        - NZDriversLicenseNumber
        - NZInlandRevenueNumber
        - NZMinistryOfHealthNumber
        - NZSocialWelfareNumber
        - NOIdentityNumber
        - Organization
        - Person
        - PersonType
        - PHUnifiedMultiPurposeIDNumber
        - PhoneNumber
        - PLIdentityCard
        - PLNationalID
        - PLPassportNumber
        - PLTaxIdentificationNumber
        - PLREGONNumber
        - PTCitizenCardNumber
        - PTTaxIdentificationNumber
        - ROPersonalNumericalCode
        - RUPassportNumberDomestic
        - RUPassportNumberInternational
        - SANationalID
        - SGNationalRegistrationIdentityCardNumber
        - SKPersonalNumber
        - SITaxIdentificationNumber
        - SIUniqueMasterCitizenNumber
        - ZAIdentificationNumber
        - KRResidentRegistrationNumber
        - ESDNI
        - ESSocialSecurityNumber
        - ESTaxIdentificationNumber
        - AzureSQLConnectionString
        - SENationalID
        - SEPassportNumber
        - SETaxIdentificationNumber
        - SWIFTCode
        - CHSocialSecurityNumber
        - TWNationalID
        - TWPassportNumber
        - TWResidentCertificate
        - THPopulationIdentificationCode
        - TRNationalIdentificationNumber
        - UKDriversLicenseNumber
        - UKElectoralRollNumber
        - UKNationalHealthNumber
        - UKNationalInsuranceNumber
        - UKUniqueTaxpayerNumber
        - USUKPassportNumber
        - USBankAccountNumber
        - USDriversLicenseNumber
        - USIndividualTaxpayerIdentification
        - USSocialSecurityNumber
        - URL
      title: AzurePIICategory
      x-fern-type-name: AzurePIICategory
    AzureContentSafetyCategory:
      type: string
      enum:
        - Hate
        - SelfHarm
        - Sexual
        - Violence
      title: AzureContentSafetyCategory
      x-fern-type-name: AzureContentSafetyCategory
    EnkryptAIKeyAuth:
      description: Authentication method using Enkrypt AI API key
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: The API key for Enkrypt AI authentication
          type: string
          pattern: ^\S+$
      title: EnkryptAIKeyAuth
      x-fern-type-name: EnkryptAIKeyAuth
    PaloAltoPrismaAIRSKeyAuth:
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: API key for the Palo Alto  Prisma AIRS account
          type: string
          pattern: ^\S+$
      title: PaloAltoPrismaAIRSKeyAuth
      x-fern-type-name: PaloAltoPrismaAIRSKeyAuth
    FiddlerKeyAuth:
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: API key for the Fiddler account
          type: string
          pattern: ^\S+$
      title: FiddlerKeyAuth
      x-fern-type-name: FiddlerKeyAuth
    FiddlerGuardType:
      type: string
      enum:
        - fiddler-safety
        - fiddler-response-faithfulness
      title: FiddlerGuardType
      x-fern-type-name: FiddlerGuardType
    CrowdStrikeAIDRKeyAuth:
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: Bearer token for the CrowdStrike AIDR account
          type: string
          pattern: ^\S+$
      title: CrowdStrikeAIDRKeyAuth
      x-fern-type-name: CrowdStrikeAIDRKeyAuth
    PatronusKeyAuth:
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: API key for the Patronus account
          type: string
          pattern: ^\S+$
      title: PatronusKeyAuth
      x-fern-type-name: PatronusKeyAuth
    PatronusEvaluator:
      description: Patronus Evaluators
      type: object
      oneOf:
        - $ref: '#/components/schemas/PatronusAnswerRelevanceEvaluator'
        - $ref: '#/components/schemas/PatronusGliderEvaluator'
        - $ref: '#/components/schemas/PatronusJudgeEvaluator'
        - $ref: '#/components/schemas/PatronusPIIEvaluator'
        - $ref: '#/components/schemas/PatronusPhiEvaluator'
        - $ref: '#/components/schemas/PatronusToxicityEvaluator'
      discriminator:
        propertyName: type
      title: PatronusEvaluator
      x-fern-type-name: PatronusEvaluator
    PresetRegexPattern:
      description: Select one or more common regex patterns from the predefined list.
      type: object
      required:
        - presets
      properties:
        presets:
          description: Select one or more common regex patterns from the predefined list.
          type: array
          items:
            $ref: '#/components/schemas/PresetRegexPatternEnum'
      title: PresetRegexPattern
      x-fern-type-name: PresetRegexPattern
    CustomRegexPattern:
      description: Custom Regex Pattern
      type: object
      required:
        - pattern
      properties:
        pattern:
          description: >-
            A custom regex pattern to match against content (e.g.,
            "\\b\\d{3}-\\d{2}-\\d{4}\\b" for SSN)
          type: string
        redaction_text:
          description: >-
            Text to use when redacting matched content (only applicable in
            mutate mode). Defaults to '[REDACTED]'.
          type: string
          default: '[REDACTED]'
      title: CustomRegexPattern
      x-fern-type-name: CustomRegexPattern
    KeySpec:
      description: Rule
      type: object
      default: {}
      oneOf:
        - allOf:
            - $ref: '#/components/schemas/KeyPresenceSpec'
            - not:
                anyOf:
                  - $ref: '#/components/schemas/KeyValueSpec'
        - $ref: '#/components/schemas/KeyValueSpec'
      title: KeySpec
      x-fern-type-name: KeySpec
    OPAAuth:
      type: object
      oneOf:
        - $ref: '#/components/schemas/OPAHeaderAuth'
        - $ref: '#/components/schemas/OPABearerAuth'
      title: OPAAuth
      x-fern-type-name: OPAAuth
    GoogleModelArmorApiKeyAuth:
      description: Authentication method using a Google Cloud API key
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: Google Cloud API key with Model Armor access
          type: string
          pattern: ^\S+$
      title: GoogleModelArmorApiKeyAuth
      x-fern-type-name: GoogleModelArmorApiKeyAuth
    GoogleModelArmorKeyFileAuth:
      description: Authentication method using a Google Cloud service account key file
      type: object
      required:
        - type
        - key_file_content
      properties:
        type:
          description: +value=key-file
          type: string
          enum:
            - key-file
        key_file_content:
          description: >-
            The JSON content of your Google Cloud service account key file with
            Model Armor permissions
          oneOf:
            - type: string
            - type: object
      title: GoogleModelArmorKeyFileAuth
      x-fern-type-name: GoogleModelArmorKeyFileAuth
    GCPRegion:
      type: string
      enum:
        - global
        - northamerica-northeast1
        - northamerica-northeast2
        - southamerica-east1
        - us-central1
        - us-east1
        - us-east4
        - us-east5
        - us-south1
        - us-west1
        - us-west2
        - us-west3
        - us-west4
        - asia-east1
        - asia-east2
        - asia-northeast1
        - asia-northeast2
        - asia-northeast3
        - asia-south1
        - asia-south2
        - asia-southeast1
        - asia-southeast2
        - australia-southeast1
        - australia-southeast2
        - europe-central2
        - europe-north1
        - europe-southwest1
        - europe-west1
        - europe-west2
        - europe-west3
        - europe-west4
        - europe-west6
        - europe-west8
        - europe-west9
        - me-central1
        - me-central2
        - me-west1
      title: GCPRegion
      x-fern-type-name: GCPRegion
    GraySwanCygnalApiKeyAuth:
      description: GraySwan Cygnal API Key Auth
      type: object
      required:
        - type
        - api_key
      properties:
        type:
          description: +value=api-key
          type: string
          enum:
            - api-key
        api_key:
          description: GraySwan API key for Cygnal access
          type: string
          pattern: ^\S+$
      title: GraySwanCygnalApiKeyAuth
      x-fern-type-name: GraySwanCygnalApiKeyAuth
    AktoTokenAuth:
      description: Authentication method using an Akto JWT token
      type: object
      required:
        - type
        - token
      properties:
        type:
          description: +value=token
          type: string
          enum:
            - token
        token:
          description: JWT token for authenticating with the Akto guardrails service
          type: string
          pattern: ^\S+$
      title: AktoTokenAuth
      x-fern-type-name: AktoTokenAuth
    TrojAIClientIdAuth:
      description: Authentication using a TrojAI firewall client ID (x-eag-clientid)
      type: object
      required:
        - type
        - client_id
      properties:
        type:
          description: +value=client-id
          type: string
          enum:
            - client-id
        client_id:
          description: >-
            The client ID that identifies your TrojAI firewall policy (sent as
            x-eag-clientid header)
          type: string
          pattern: ^\S+$
      title: TrojAIClientIdAuth
      x-fern-type-name: TrojAIClientIdAuth
    FlyteTaskID:
      type: object
      required:
        - resourceType
        - name
      properties:
        resourceType:
          type: string
          enum:
            - TASK
        name:
          type: string
      title: FlyteTaskID
      x-fern-type-name: FlyteTaskID
    FlyteTaskCustom:
      type: object
      required:
        - truefoundry
      properties:
        truefoundry:
          description: +discriminator=type
          type: object
          oneOf:
            - $ref: '#/components/schemas/PythonTaskConfig'
            - $ref: '#/components/schemas/ContainerTaskConfig'
            - $ref: '#/components/schemas/PySparkTaskConfig'
            - $ref: '#/components/schemas/DatabricksJobTaskConfig'
            - $ref: '#/components/schemas/SnowflakeTaskConfig'
          discriminator:
            propertyName: type
      title: FlyteTaskCustom
      x-fern-type-name: FlyteTaskCustom
    SnowflakeConfig:
      type: object
      required:
        - account
        - schema
        - user
        - warehouse
        - database
      properties:
        account:
          type: string
        schema:
          type: string
        user:
          type: string
        warehouse:
          type: string
        database:
          type: string
      title: SnowflakeConfig
      x-fern-type-name: SnowflakeConfig
    SnowflakeSql:
      type: object
      required:
        - statement
      properties:
        statement:
          type: string
      title: SnowflakeSql
      x-fern-type-name: SnowflakeSql
    LoadBalancingWhen:
      description: Rule Conditions
      type: object
      properties:
        subjects:
          description: List of subjects that this rule applies to
          type: array
          items:
            type: string
        models:
          description: List of models that this rule applies to
          type: array
          items:
            type: string
        metadata:
          description: Metadata key-value pairs that this rule applies to
          type: object
          additionalProperties:
            type: string
      title: LoadBalancingWhen
      x-fern-type-name: LoadBalancingWhen
    TargetConditionGroup:
      type: object
      required:
        - operator
        - conditions
      properties:
        operator:
          type: string
          enum:
            - or
        conditions:
          $ref: '#/components/schemas/TargetClause'
      title: TargetConditionGroup
      x-fern-type-name: TargetConditionGroup
    SubjectConditionGroup:
      type: object
      required:
        - operator
        - conditions
      properties:
        operator:
          type: string
          enum:
            - and
            - or
          default: and
        conditions:
          $ref: '#/components/schemas/SubjectClause'
      title: SubjectConditionGroup
      x-fern-type-name: SubjectConditionGroup
    BudgetV2PerUserOverride:
      description: Per-User Override
      type: object
      required:
        - users
        - limits
      properties:
        users:
          description: Users whose usage uses this override instead of the default limits
          type: array
          items:
            type: string
        limits:
          $ref: '#/components/schemas/BudgetV2OverrideLimits'
      title: BudgetV2PerUserOverride
      x-fern-type-name: BudgetV2PerUserOverride
    BudgetV2PerModelOverride:
      description: Per-Model Override
      type: object
      required:
        - models
        - limits
      properties:
        models:
          description: Models whose usage uses this override instead of the default limits
          type: array
          items:
            type: string
        limits:
          $ref: '#/components/schemas/BudgetV2OverrideLimits'
      title: BudgetV2PerModelOverride
      x-fern-type-name: BudgetV2PerModelOverride
    BudgetV2PerVirtualAccountOverride:
      description: Per-Virtual-Account Override
      type: object
      required:
        - virtual_accounts
        - limits
      properties:
        virtual_accounts:
          description: >-
            Virtual accounts whose usage uses this override instead of the
            default limits
          type: array
          items:
            type: string
        limits:
          $ref: '#/components/schemas/BudgetV2OverrideLimits'
      title: BudgetV2PerVirtualAccountOverride
      x-fern-type-name: BudgetV2PerVirtualAccountOverride
    BudgetV2PerMetadataOverride:
      description: Per-Metadata Override
      type: object
      required:
        - metadata_values
        - limits
      properties:
        metadata_values:
          description: >-
            Metadata values whose usage uses this override instead of the
            default limits
          type: array
          items:
            type: string
        limits:
          $ref: '#/components/schemas/BudgetV2OverrideLimits'
      title: BudgetV2PerMetadataOverride
      x-fern-type-name: BudgetV2PerMetadataOverride
    OTELTracesExporterSpanAttributeFilter:
      description: Filter configuration for filtering spans by attributes before exporting
      type: object
      required:
        - field
        - key
        - operator
        - value
      properties:
        field:
          description: Type of attribute field to filter on
          type: string
          enum:
            - spanAttributes
        key:
          description: Key name of the span attribute to filter on
          type: string
        operator:
          description: Comparison operator to use for filtering
          type: string
          enum:
            - IN
        value:
          description: Values
          type: array
          items:
            type: string
      title: OTELTracesExporterSpanAttributeFilter
      x-fern-type-name: OTELTracesExporterSpanAttributeFilter
    DataAccessRuleBase:
      description: Data Access Rule
      type: object
      required:
        - id
        - subjects
        - data_types
      properties:
        id:
          description: Unique identifier for the rule
          type: string
          pattern: ^[A-Za-z{}][A-Za-z0-9{}._-]{0,60}[A-Za-z0-9{}._]$
        description:
          description: Description of the rule
          type: string
        enabled:
          description: Whether this rule is enabled
          type: boolean
          default: true
        subjects:
          description: List of subjects that this rule applies to (users, teams, roles)
          type: array
          items:
            type: string
        data_types:
          description: List of data types that this rule applies to
          type: array
          items:
            $ref: '#/components/schemas/GatewayDataType'
          default:
            - traces
            - metrics
      title: DataAccessRuleBase
      x-fern-type-name: DataAccessRuleBase
    GatewayDataMetadataFilter:
      description: Metadata Filter
      type: object
      required:
        - field
        - key
        - operator
        - value
      properties:
        field:
          description: Filter type
          type: string
          enum:
            - metadata
        key:
          description: Metadata key to filter on
          type: string
        operator:
          description: Comparison operator
          type: string
          enum:
            - IN
        value:
          description: Values to match against
          type: array
          items:
            type: string
      title: GatewayDataMetadataFilter
      x-fern-type-name: GatewayDataMetadataFilter
    GatewayDataCreatedByFilter:
      description: Created By Filter
      type: object
      required:
        - field
        - operator
        - value
      properties:
        field:
          description: Filter type
          type: string
          enum:
            - created_by
        operator:
          description: Comparison operator
          type: string
          enum:
            - IN
        value:
          description: List of subjects (users, virtual accounts, teams) to filter by
          type: array
          items:
            type: string
      title: GatewayDataCreatedByFilter
      x-fern-type-name: GatewayDataCreatedByFilter
    GatewayDataRoutingConfigDestinationMetadataCondition:
      description: Metadata condition for data routing destinations.
      type: object
      required:
        - field
        - key
        - operator
        - value
      properties:
        field:
          description: Field to evaluate the condition on
          type: string
          enum:
            - metadata
        key:
          description: Metadata key to match
          type: string
        operator:
          description: Operator to use for comparison
          type: string
          enum:
            - IN
        value:
          description: Value to compare against
          type: array
          items:
            type: string
      title: GatewayDataRoutingConfigDestinationMetadataCondition
      x-fern-type-name: GatewayDataRoutingConfigDestinationMetadataCondition
    GatewayDataRoutingConfigDestinationCreatedByCondition:
      description: Created by condition for data routing destinations.
      type: object
      required:
        - field
        - operator
        - value
      properties:
        field:
          description: Field to evaluate the condition on
          type: string
          enum:
            - created_by
        operator:
          description: Operator to use for comparison
          type: string
          enum:
            - IN
        value:
          description: Value to compare against
          type: array
          items:
            type: string
      title: GatewayDataRoutingConfigDestinationCreatedByCondition
      x-fern-type-name: GatewayDataRoutingConfigDestinationCreatedByCondition
    TrueFoundryAgentCompactionConfig:
      type: object
      required:
        - enabled
      properties:
        enabled:
          type: boolean
          default: true
        compaction_threshold_tokens:
          type: integer
          default: 50000
      title: TrueFoundryAgentCompactionConfig
      x-fern-type-name: TrueFoundryAgentCompactionConfig
    TrueFoundryAgentLargeToolResponseConfig:
      type: object
      required:
        - enabled
      properties:
        enabled:
          type: boolean
          default: true
      title: TrueFoundryAgentLargeToolResponseConfig
      x-fern-type-name: TrueFoundryAgentLargeToolResponseConfig
    CustomServerHeaderAuth:
      description: Static API key or token authentication via request headers.
      type: object
      required:
        - type
        - headers
      properties:
        type:
          description: +value=header
          type: string
          enum:
            - header
        headers:
          type: object
          additionalProperties:
            type: string
      title: CustomServerHeaderAuth
      x-fern-type-name: CustomServerHeaderAuth
    CustomServerPassthrough:
      description: >-
        Authenticate using your existing TrueFoundry account (PAT or Virtual
        Accounts). Your credentials are automatically passed to the server.
      type: object
      required:
        - type
      properties:
        type:
          description: +value=passthrough
          type: string
          enum:
            - passthrough
      title: CustomServerPassthrough
      x-fern-type-name: CustomServerPassthrough
    A2AFramework:
      description: A2A
      type: object
      required:
        - type
        - agent_card_path
      properties:
        type:
          description: Type
          type: string
          enum:
            - a2a
        agent_card_path:
          description: Path to the agent card JSON, relative to the base URL
          type: string
          default: /.well-known/agent-card.json
      title: A2AFramework
      x-fern-type-name: A2AFramework
    CustomFramework:
      description: Custom
      type: object
      required:
        - type
      properties:
        type:
          description: Type
          type: string
          enum:
            - custom
      title: CustomFramework
      x-fern-type-name: CustomFramework
    A2AAgentSkill:
      type: object
      required:
        - id
        - name
        - description
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        tags:
          type: array
          items:
            type: string
        examples:
          type: array
          items:
            type: string
        inputModes:
          type: array
          items:
            type: string
        outputModes:
          type: array
          items:
            type: string
      title: A2AAgentSkill
      x-fern-type-name: A2AAgentSkill
    MCPServerOAuth2ProviderAuth0Settings:
      type: object
      properties:
        use_organization:
          description: >-
            When enabled, organization will be extracted from the inbound token
            and it will be included as the organization parameter on token
            endpoint requests.
          type: boolean
        default_organization:
          description: >-
            Fallback Auth0 organization when the inbound token does not include
            organization.
          type: string
          pattern: ^\S+$
      title: MCPServerOAuth2ProviderAuth0Settings
      x-fern-type-name: MCPServerOAuth2ProviderAuth0Settings
    AzureOAuth:
      description: Azure OAuth
      type: object
      required:
        - type
        - tenant_id
        - client_id
        - client_secret
        - subscription_id
      properties:
        type:
          description: +value=oauth
          type: string
          enum:
            - oauth
        tenant_id:
          description: The Azure Active Directory tenant (directory) ID.
          type: string
          pattern: ^\S+$
        client_id:
          description: The client (application) ID of an App Registration in the tenant.
          type: string
          pattern: ^\S+$
        client_secret:
          description: A client secret that was generated for the App Registration.
          type: string
          pattern: ^\S+$
        subscription_id:
          description: The ID of the target subscription. The value must be an UUID.
          type: string
          pattern: ^\S+$
      title: AzureOAuth
      x-fern-type-name: AzureOAuth
    AzureBasicAuth:
      description: Azure Basic Auth
      type: object
      required:
        - type
        - username
        - password
      properties:
        type:
          description: +value=basic-auth
          type: string
          enum:
            - basic-auth
        username:
          description: The username for the Azure managed identity.
          type: string
          pattern: ^\S+$
        password:
          description: The password for the Azure managed identity.
          type: string
      title: AzureBasicAuth
      x-fern-type-name: AzureBasicAuth
    AzureConnectionStringAuth:
      description: Azure Connection String
      type: object
      required:
        - type
        - connection_string
      properties:
        type:
          description: +value=connection-string
          type: string
          enum:
            - connection-string
        connection_string:
          description: The connection string for the Azure managed identity.
          type: string
          pattern: ^\S+$
      title: AzureConnectionStringAuth
      x-fern-type-name: AzureConnectionStringAuth
    SMTPCredentials:
      description: SMTP Credentials
      type: object
      required:
        - type
        - host
        - port
        - tls
      properties:
        type:
          description: |-
            +value=smtp-credentials
            +sort=250
          type: string
          enum:
            - smtp-credentials
        host:
          description: The SMTP host of the email server.
          type: string
          pattern: ^\S+$
        username:
          description: The username for the SMTP server.
          type: string
          minLength: 1
        password:
          description: The password for the SMTP server.
          type: string
          minLength: 1
        port:
          description: The port of the SMTP server.
          type: integer
          default: 587
        tls:
          description: Whether to use TLS for the SMTP server.
          type: boolean
          default: true
      title: SMTPCredentials
      x-fern-type-name: SMTPCredentials
    OAuth2LoginProvider:
      type: object
      properties:
        type:
          description: +value=oauth2
          type: string
          enum:
            - oauth2
      allOf:
        - $ref: '#/components/schemas/BaseOAuth2Login'
      required:
        - type
      title: OAuth2LoginProvider
      x-fern-type-name: OAuth2LoginProvider
    SlackWebhookAuth:
      type: object
      required:
        - type
        - webhook_url
      properties:
        type:
          description: +value=auth/slack-webhook
          type: string
          enum:
            - slack-webhook
        webhook_url:
          description: The URL of the slack webhook
          type: string
          pattern: >-
            ^(https://hooks\.slack\.com/services/[a-zA-Z0-9]+/[a-zA-Z0-9]+/[a-zA-Z0-9]+|tfy-secret://.+)$
      title: SlackWebhookAuth
      x-fern-type-name: SlackWebhookAuth
    SlackBotAuth:
      type: object
      required:
        - type
        - bot_token
      properties:
        type:
          description: +value=auth/slack-bot
          type: string
          enum:
            - slack-bot
        bot_token:
          description: >-
            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
          type: string
      title: SlackBotAuth
      x-fern-type-name: SlackBotAuth
    WebhookBasicAuth:
      type: object
      required:
        - type
        - username
        - password
      properties:
        type:
          description: +value=auth/webhook-basic
          type: string
          enum:
            - webhook-basic
        username:
          description: Basic auth username
          type: string
        password:
          description: Basic auth password
          type: string
      title: WebhookBasicAuth
      x-fern-type-name: WebhookBasicAuth
    WebhookBearerAuth:
      type: object
      required:
        - type
        - token
        - prefix
      properties:
        type:
          description: +value=auth/webhook-bearer
          type: string
          enum:
            - webhook-bearer
        token:
          description: Bearer token for authentication
          type: string
        prefix:
          description: Prefix for the token
          type: string
          default: Bearer
      title: WebhookBearerAuth
      x-fern-type-name: WebhookBearerAuth
    PagerDutyIntegrationKeyAuth:
      description: PagerDuty Credentails
      type: object
      required:
        - type
        - integration_key
        - integration_url
      properties:
        type:
          description: +value=pagerduty-integration-auth
          type: string
          enum:
            - pagerduty-integration-auth
        integration_key:
          description: The integration key for the PagerDuty integration
          type: string
        integration_url:
          description: The integration URL for the PagerDuty integration
          type: string
      title: PagerDutyIntegrationKeyAuth
      x-fern-type-name: PagerDutyIntegrationKeyAuth
    MSTeamsWebhookAuth:
      description: MS Teams Webhook Auth
      type: object
      required:
        - type
        - webhook_url
      properties:
        type:
          description: +value=auth/ms-teams-webhook
          type: string
          enum:
            - ms-teams-webhook
        webhook_url:
          description: The Microsoft Teams Incoming Webhook URL
          type: string
      title: MSTeamsWebhookAuth
      x-fern-type-name: MSTeamsWebhookAuth
    HashicorpTokenAuth:
      description: Vault Token Auth
      type: object
      required:
        - type
        - token
      properties:
        type:
          description: +value=token
          type: string
          enum:
            - token
        token:
          description: Vault authentication token that you want to use for authentication.
          type: string
          pattern: ^\S+$
      title: HashicorpTokenAuth
      x-fern-type-name: HashicorpTokenAuth
    HashicorpAppRoleAuth:
      description: >-
        Role ID and secret ID from your AppRole. Token policies must allow KV v2
        data and metadata on this mount for your root path, secret paths, and
        the connection check.
      type: object
      required:
        - type
        - role_id
        - secret_id
      properties:
        type:
          description: +value=approle
          type: string
          enum:
            - approle
        role_id:
          description: AppRole role ID for Vault authentication.
          type: string
          pattern: ^\S+$
        secret_id:
          description: AppRole secret ID for Vault authentication.
          type: string
          pattern: ^\S+$
      title: HashicorpAppRoleAuth
      x-fern-type-name: HashicorpAppRoleAuth
    PerThousandTokensCostMetric:
      type: object
      required:
        - metric
        - value
      properties:
        metric:
          description: +value=per_1000_tokens
          type: string
          pattern: ^per_1000_tokens$
        value:
          $ref: '#/components/schemas/InputOutputBasedCostMetricValue'
      title: PerThousandTokensCostMetric
      x-fern-type-name: PerThousandTokensCostMetric
    PerThousandEmbeddingTokensCostMetric:
      type: object
      required:
        - metric
        - value
      properties:
        metric:
          description: +value=per_1000_embedding_tokens
          type: string
          pattern: ^per_1000_embedding_tokens$
        value:
          $ref: '#/components/schemas/NonNegativeFloat'
      title: PerThousandEmbeddingTokensCostMetric
      x-fern-type-name: PerThousandEmbeddingTokensCostMetric
    PerMillionCharactersCostMetric:
      description: Private rate per million characters of input (Cloud TTS-style billing).
      type: object
      required:
        - metric
        - value
      properties:
        metric:
          description: +value=per_million_characters
          type: string
          pattern: ^per_million_characters$
        value:
          type: object
          required:
            - input
          properties:
            input:
              $ref: '#/components/schemas/NonNegativeFloat'
      title: PerMillionCharactersCostMetric
      x-fern-type-name: PerMillionCharactersCostMetric
    PerMinuteOfAudioCostMetric:
      description: >-
        Private rate per minute of billed audio (Cloud STT-style billing). Admin
        enters $/minute from the provider pricing page.
      type: object
      required:
        - metric
        - value
      properties:
        metric:
          description: +value=per_minute_of_audio
          type: string
          pattern: ^per_minute_of_audio$
        value:
          type: object
          required:
            - input
          properties:
            input:
              $ref: '#/components/schemas/NonNegativeFloat'
      title: PerMinuteOfAudioCostMetric
      x-fern-type-name: PerMinuteOfAudioCostMetric
    OCRCostMetric:
      type: object
      required:
        - metric
        - value
      properties:
        metric:
          description: +value=per_1000_pages
          type: string
          pattern: ^per_1000_pages$
        value:
          $ref: '#/components/schemas/OCRCostMetricValue'
      title: OCRCostMetric
      x-fern-type-name: OCRCostMetric
    PublicCostMetric:
      type: object
      required:
        - metric
      properties:
        metric:
          description: +value=public_cost
          type: string
          pattern: ^public_cost$
      title: PublicCostMetric
      x-fern-type-name: PublicCostMetric
    CustomEndpointTargetConfig:
      description: >-
        Per-endpoint load balancing settings for a load-balanced custom-endpoint
        provider account. Only effective when the parent account has
        routing_type set to "weight" or "priority".
      type: object
      properties:
        weight:
          description: >-
            Relative weight for routing decisions (higher values mean more
            traffic). Weights across all endpoints in the account must sum to
            100.
          type: integer
          minimum: 0
          maximum: 100
        priority:
          description: >-
            Priority for the endpoint, Lower the number, higher the priority (0
            is the highest priority)
          type: integer
          minimum: 0
        fallback_status_codes:
          description: >-
            Status Codes for which the request will fall back to other
            endpoints. If the status code is not present in
            fallback_status_codes, it fails immediately.
          type: array
          items:
            type: string
          default:
            - '401'
            - '403'
            - '404'
            - '408'
            - '429'
            - '500'
            - '502'
            - '503'
        fallback_candidate:
          description: >-
            Whether this endpoint is a fallback candidate. If set to false, this
            endpoint will not be considered as a fallback option for the
            account.
          type: boolean
          default: true
        metadata_match:
          description: >-
            Optional metadata key-value pairs that must match incoming request
            metadata headers for this endpoint to be considered for routing.
          type: object
          additionalProperties:
            type: string
      title: CustomEndpointTargetConfig
      x-fern-type-name: CustomEndpointTargetConfig
    PatronusAnswerRelevanceEvaluator:
      type: object
      required:
        - type
        - criteria
      properties:
        type:
          description: The type of the evaluator to use for the Patronus Guardrail.
          type: string
          enum:
            - answer-relevance
        criteria:
          $ref: '#/components/schemas/PatronusAnswerRelevanceCriteria'
      title: PatronusAnswerRelevanceEvaluator
      x-fern-type-name: PatronusAnswerRelevanceEvaluator
    PatronusGliderEvaluator:
      type: object
      required:
        - type
        - criteria
      properties:
        type:
          description: The type of the evaluator to use for the Patronus Guardrail.
          type: string
          enum:
            - glider
        criteria:
          $ref: '#/components/schemas/PatronusGliderCriteria'
      title: PatronusGliderEvaluator
      x-fern-type-name: PatronusGliderEvaluator
    PatronusJudgeEvaluator:
      type: object
      required:
        - type
        - criteria
      properties:
        type:
          description: The type of the evaluator to use for the Patronus Guardrail.
          type: string
          enum:
            - judge
        criteria:
          $ref: '#/components/schemas/PatronusJudgeCriteria'
      title: PatronusJudgeEvaluator
      x-fern-type-name: PatronusJudgeEvaluator
    PatronusPIIEvaluator:
      type: object
      required:
        - type
        - criteria
      properties:
        type:
          description: The type of the evaluator to use for the Patronus Guardrail.
          type: string
          enum:
            - pii
        criteria:
          $ref: '#/components/schemas/PatronusPIICriteria'
      title: PatronusPIIEvaluator
      x-fern-type-name: PatronusPIIEvaluator
    PatronusPhiEvaluator:
      type: object
      required:
        - type
        - criteria
      properties:
        type:
          description: The type of the evaluator to use for the Patronus Guardrail.
          type: string
          enum:
            - phi
        criteria:
          $ref: '#/components/schemas/PatronusPhiCriteria'
      title: PatronusPhiEvaluator
      x-fern-type-name: PatronusPhiEvaluator
    PatronusToxicityEvaluator:
      type: object
      required:
        - type
        - criteria
      properties:
        type:
          description: The type of the evaluator to use for the Patronus Guardrail.
          type: string
          enum:
            - toxicity
        criteria:
          $ref: '#/components/schemas/PatronusToxicityCriteria'
      title: PatronusToxicityEvaluator
      x-fern-type-name: PatronusToxicityEvaluator
    PresetRegexPatternEnum:
      type: string
      enum:
        - us_ssn
        - us_ssn_no_dash
        - email
        - us_phone
        - visa
        - mastercard
        - amex
        - discover
        - credit_card
        - aws_access_key
        - aws_secret_key
        - github_token
        - slack_token
        - generic_api_key
        - ipv4
        - ipv6
        - url
        - passport_us
        - passport_uk
        - passport_germany
        - passport_france
        - passport_netherlands
        - passport_canada
        - passport_india
        - passport_australia
        - passport_china
        - passport_japan
        - gender_sexual_orientation
        - race_ethnicity_national_origin
        - religion
        - age_discrimination
        - disability
        - marital_family_status
        - military_status
        - public_assistance
        - weapons_firearms
        - weapons_other
        - explosives
        - violence_threats
        - terrorism
        - self_harm_suicide
        - illegal_activities
        - harassment_hate
      title: PresetRegexPatternEnum
      x-fern-type-name: PresetRegexPatternEnum
    KeyPresenceSpec:
      description: >-
        Only the key is checked — any value will pass. Once configured, the key
        must be present in the metadata header.
      type: object
      properties:
        required:
          description: >-
            +uiType=Hidden

            +value=true

            A presence rule that doesn't require the key is a no-op, so this is
            fixed to true.
          type: boolean
          enum:
            - true
      title: KeyPresenceSpec
      x-fern-type-name: KeyPresenceSpec
    KeyValueSpec:
      description: >-
        Validate the value against a regex or a fixed list. The key is optional
        unless Required is on.
      type: object
      required:
        - required
        - value
      properties:
        required:
          description: >-
            When on, the key must be present. When off, the key is optional but
            if present must still match the constraint.
          type: boolean
          default: true
        value:
          $ref: '#/components/schemas/ValueConstraint'
      title: KeyValueSpec
      x-fern-type-name: KeyValueSpec
    OPAHeaderAuth:
      description: Authentication via custom HTTP headers for OPA server
      type: object
      required:
        - type
        - headers
      properties:
        type:
          description: +value=header
          type: string
          enum:
            - header
        headers:
          description: >-
            Custom headers to include in requests to OPA server (e.g.,
            {"Authorization": "Bearer <token>", "X-API-Key": "<key>"})
          type: object
          additionalProperties:
            type: string
            pattern: ^\S+$
      title: OPAHeaderAuth
      x-fern-type-name: OPAHeaderAuth
    OPABearerAuth:
      description: Authentication using a bearer token for OPA server
      type: object
      required:
        - type
        - bearer_token
      properties:
        type:
          description: +value=bearer-auth
          type: string
          enum:
            - bearer-auth
        bearer_token:
          description: The bearer token for OPA server authentication.
          type: string
          pattern: ^\S+$
      title: OPABearerAuth
      x-fern-type-name: OPABearerAuth
    PythonTaskConfig:
      description: Describes the configuration for the python function task
      type: object
      required:
        - type
        - image
      properties:
        type:
          description: +value=python-task-config
          type: string
          enum:
            - python-task-config
        image:
          description: Specify the image spec for the task
          type: object
          oneOf:
            - $ref: '#/components/schemas/TaskPythonBuild'
            - $ref: '#/components/schemas/TaskDockerFileBuild'
          discriminator:
            propertyName: type
        env:
          description: >-
            Configure environment variables to be injected in the task either as
            plain text or secrets.
            [Docs](https://docs.truefoundry.com/docs/env-variables)
          type: object
          default: null
          additionalProperties:
            type: string
          nullable: true
        resources:
          $ref: '#/components/schemas/Resources'
        mounts:
          description: Configure data to be mounted to Workflow pod(s) as a volume.
          type: array
          items:
            type: object
            oneOf:
              - $ref: '#/components/schemas/SecretMount'
              - $ref: '#/components/schemas/StringDataMount'
              - $ref: '#/components/schemas/VolumeMount'
        service_account:
          description: Service Account
          type: string
      title: PythonTaskConfig
      x-fern-type-name: PythonTaskConfig
    ContainerTaskConfig:
      type: object
      required:
        - type
        - image
      properties:
        type:
          description: +value=container-task-config
          type: string
          enum:
            - container-task-config
        image:
          description: >-
            Specify whether you want to deploy a Docker image or build and
            deploy from source code
          type: object
          oneOf:
            - $ref: '#/components/schemas/Build'
            - $ref: '#/components/schemas/Image'
          discriminator:
            propertyName: type
        env:
          description: >-
            Configure environment variables to be injected in the task either as
            plain text or secrets.
            [Docs](https://docs.truefoundry.com/docs/env-variables)
          type: object
          default: null
          additionalProperties:
            type: string
          nullable: true
        resources:
          $ref: '#/components/schemas/Resources'
        mounts:
          description: Configure data to be mounted to Workflow pod(s) as a volume.
          type: array
          items:
            type: object
            oneOf:
              - $ref: '#/components/schemas/SecretMount'
              - $ref: '#/components/schemas/StringDataMount'
              - $ref: '#/components/schemas/VolumeMount'
        service_account:
          description: Service Account
          type: string
      title: ContainerTaskConfig
      x-fern-type-name: ContainerTaskConfig
    PySparkTaskConfig:
      type: object
      required:
        - type
        - image
        - driver_config
        - executor_config
      properties:
        type:
          description: +value=pyspark-task-config
          type: string
          enum:
            - pyspark-task-config
        image:
          $ref: '#/components/schemas/TaskPySparkBuild'
        driver_config:
          $ref: '#/components/schemas/SparkDriverConfig'
        executor_config:
          $ref: '#/components/schemas/SparkExecutorConfig'
        spark_conf:
          description: >-
            Extra configuration properties to be passed to the spark job.
            [Docs](https://spark.apache.org/docs/latest/configuration.html)
          type: object
          default: null
          additionalProperties:
            type: string
            minLength: 1
          nullable: true
        env:
          description: >-
            Configure environment variables to be injected in the task either as
            plain text or secrets.
            [Docs](https://docs.truefoundry.com/docs/env-variables)
          type: object
          default: null
          additionalProperties:
            type: string
          nullable: true
        mounts:
          description: Configure data to be mounted to Workflow pod(s) as a volume.
          type: array
          items:
            $ref: '#/components/schemas/VolumeMount'
        service_account:
          description: Service Account
          type: string
      title: PySparkTaskConfig
      x-fern-type-name: PySparkTaskConfig
    DatabricksJobTaskConfig:
      description: >-
        Task that triggers a Databricks job via API and polls until completion.
        Uses image and optional resources; no env or mounts. Execution is
        handled by the CLI (trigger + poll).
      type: object
      required:
        - type
        - image
        - workspace_host
        - job_id
      properties:
        type:
          description: +value=databricks-job-task-config
          type: string
          enum:
            - databricks-job-task-config
        image:
          description: Specify the image spec for the task
          type: object
          oneOf:
            - $ref: '#/components/schemas/TaskPythonBuild'
            - $ref: '#/components/schemas/TaskDockerFileBuild'
          discriminator:
            propertyName: type
        workspace_host:
          description: >-
            Databricks workspace URL, e.g.
            https://<workspace>.cloud.databricks.com
          type: string
        job_id:
          description: The Databricks job ID to run (from Databricks workspace Jobs).
          type: string
        service_account:
          description: Service Account
          type: string
        job_parameters:
          description: >-
            Optional parameters to pass to the job run (e.g. notebook params,
            jar params).
          type: object
          default: null
          additionalProperties:
            type: string
          nullable: true
        timeout_seconds:
          description: >-
            Maximum seconds to wait for the job run to complete. Used by CLI
            when polling.
          type: number
          default: null
          nullable: true
        skip_wait_for_completion:
          description: >-
            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.
          type: boolean
          default: false
        env:
          description: >-
            Configure environment variables to be injected in the task either as
            plain text or secrets.
            [Docs](https://docs.truefoundry.com/docs/env-variables)
          type: object
          default: null
          additionalProperties:
            type: string
          nullable: true
        resources:
          $ref: '#/components/schemas/Resources'
      title: DatabricksJobTaskConfig
      x-fern-type-name: DatabricksJobTaskConfig
    SnowflakeTaskConfig:
      type: object
      required:
        - type
        - user
        - account
        - database
        - schema_name
        - warehouse
      properties:
        type:
          description: +value=snowflake-task-config
          type: string
          enum:
            - snowflake-task-config
        user:
          description: Configuration required to connect and execute tasks in Snowflake.
          type: string
        account:
          description: Snowflake account identifier (e.g., <org>-<account>).
          type: string
        database:
          description: Target Snowflake database where the task will run.
          type: string
        schema_name:
          description: Target schema within the Snowflake database.
          type: string
        warehouse:
          description: Compute warehouse to be used for executing the task.
          type: string
      title: SnowflakeTaskConfig
      x-fern-type-name: SnowflakeTaskConfig
    TargetClause:
      type: object
      properties:
        mcpServers:
          $ref: '#/components/schemas/InNotInOperator'
        mcpTools:
          $ref: '#/components/schemas/MCPToolsOperator'
        model:
          $ref: '#/components/schemas/InNotInOperator'
      title: TargetClause
      x-fern-type-name: TargetClause
    SubjectClause:
      type: object
      properties:
        in:
          type: array
          items:
            type: string
        not_in:
          type: array
          items:
            type: string
      title: SubjectClause
      x-fern-type-name: SubjectClause
    BudgetV2OverrideLimits:
      description: Override Limits
      type: object
      properties:
        cost_per_day:
          description: Override daily cost cap in USD
          type: number
        cost_per_week:
          description: Override weekly cost cap in USD
          type: number
        cost_per_month:
          description: Override monthly cost cap in USD
          type: number
        cost_per_quarter:
          description: Override quarterly cost cap in USD
          type: number
      title: BudgetV2OverrideLimits
      x-fern-type-name: BudgetV2OverrideLimits
    GatewayDataType:
      type: string
      enum:
        - traces
        - metrics
      title: GatewayDataType
      x-fern-type-name: GatewayDataType
    BaseOAuth2Login:
      description: OAuth2 client configuration to get the JWT.
      type: object
      required:
        - client_id
        - authorization_url
        - token_url
        - scopes
        - jwt_source
      properties:
        client_id:
          description: client ID for OAuth2.
          type: string
          pattern: ^\S+$
        client_secret:
          description: >-
            Client secret or the TrueFoundry secret containing the client secret
            for OAuth2.
          type: string
          minLength: 1
        authorization_url:
          description: URL for the authorization request
          type: string
          pattern: ^https:\/\/(([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z]{2,63})(\/[^\s]*)?$
        token_url:
          description: The endpoint to exchange auth code for tokens.
          type: string
          pattern: ^https:\/\/(([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z]{2,63})(\/[^\s]*)?$
        scopes:
          description: List of scopes to request from the OAuth2 provider.
          type: array
          items:
            type: string
            minLength: 1
        jwt_source:
          description: Source of the JWT token to be used for verification.
          type: string
          enum:
            - access_token
            - id_token
          default: access_token
      title: BaseOAuth2Login
      x-fern-type-name: BaseOAuth2Login
    InputOutputBasedCostMetricValue:
      type: object
      required:
        - input
        - output
      properties:
        input:
          $ref: '#/components/schemas/NonNegativeFloat'
        output:
          $ref: '#/components/schemas/NonNegativeFloat'
        cache_read:
          $ref: '#/components/schemas/NonNegativeFloat'
        cache_write:
          $ref: '#/components/schemas/NonNegativeFloat'
        input_tiers:
          description: >-
            Optional volume-based pricing tiers for input tokens. Tokens up to
            the first tier use base rate above.
          type: array
          items:
            $ref: '#/components/schemas/PrivatePricingTier'
        output_tiers:
          description: >-
            Optional volume-based pricing tiers for output tokens. Tokens up to
            the first tier use base rate above.
          type: array
          items:
            $ref: '#/components/schemas/PrivatePricingTier'
        cache_read_tiers:
          description: >-
            Optional volume-based pricing tiers for cache read tokens. Tokens up
            to the first tier use base rate above.
          type: array
          items:
            $ref: '#/components/schemas/PrivatePricingTier'
        cache_write_tiers:
          description: >-
            Optional volume-based pricing tiers for cache write tokens. Tokens
            up to the first tier use base rate above.
          type: array
          items:
            $ref: '#/components/schemas/PrivatePricingTier'
      title: InputOutputBasedCostMetricValue
      x-fern-type-name: InputOutputBasedCostMetricValue
    NonNegativeFloat:
      description: +uiProps={"allowDecimal":true, "allowNegative":false}
      type: number
      minimum: 0
      title: NonNegativeFloat
      x-fern-type-name: NonNegativeFloat
    OCRCostMetricValue:
      type: object
      required:
        - pages
      properties:
        pages:
          $ref: '#/components/schemas/NonNegativeFloat'
        annotated_pages:
          $ref: '#/components/schemas/NonNegativeFloat'
      title: OCRCostMetricValue
      x-fern-type-name: OCRCostMetricValue
    PatronusAnswerRelevanceCriteria:
      type: string
      enum:
        - patronus:answer-relevance
      title: PatronusAnswerRelevanceCriteria
      x-fern-type-name: PatronusAnswerRelevanceCriteria
    PatronusGliderCriteria:
      type: string
      enum:
        - patronus:is-compliant
        - patronus:is-factually-consistent
        - patronus:is-good-summary
        - patronus:is-harmful-advice
        - patronus:is-informal-tone
      title: PatronusGliderCriteria
      x-fern-type-name: PatronusGliderCriteria
    PatronusJudgeCriteria:
      type: string
      enum:
        - patronus:answer-refusal
        - patronus:no-openai-reference
        - patronus:is-concise
        - patronus:no-apologies
        - patronus:is-polite
        - patronus:is-helpful
        - patronus:clinically-inappropriate-tone
        - patronus:no-harmful-therapeutic-guidance
        - patronus:is-code
        - patronus:is-csv
        - patronus:is-json
        - patronus:no-age-bias
        - patronus:no-gender-bias
        - patronus:no-racial-bias
        - patronus:prompt-injection
      title: PatronusJudgeCriteria
      x-fern-type-name: PatronusJudgeCriteria
    PatronusPIICriteria:
      type: string
      enum:
        - patronus:pii
      title: PatronusPIICriteria
      x-fern-type-name: PatronusPIICriteria
    PatronusPhiCriteria:
      type: string
      enum:
        - patronus:phi
      title: PatronusPhiCriteria
      x-fern-type-name: PatronusPhiCriteria
    PatronusToxicityCriteria:
      type: string
      enum:
        - patronus:toxicity
      title: PatronusToxicityCriteria
      x-fern-type-name: PatronusToxicityCriteria
    ValueConstraint:
      description: Pick how to validate the value.
      type: object
      oneOf:
        - $ref: '#/components/schemas/RegexConstraint'
        - $ref: '#/components/schemas/AllowedValuesConstraint'
      discriminator:
        propertyName: constraint
      title: ValueConstraint
      x-fern-type-name: ValueConstraint
    TaskPythonBuild:
      description: Describes the configuration for the python build for a task
      type: object
      required:
        - type
      properties:
        type:
          description: |-
            +uiType=Hidden
            +value=task-python-build
          type: string
          enum:
            - task-python-build
        docker_registry:
          description: >-
            FQN of the container registry. If you can't find your registry here,

            add it through the [Integrations](/integrations?tab=docker-registry)
            page
          type: string
        python_version:
          description: >-
            Python version to run your application. Should be one of the tags
            listed on [Official Python Docker
            Page](https://hub.docker.com/_/python)
          type: string
          pattern: ^\d+(\.\d+){1,2}([\-\.a-z0-9]+)?$
        requirements_path:
          description: |-
            Path to `requirements.txt` relative to
            `Path to build context`
          type: string
        pip_packages:
          description: |-
            Define pip package requirements.
            In Python/YAML E.g. ["fastapi>=0.90,<1.0", "uvicorn"]
          type: array
          items:
            type: string
        apt_packages:
          description: |-
            Debian packages to install via `apt get`.
            In Python/YAML E.g. ["git", "ffmpeg", "htop"]
          type: array
          items:
            type: string
        cuda_version:
          description: >-
            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 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
          type: string
          pattern: >-
            ^((\d+\.\d+(\.\d+)?-cudnn(\d+)?-(runtime|devel)-ubuntu\d+\.\d+)|11\.0-cudnn8|11\.1-cudnn8|11\.2-cudnn8|11\.3-cudnn8|11\.4-cudnn8|11\.5-cudnn8|11\.6-cudnn8|11\.7-cudnn8|11\.8-cudnn8|12\.0-cudnn8|12\.1-cudnn8|12\.2-cudnn8|12\.3-cudnn9|12\.4-cudnn9|12\.5-cudnn9|12\.6-cudnn9|12\.8-cudnn9|12\.9-cudnn9)$
      title: TaskPythonBuild
      x-fern-type-name: TaskPythonBuild
    TaskDockerFileBuild:
      description: Describes the configuration for the docker build for a task
      type: object
      required:
        - type
        - dockerfile_path
      properties:
        type:
          description: |-
            +uiType=Hidden
            +value=dockerfile
          type: string
          enum:
            - task-dockerfile-build
        docker_registry:
          description: >-
            FQN of the container registry. If you can't find your registry here,

            add it through the [Integrations](/integrations?tab=docker-registry)
            page
          type: string
        dockerfile_path:
          description: The file path of the Dockerfile relative to project root path.
          type: string
          default: ./Dockerfile
        build_args:
          description: Build arguments to pass to docker build
          type: object
          additionalProperties:
            type: string
      title: TaskDockerFileBuild
      x-fern-type-name: TaskDockerFileBuild
    TaskPySparkBuild:
      description: Describes the configuration for the PySpark build for a task
      type: object
      required:
        - type
        - spark_version
      properties:
        type:
          description: |-
            +uiType=Hidden
            +value=task-pyspark-build
          type: string
          enum:
            - task-pyspark-build
        spark_version:
          description: Spark version should match the spark version installed in the image.
          type: string
          default: 3.5.2
        container_image:
          description: >-
            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.
          type: string
          pattern: ^\S+$
        docker_registry:
          description: >-
            FQN of the container registry. If you can't find your registry here,

            add it through the [Integrations](/integrations?tab=docker-registry)
            page
          type: string
        requirements_path:
          description: |-
            Path to `requirements.txt` relative to
            `Path to build context`
          type: string
        pip_packages:
          description: |-
            Define pip package requirements.
            In Python/YAML E.g. ["fastapi>=0.90,<1.0", "uvicorn"]
          type: array
          items:
            type: string
        apt_packages:
          description: |-
            Debian packages to install via `apt get`.
            In Python/YAML E.g. ["git", "ffmpeg", "htop"]
          type: array
          items:
            type: string
      title: TaskPySparkBuild
      x-fern-type-name: TaskPySparkBuild
    InNotInOperator:
      type: object
      required:
        - condition
        - values
      properties:
        condition:
          type: string
          enum:
            - in
            - not_in
          default: in
        values:
          type: array
          items:
            type: string
      title: InNotInOperator
      x-fern-type-name: InNotInOperator
    MCPToolsOperator:
      type: object
      required:
        - condition
        - values
      properties:
        condition:
          type: string
          enum:
            - in
            - not_in
          default: in
        values:
          type: array
          items:
            $ref: '#/components/schemas/MCPToolTarget'
      title: MCPToolsOperator
      x-fern-type-name: MCPToolsOperator
    PrivatePricingTier:
      description: Pricing tier for volume-based pricing (per 1000 tokens)
      type: object
      required:
        - from
        - cost_per_token
      properties:
        from:
          description: >-
            Token count threshold where this pricing tier begins (e.g., 200000
            for 200k tokens)
          type: integer
          minimum: 0
        cost_per_token:
          $ref: '#/components/schemas/NonNegativeFloat'
      title: PrivatePricingTier
      x-fern-type-name: PrivatePricingTier
    RegexConstraint:
      description: When the key is present, its value must match the regex pattern.
      type: object
      required:
        - constraint
        - regex
      properties:
        constraint:
          description: +value=regex
          type: string
          enum:
            - regex
        regex:
          description: Add the regex pattern to compare against.
          type: string
      title: RegexConstraint
      x-fern-type-name: RegexConstraint
    AllowedValuesConstraint:
      description: When the key is present, its value must match one of the allowed values.
      type: object
      required:
        - constraint
        - allowed_values
      properties:
        constraint:
          description: +value=allowed_values
          type: string
          enum:
            - allowed_values
        allowed_values:
          description: >-
            Add each value that should pass. Comparison is exact and
            case-sensitive. At least one entry is required.
          type: array
          items:
            type: string
      title: AllowedValuesConstraint
      x-fern-type-name: AllowedValuesConstraint
    MCPToolTarget:
      type: object
      required:
        - name
        - enable_all_tools
      properties:
        name:
          description: Name of the MCP server
          type: string
        enable_all_tools:
          description: >-
            When enabled, all tools from this MCP server are targeted. Disable
            to select specific tools.
          type: boolean
          default: false
        enabled_tools:
          description: List of specific tools to target from this MCP server.
          type: array
          items:
            type: string
      title: MCPToolTarget
      x-fern-type-name: MCPToolTarget
  securitySchemes:
    jwt:
      type: http
      scheme: bearer
      bearerFormat: JWT

````