@truefoundry/ai-gateway-sdk 0.0.2 → 0.0.4-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -167,6 +167,26 @@
167
167
  },
168
168
  "$schema": "http://json-schema.org/draft-04/schema#"
169
169
  },
170
+ "AIFeaturesModels": {
171
+ "description": "+label=AI Features Models\n+usage=Gateway model to use for each task complexity tier. AI features route each\nrequest to the model matching the estimated difficulty of the task, trading off cost,\nlatency and quality. Each value is a Gateway model FQN in the form provider/model.",
172
+ "type": "object",
173
+ "required": ["simple", "medium", "complex"],
174
+ "properties": {
175
+ "simple": {
176
+ "description": "+label=Simple Tasks\n+usage=Fast, low-cost model for high-volume, well-defined tasks like classification, extraction, formatting and short summaries.\n+sort=1\n+uiType=IntegrationSelect\n+uiProps={\"integrationType\":\"model\",\"descriptionInline\":true,\"valuePattern\":\"${providerAccount.name}/${manifest.name}\"}\n+message=Select a Gateway model for simple tasks",
177
+ "type": "string"
178
+ },
179
+ "medium": {
180
+ "description": "+label=Medium Tasks\n+usage=Balanced mid-tier model for standard tasks like general Q&A, structured output.\n+sort=2\n+uiType=IntegrationSelect\n+uiProps={\"integrationType\":\"model\",\"descriptionInline\":true,\"valuePattern\":\"${providerAccount.name}/${manifest.name}\"}\n+message=Select a Gateway model for medium tasks",
181
+ "type": "string"
182
+ },
183
+ "complex": {
184
+ "description": "+label=Complex Tasks\n+usage=Most capable model for demanding tasks like multi-step reasoning, code generation and nuanced analysis.\n+sort=3\n+uiType=IntegrationSelect\n+uiProps={\"integrationType\":\"model\",\"descriptionInline\":true,\"valuePattern\":\"${providerAccount.name}/${manifest.name}\"}\n+message=Select a Gateway model for complex tasks",
185
+ "type": "string"
186
+ }
187
+ },
188
+ "$schema": "http://json-schema.org/draft-04/schema#"
189
+ },
170
190
  "AIFeaturesSettings": {
171
191
  "description": "+docs=Describes the configuration for TrueFoundry AI features\n+label=AI Features Settings",
172
192
  "type": "object",
@@ -182,9 +202,13 @@
182
202
  "type": "boolean"
183
203
  },
184
204
  "ai_provider": {
185
- "description": "+label=AI Provider\n+usage=AI provider to use for AI features\nWhen TrueFoundry is selected, TrueFoundry will manage and provide the AI models for the features.\n+uiProps={\"disableEdit\":true}",
205
+ "description": "+label=AI Provider\n+usage=AI provider to use for AI features.\nTrueFoundry manages models on SaaS. Self-Managed uses your gateway models.\n+sort=2",
186
206
  "type": "string",
187
- "enum": ["truefoundry"]
207
+ "enum": ["truefoundry", "self-managed"],
208
+ "default": "truefoundry"
209
+ },
210
+ "models": {
211
+ "$ref": "#/definitions/AIFeaturesModels"
188
212
  }
189
213
  },
190
214
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -2289,6 +2313,92 @@
2289
2313
  },
2290
2314
  "$schema": "http://json-schema.org/draft-04/schema#"
2291
2315
  },
2316
+ "AwsAgentCoreHarness": {
2317
+ "description": "+label=AWS AgentCore Harness\n+icon=aws-agentcore-harness\n+usage=Import agents from Amazon Bedrock AgentCore harness into the TrueFoundry agent registry.",
2318
+ "type": "object",
2319
+ "required": ["type", "name", "region"],
2320
+ "properties": {
2321
+ "type": {
2322
+ "description": "+value=integration/agent-registry/aws/agentcore-harness",
2323
+ "type": "string",
2324
+ "enum": ["integration/agent-registry/aws/agentcore-harness"]
2325
+ },
2326
+ "name": {
2327
+ "description": "+label=Display Name\n+usage=The name of the integration that will be displayed in the TrueFoundry UI.\n+sort=100\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number",
2328
+ "type": "string",
2329
+ "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
2330
+ },
2331
+ "region": {
2332
+ "$ref": "#/definitions/AWSRegion"
2333
+ },
2334
+ "syncSchedule": {
2335
+ "$ref": "#/definitions/CronSyncSchedule"
2336
+ },
2337
+ "auth_data": {
2338
+ "description": "+label=Auth Data\n+usage=Custom authentication data for the integration.\n+sort=300\n+discriminator=type",
2339
+ "type": "object",
2340
+ "oneOf": [
2341
+ {
2342
+ "$ref": "#/definitions/AwsAccessKeyBasedAuth"
2343
+ },
2344
+ {
2345
+ "$ref": "#/definitions/AwsAssumedRoleBasedAuth"
2346
+ }
2347
+ ]
2348
+ },
2349
+ "authorized_subjects": {
2350
+ "description": "+label=Access Control\n+usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.\n+sort=600\n+uiType=AuthorizedSubjects",
2351
+ "type": "array",
2352
+ "items": {
2353
+ "type": "string"
2354
+ }
2355
+ }
2356
+ },
2357
+ "$schema": "http://json-schema.org/draft-04/schema#"
2358
+ },
2359
+ "AwsAgentCoreRuntime": {
2360
+ "description": "+label=AWS AgentCore Runtime\n+icon=aws-agentcore-runtime\n+usage=Import agents from Amazon Bedrock AgentCore runtime into the TrueFoundry agent registry.",
2361
+ "type": "object",
2362
+ "required": ["type", "name", "region"],
2363
+ "properties": {
2364
+ "type": {
2365
+ "description": "+value=integration/agent-registry/aws/agentcore-runtime",
2366
+ "type": "string",
2367
+ "enum": ["integration/agent-registry/aws/agentcore-runtime"]
2368
+ },
2369
+ "name": {
2370
+ "description": "+label=Display Name\n+usage=The name of the integration that will be displayed in the TrueFoundry UI.\n+sort=100\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number",
2371
+ "type": "string",
2372
+ "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
2373
+ },
2374
+ "region": {
2375
+ "$ref": "#/definitions/AWSRegion"
2376
+ },
2377
+ "syncSchedule": {
2378
+ "$ref": "#/definitions/CronSyncSchedule"
2379
+ },
2380
+ "auth_data": {
2381
+ "description": "+label=Auth Data\n+usage=Custom authentication data for the integration.\n+sort=300\n+discriminator=type",
2382
+ "type": "object",
2383
+ "oneOf": [
2384
+ {
2385
+ "$ref": "#/definitions/AwsAccessKeyBasedAuth"
2386
+ },
2387
+ {
2388
+ "$ref": "#/definitions/AwsAssumedRoleBasedAuth"
2389
+ }
2390
+ ]
2391
+ },
2392
+ "authorized_subjects": {
2393
+ "description": "+label=Access Control\n+usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.\n+sort=600\n+uiType=AuthorizedSubjects",
2394
+ "type": "array",
2395
+ "items": {
2396
+ "type": "string"
2397
+ }
2398
+ }
2399
+ },
2400
+ "$schema": "http://json-schema.org/draft-04/schema#"
2401
+ },
2292
2402
  "AwsAssumedRoleBasedAuth": {
2293
2403
  "description": "+label=AWS Assumed Role Based Auth",
2294
2404
  "type": "object",
@@ -2629,6 +2739,12 @@
2629
2739
  },
2630
2740
  {
2631
2741
  "$ref": "#/definitions/AwsEksIntegration"
2742
+ },
2743
+ {
2744
+ "$ref": "#/definitions/AwsAgentCoreRuntime"
2745
+ },
2746
+ {
2747
+ "$ref": "#/definitions/AwsAgentCoreHarness"
2632
2748
  }
2633
2749
  ],
2634
2750
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -3686,6 +3802,12 @@
3686
3802
  },
3687
3803
  {
3688
3804
  "$ref": "#/definitions/AzureReposIntegration"
3805
+ },
3806
+ {
3807
+ "$ref": "#/definitions/MicrosoftCopilotStudio"
3808
+ },
3809
+ {
3810
+ "$ref": "#/definitions/MicrosoftFoundry"
3689
3811
  }
3690
3812
  ],
3691
3813
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -6213,6 +6335,78 @@
6213
6335
  },
6214
6336
  "$schema": "http://json-schema.org/draft-04/schema#"
6215
6337
  },
6338
+ "CatoNetworksApiKeyAuth": {
6339
+ "description": "+label=Cato Networks API Key Auth",
6340
+ "type": "object",
6341
+ "required": ["type", "api_key"],
6342
+ "properties": {
6343
+ "type": {
6344
+ "description": "+value=api-key",
6345
+ "type": "string",
6346
+ "enum": ["api-key"]
6347
+ },
6348
+ "api_key": {
6349
+ "description": "+sort=100\n+usage=API key issued by Cato for this AI Security guard. Sent as a Bearer token. The key secret is never forwarded to Cato as the gateway key alias.\n+message=API key must not be empty\n+uiType=SecretSelect\n+uiProps={\"isPassword\": true, \"enableNew\": true}",
6350
+ "type": "string",
6351
+ "pattern": "^\\S+$"
6352
+ }
6353
+ },
6354
+ "$schema": "http://json-schema.org/draft-04/schema#"
6355
+ },
6356
+ "CatoNetworksGuardrailConfig": {
6357
+ "description": "+label=Cato Networks\n+icon=https://assets.production.truefoundry.com/cato.png",
6358
+ "type": "object",
6359
+ "required": ["name", "type", "auth_data", "operation", "enforcing_strategy", "config"],
6360
+ "properties": {
6361
+ "name": {
6362
+ "description": "+label=Name\n+sort=50\n+usage=The name of the Guardrail Config.\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number\n+uiProps={\"disableEdit\":true}",
6363
+ "type": "string",
6364
+ "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
6365
+ },
6366
+ "description": {
6367
+ "description": "+label=Description\n+sort=75\n+usage=Optional description for this Guardrail Config.",
6368
+ "type": "string",
6369
+ "default": "Cato AI Security runtime protection for prompts and model responses"
6370
+ },
6371
+ "type": {
6372
+ "description": "+uiType=Hidden\n+value=integration/guardrail-config/cato-networks",
6373
+ "type": "string",
6374
+ "enum": ["integration/guardrail-config/cato-networks"]
6375
+ },
6376
+ "auth_data": {
6377
+ "$ref": "#/definitions/CatoNetworksApiKeyAuth"
6378
+ },
6379
+ "operation": {
6380
+ "description": "+label=Operation\n+usage=Validate treats a Cato block or anonymize action as a violation and leaves the payload unchanged. Mutate also replaces the messages with Cato's anonymized versions and continues.\nValidate guardrails are run in parallel while mutate guardrails are run sequentially.\n+uiType=MultiSelectPills\n+uiProps={\"hideRadioIcon\": true}\n+sort=100",
6381
+ "type": "string",
6382
+ "enum": ["mutate", "validate"],
6383
+ "default": "mutate"
6384
+ },
6385
+ "priority": {
6386
+ "description": "+label=Priority\n+usage=Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.\n+sort=150",
6387
+ "type": "integer",
6388
+ "minimum": 0,
6389
+ "exclusiveMinimum": true,
6390
+ "default": 1
6391
+ },
6392
+ "enforcing_strategy": {
6393
+ "$ref": "#/definitions/EnforcingStrategy"
6394
+ },
6395
+ "config": {
6396
+ "description": "+uiType=Ignore\n+uiProps={\"forwardJsonKey\": true}",
6397
+ "type": "object",
6398
+ "required": ["base_url"],
6399
+ "properties": {
6400
+ "base_url": {
6401
+ "description": "+label=Base URL\n+usage=Cato API base URL. Use the regional Cato endpoint or the URL of a Cato Outpost in your environment. Trailing slashes are ignored.\n+sort=50\n+message=Base URL must be an http or https URL",
6402
+ "type": "string",
6403
+ "pattern": "^https?:\\/\\/\\S+$"
6404
+ }
6405
+ }
6406
+ }
6407
+ },
6408
+ "$schema": "http://json-schema.org/draft-04/schema#"
6409
+ },
6216
6410
  "CedarGuardrailConfig": {
6217
6411
  "description": "+label=Cedar\n+icon=truefoundry",
6218
6412
  "type": "object",
@@ -7314,10 +7508,6 @@
7314
7508
  "type": "number",
7315
7509
  "minimum": 0
7316
7510
  },
7317
- "cache_read_input_image_token_cost": {
7318
- "type": "number",
7319
- "minimum": 0
7320
- },
7321
7511
  "cache_read_input_token_cost": {
7322
7512
  "type": "number",
7323
7513
  "minimum": 0
@@ -7535,6 +7725,29 @@
7535
7725
  },
7536
7726
  "$schema": "http://json-schema.org/draft-04/schema#"
7537
7727
  },
7728
+ "CronSyncSchedule": {
7729
+ "description": "+label=Cron Sync Schedule",
7730
+ "type": "object",
7731
+ "required": ["type", "expression"],
7732
+ "properties": {
7733
+ "type": {
7734
+ "description": "+value=cron",
7735
+ "type": "string",
7736
+ "enum": ["cron"]
7737
+ },
7738
+ "expression": {
7739
+ "description": "+label=Cron Expression\n+usage=Cron expression for when to run the sync. Minute cannot be configured.\n+uiType=CronInput\n+uiProps={\"disableMinute\": true, \"hideTimezonePicker\": true}\n```\n* * * * *\n | | | |\n | | | |___ day of week (0-6) (Sunday is 0)\n | | |_____ month (1-12)\n | |_______ day of month (1-31)\n |_________ hour (0-23)\n```\n+message=Sync schedule must not specify a minute.",
7740
+ "type": "string",
7741
+ "pattern": "^0 [^ ]+ [^ ]+ [^ ]+ [^ ]+$"
7742
+ },
7743
+ "timezone": {
7744
+ "description": "+label=Timezone\n+uiType=TimezoneSelect\n+usage=Timezone against which the cron schedule will be calculated, e.g. \"Asia/Tokyo\". Default is UTC.\nhttps://docs.truefoundry.com/docs/list-of-supported-timezones",
7745
+ "type": "string",
7746
+ "default": "UTC"
7747
+ }
7748
+ },
7749
+ "$schema": "http://json-schema.org/draft-04/schema#"
7750
+ },
7538
7751
  "CrowdStrikeAIDRGuardrailConfig": {
7539
7752
  "description": "+label=CrowdStrike AIDR\n+icon=https://assets.production.truefoundry.com/crowdstrike-aidr-logo.svg",
7540
7753
  "type": "object",
@@ -7810,7 +8023,7 @@
7810
8023
  "$ref": "#/definitions/CustomHeaderAuth"
7811
8024
  },
7812
8025
  "headers": {
7813
- "description": "+label=Custom Headers\n+usage=Custom headers forwarded to the upstream endpoint with every request. For example: `{\"X-Custom-Header\": \"value\"}`\n+sort=500\n+isAdvanced=true",
8026
+ "description": "+label=Custom Headers\n+usage=Custom headers forwarded to the upstream endpoint with every request. For example: `{\"X-Custom-Header\": \"value\"}`\n+sort=500\n+isAdvanced=true\n+uiProps={\"keyPlaceholder\": \"X-Custom-Header\", \"valuePlaceholder\": \"value\", \"allowSecrets\": true}",
7814
8027
  "type": "object",
7815
8028
  "additionalProperties": {
7816
8029
  "type": "string"
@@ -8124,6 +8337,14 @@
8124
8337
  "type": "string",
8125
8338
  "pattern": "^https:\\/\\/(([a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,63})(\\/[^\\s]*)?$"
8126
8339
  },
8340
+ "audiences": {
8341
+ "description": "+label=Allowed Audiences\n+usage=One or more audience values that must be present in the `aud` claim of incoming JWT tokens. Tokens with an audience not listed here will be rejected. When unset, the login provider client ID is used if configured.\n+sort=350\n+placeholder=e.g. https://api.example.com",
8342
+ "type": "array",
8343
+ "items": {
8344
+ "type": "string",
8345
+ "pattern": "^\\S+$"
8346
+ }
8347
+ },
8127
8348
  "login_provider": {
8128
8349
  "$ref": "#/definitions/OAuth2LoginProvider"
8129
8350
  },
@@ -8659,7 +8880,7 @@
8659
8880
  "$schema": "http://json-schema.org/draft-04/schema#"
8660
8881
  },
8661
8882
  "DatabricksServicePrincipalAuth": {
8662
- "description": "+label=Databricks Service Principal Auth\n+usage=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.",
8883
+ "description": "+label=Databricks Service Principal Auth\n+usage=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. When generating the secret, select the scopes model-serving and ai-gateway.",
8663
8884
  "type": "object",
8664
8885
  "required": ["type", "oauth_secret", "client_id"],
8665
8886
  "properties": {
@@ -12524,25 +12745,66 @@
12524
12745
  "GuardrailsConfig": {
12525
12746
  "description": "+label=Guardrails Configuration",
12526
12747
  "type": "object",
12527
- "required": ["type", "rules"],
12748
+ "required": [
12749
+ "type",
12750
+ "name",
12751
+ "when",
12752
+ "llm_input_guardrails",
12753
+ "llm_output_guardrails",
12754
+ "mcp_tool_pre_invoke_guardrails",
12755
+ "mcp_tool_post_invoke_guardrails"
12756
+ ],
12528
12757
  "properties": {
12529
12758
  "type": {
12530
- "description": "+value=gateway-guardrails-config\n+sort=2",
12759
+ "description": "+value=gateway-guardrails-config\n+sort=1",
12531
12760
  "type": "string",
12532
12761
  "enum": ["gateway-guardrails-config"]
12533
12762
  },
12534
- "rules": {
12535
- "description": "+usage=List of guardrail rules\n+uiProps={\"descriptionInline\":true}\n+sort=3\n+label=Guardrail Rules",
12763
+ "name": {
12764
+ "description": "+usage=Unique name for this guardrails configuration\n+uiProps={\"descriptionInline\":true}\n+label=Configuration Name\n+sort=2",
12765
+ "type": "string",
12766
+ "pattern": "^[a-zA-Z](?:[a-zA-Z0-9\\-]{0,60}[a-zA-Z0-9])$"
12767
+ },
12768
+ "when": {
12769
+ "$ref": "#/definitions/GuardrailsWhen"
12770
+ },
12771
+ "llm_input_guardrails": {
12772
+ "description": "+usage=Guardrail selectors of the guardrails to apply to the input (format: groupName/guardrailName)\n+uiProps={\"descriptionInline\":true}\n+sort=4\n+label=Input Guardrails",
12773
+ "type": "array",
12774
+ "items": {
12775
+ "type": "string"
12776
+ }
12777
+ },
12778
+ "llm_output_guardrails": {
12779
+ "description": "+usage=Guardrail selectors of the guardrails to apply to the output (format: groupName/guardrailName)\n+uiProps={\"descriptionInline\":true}\n+sort=5\n+label=Output Guardrails",
12780
+ "type": "array",
12781
+ "items": {
12782
+ "type": "string"
12783
+ }
12784
+ },
12785
+ "mcp_tool_pre_invoke_guardrails": {
12786
+ "description": "+usage=Guardrail selectors of the guardrails to apply to the MCP tool pre invoke (format: groupName/guardrailName)\n+uiProps={\"descriptionInline\":true}\n+sort=6\n+label=MCP Tool Pre Invoke Guardrails",
12787
+ "type": "array",
12788
+ "items": {
12789
+ "type": "string"
12790
+ }
12791
+ },
12792
+ "mcp_tool_post_invoke_guardrails": {
12793
+ "description": "+usage=Guardrail selectors of the guardrails to apply to the MCP tool post invoke (format: groupName/guardrailName)\n+uiProps={\"descriptionInline\":true}\n+sort=7\n+label=MCP Tool Post Invoke Guardrails",
12536
12794
  "type": "array",
12537
12795
  "items": {
12538
- "$ref": "#/definitions/GuardrailsRule"
12796
+ "type": "string"
12539
12797
  }
12798
+ },
12799
+ "custom_error_message": {
12800
+ "description": "+label=Custom Error Message\n+usage=Optional message returned to the client when a guardrail in this config blocks a request. Supported placeholders: {{guardrail_message}} (default guardrail failure detail), {{failed_guardrails}} (comma-separated list of the guardrails that failed).\n+sort=500\n+isAdvanced=true\n+placeholder=Your request was blocked by {{failed_guardrails}}: {{guardrail_message}}\n+uiProps={\"descriptionInline\":true}",
12801
+ "type": "string"
12540
12802
  }
12541
12803
  },
12542
12804
  "$schema": "http://json-schema.org/draft-04/schema#"
12543
12805
  },
12544
12806
  "GuardrailsRule": {
12545
- "description": "+label=Guardrails Rule",
12807
+ "description": "+label=Guardrails Rule (folded/legacy NATS shape)",
12546
12808
  "type": "object",
12547
12809
  "required": [
12548
12810
  "id",
@@ -13211,7 +13473,7 @@
13211
13473
  },
13212
13474
  "IdentityProviderManifest": {
13213
13475
  "type": "object",
13214
- "required": ["type", "name", "provider", "config", "resolve_token_to"],
13476
+ "required": ["type", "name", "provider", "config"],
13215
13477
  "properties": {
13216
13478
  "type": {
13217
13479
  "description": "+sort=10000\n+value=identity-provider",
@@ -13278,7 +13540,7 @@
13278
13540
  },
13279
13541
  "IdentityProviders": {
13280
13542
  "type": "string",
13281
- "enum": ["custom", "okta", "azure-entra-id", "auth0"],
13543
+ "enum": ["custom", "okta", "azure-entra-id", "kubernetes", "github", "aws", "gcp", "auth0"],
13282
13544
  "default": "custom",
13283
13545
  "$schema": "http://json-schema.org/draft-04/schema#"
13284
13546
  },
@@ -13406,6 +13668,9 @@
13406
13668
  {
13407
13669
  "$ref": "#/definitions/AwsProviderAccount"
13408
13670
  },
13671
+ {
13672
+ "$ref": "#/definitions/SnowflakeProviderAccount"
13673
+ },
13409
13674
  {
13410
13675
  "$ref": "#/definitions/AzureProviderAccount"
13411
13676
  },
@@ -13657,9 +13922,6 @@
13657
13922
  {
13658
13923
  "$ref": "#/definitions/ProvisioningSettings"
13659
13924
  },
13660
- {
13661
- "$ref": "#/definitions/LegacyAgentManifest"
13662
- },
13663
13925
  {
13664
13926
  "$ref": "#/definitions/AgentAppManifest"
13665
13927
  },
@@ -13678,9 +13940,6 @@
13678
13940
  {
13679
13941
  "$ref": "#/definitions/OidcClientManifest"
13680
13942
  },
13681
- {
13682
- "$ref": "#/definitions/AgentManifest"
13683
- },
13684
13943
  {
13685
13944
  "$ref": "#/definitions/ModelConfig"
13686
13945
  },
@@ -13829,6 +14088,12 @@
13829
14088
  "description": "+label=JWKS URI\n+usage=The public HTTPS endpoint exposing your provider's JSON Web Key Set (JWKS). TrueFoundry fetches public keys from this URL to verify JWT signatures — ensure it is reachable from the TrueFoundry control plane.\n+sort=2500\n+message=Must be a valid HTTPS URL.\n+placeholder=https://accounts.example.com/.well-known/jwks.json",
13830
14089
  "type": "string",
13831
14090
  "pattern": "^https://[^\\s/]+(/[^\\s]*)?$"
14091
+ },
14092
+ "token_ttl_seconds": {
14093
+ "description": "+label=Token TTL (seconds)\n+usage=Lifetime of tokens TrueFoundry issues after exchanging a token from this provider. Allowed range is 60 to 3600 seconds.\n+sort=3000\n+message=Must be between 60 and 3600 seconds.",
14094
+ "type": "integer",
14095
+ "minimum": 60,
14096
+ "maximum": 3600
13832
14097
  }
13833
14098
  },
13834
14099
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -14072,7 +14337,7 @@
14072
14337
  }
14073
14338
  },
14074
14339
  "notification_target": {
14075
- "$ref": "#/definitions/NotificationTarget"
14340
+ "$ref": "#/definitions/NotificationTargetForAlertRule"
14076
14341
  },
14077
14342
  "on_start": {
14078
14343
  "description": "+label=On Start\n+usage=Send an alert when the job starts\n+sort=670",
@@ -14788,7 +15053,7 @@
14788
15053
  "local_build": {
14789
15054
  "description": "run docker build locally",
14790
15055
  "type": "boolean",
14791
- "default": true
15056
+ "default": false
14792
15057
  }
14793
15058
  },
14794
15059
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -15908,15 +16173,95 @@
15908
16173
  "enum": ["system", "user", "assistant", "developer"],
15909
16174
  "$schema": "http://json-schema.org/draft-04/schema#"
15910
16175
  },
15911
- "MicrosoftFoundryModel": {
15912
- "description": "+label=Microsoft Foundry Model\n+icon=azure",
16176
+ "MicrosoftCopilotStudio": {
16177
+ "description": "+label=Microsoft Copilot Studio\n+icon=copilot-studio\n+usage=Import agents from Microsoft Copilot Studio into the TrueFoundry agent registry.",
15913
16178
  "type": "object",
15914
- "required": ["type", "name", "model_id", "model_types"],
16179
+ "required": ["type", "name"],
15915
16180
  "properties": {
15916
16181
  "type": {
15917
- "description": "+value=integration/model/microsoft-foundry",
16182
+ "description": "+value=integration/agent-registry/azure/microsoft-copilot-studio",
15918
16183
  "type": "string",
15919
- "enum": ["integration/model/microsoft-foundry"]
16184
+ "enum": ["integration/agent-registry/azure/microsoft-copilot-studio"]
16185
+ },
16186
+ "name": {
16187
+ "description": "+label=Display Name\n+usage=The name of the integration that will be displayed in the TrueFoundry UI.\n+sort=100\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number",
16188
+ "type": "string",
16189
+ "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
16190
+ },
16191
+ "syncSchedule": {
16192
+ "$ref": "#/definitions/CronSyncSchedule"
16193
+ },
16194
+ "auth_data": {
16195
+ "description": "+label=Auth Data\n+usage=Custom authentication data for the integration.\n+sort=300\n+discriminator=type",
16196
+ "type": "object",
16197
+ "oneOf": [
16198
+ {
16199
+ "$ref": "#/definitions/AzureCertificateAuth"
16200
+ },
16201
+ {
16202
+ "$ref": "#/definitions/AzureClientSecretAuth"
16203
+ }
16204
+ ]
16205
+ },
16206
+ "authorized_subjects": {
16207
+ "description": "+label=Access Control\n+usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.\n+sort=600\n+uiType=AuthorizedSubjects",
16208
+ "type": "array",
16209
+ "items": {
16210
+ "type": "string"
16211
+ }
16212
+ }
16213
+ },
16214
+ "$schema": "http://json-schema.org/draft-04/schema#"
16215
+ },
16216
+ "MicrosoftFoundry": {
16217
+ "description": "+label=Microsoft Foundry\n+icon=microsoft-foundry\n+usage=Import agents from Microsoft Foundry into the TrueFoundry agent registry.",
16218
+ "type": "object",
16219
+ "required": ["type", "name"],
16220
+ "properties": {
16221
+ "type": {
16222
+ "description": "+value=integration/agent-registry/azure/microsoft-foundry",
16223
+ "type": "string",
16224
+ "enum": ["integration/agent-registry/azure/microsoft-foundry"]
16225
+ },
16226
+ "name": {
16227
+ "description": "+label=Display Name\n+usage=The name of the integration that will be displayed in the TrueFoundry UI.\n+sort=100\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number",
16228
+ "type": "string",
16229
+ "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
16230
+ },
16231
+ "syncSchedule": {
16232
+ "$ref": "#/definitions/CronSyncSchedule"
16233
+ },
16234
+ "auth_data": {
16235
+ "description": "+label=Auth Data\n+usage=Custom authentication data for the integration.\n+sort=300\n+discriminator=type",
16236
+ "type": "object",
16237
+ "oneOf": [
16238
+ {
16239
+ "$ref": "#/definitions/AzureCertificateAuth"
16240
+ },
16241
+ {
16242
+ "$ref": "#/definitions/AzureClientSecretAuth"
16243
+ }
16244
+ ]
16245
+ },
16246
+ "authorized_subjects": {
16247
+ "description": "+label=Access Control\n+usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.\n+sort=600\n+uiType=AuthorizedSubjects",
16248
+ "type": "array",
16249
+ "items": {
16250
+ "type": "string"
16251
+ }
16252
+ }
16253
+ },
16254
+ "$schema": "http://json-schema.org/draft-04/schema#"
16255
+ },
16256
+ "MicrosoftFoundryModel": {
16257
+ "description": "+label=Microsoft Foundry Model\n+icon=azure",
16258
+ "type": "object",
16259
+ "required": ["type", "name", "model_id", "model_types"],
16260
+ "properties": {
16261
+ "type": {
16262
+ "description": "+value=integration/model/microsoft-foundry",
16263
+ "type": "string",
16264
+ "enum": ["integration/model/microsoft-foundry"]
15920
16265
  },
15921
16266
  "name": {
15922
16267
  "description": "+label=Display Name\n+sort=1\n+usage=A descriptive name to identify this model integration in the UI. Once discovered, this becomes part of the stable client-facing model identifier and should not be changed lightly.\n+message=2 to 64 characters long alphanumeric word, may contain - , . or _ in between, cannot start with a number",
@@ -15980,12 +16325,12 @@
15980
16325
  "pattern": "^[a-z][a-z0-9\\-]{1,30}[a-z0-9]$"
15981
16326
  },
15982
16327
  "openai_endpoint": {
15983
- "description": "+label=Azure OpenAI Endpoint\n+sort=300\n+usage=The classic Azure OpenAI endpoint, e.g. https://{resource-name}.openai.azure.com (the /openai or /openai/v1 suffix is optional and stripped automatically).\n+message=Endpoint URL must not be empty",
16328
+ "description": "+label=Azure OpenAI Endpoint\n+sort=300\n+usage=The classic Azure OpenAI endpoint, e.g. https://{resource-name}.openai.azure.com (the /openai or /openai/v1 suffix is optional and stripped automatically).\n+message=Endpoint URL must not be empty\n+uiProps={\"descriptionInline\":true}",
15984
16329
  "type": "string",
15985
16330
  "pattern": "^\\S+$"
15986
16331
  },
15987
16332
  "project_endpoint": {
15988
- "description": "+label=Project Endpoint\n+sort=310\n+usage=The Microsoft Foundry project endpoint, e.g. https://{resource-name}.services.ai.azure.com/api/projects/{project-name}.\n+message=Endpoint URL must not be empty",
16333
+ "description": "+label=Project Endpoint\n+sort=310\n+usage=The Microsoft Foundry project endpoint, e.g. https://{resource-name}.services.ai.azure.com/api/projects/{project-name}.\n+message=Endpoint URL must not be empty\n+uiProps={\"descriptionInline\":true}",
15989
16334
  "type": "string",
15990
16335
  "pattern": "^\\S+$"
15991
16336
  },
@@ -16213,6 +16558,7 @@
16213
16558
  "ocr",
16214
16559
  "responses",
16215
16560
  "video",
16561
+ "decision",
16216
16562
  "unknown",
16217
16563
  "unsupported"
16218
16564
  ],
@@ -16625,6 +16971,9 @@
16625
16971
  {
16626
16972
  "$ref": "#/definitions/WaferProviderAccount"
16627
16973
  },
16974
+ {
16975
+ "$ref": "#/definitions/TypeSafeProviderAccount"
16976
+ },
16628
16977
  {
16629
16978
  "$ref": "#/definitions/SnowflakeCortexProviderAccount"
16630
16979
  },
@@ -16674,7 +17023,8 @@
16674
17023
  "image",
16675
17024
  "responses",
16676
17025
  "ocr",
16677
- "video"
17026
+ "video",
17027
+ "decision"
16678
17028
  ],
16679
17029
  "$schema": "http://json-schema.org/draft-04/schema#"
16680
17030
  },
@@ -16885,78 +17235,6 @@
16885
17235
  },
16886
17236
  "$schema": "http://json-schema.org/draft-04/schema#"
16887
17237
  },
16888
- "CatoNetworksApiKeyAuth": {
16889
- "description": "+label=Cato Networks API Key Auth",
16890
- "type": "object",
16891
- "required": ["type", "api_key"],
16892
- "properties": {
16893
- "type": {
16894
- "description": "+value=api-key",
16895
- "type": "string",
16896
- "enum": ["api-key"]
16897
- },
16898
- "api_key": {
16899
- "description": "+sort=100\n+usage=API key issued by Cato for this AI Security guard. Sent as a Bearer token. The key secret is never forwarded to Cato as the gateway key alias.\n+message=API key must not be empty\n+uiType=SecretSelect\n+uiProps={\"isPassword\": true, \"enableNew\": true}",
16900
- "type": "string",
16901
- "pattern": "^\\S+$"
16902
- }
16903
- },
16904
- "$schema": "http://json-schema.org/draft-04/schema#"
16905
- },
16906
- "CatoNetworksGuardrailConfig": {
16907
- "description": "+label=Cato Networks\n+icon=https://assets.production.truefoundry.com/cato.png",
16908
- "type": "object",
16909
- "required": ["name", "type", "auth_data", "operation", "enforcing_strategy", "config"],
16910
- "properties": {
16911
- "name": {
16912
- "description": "+label=Name\n+sort=50\n+usage=The name of the Guardrail Config.\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number\n+uiProps={\"disableEdit\":true}",
16913
- "type": "string",
16914
- "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
16915
- },
16916
- "description": {
16917
- "description": "+label=Description\n+sort=75\n+usage=Optional description for this Guardrail Config.",
16918
- "type": "string",
16919
- "default": "Cato AI Security runtime protection for prompts and model responses"
16920
- },
16921
- "type": {
16922
- "description": "+uiType=Hidden\n+value=integration/guardrail-config/cato-networks",
16923
- "type": "string",
16924
- "enum": ["integration/guardrail-config/cato-networks"]
16925
- },
16926
- "auth_data": {
16927
- "$ref": "#/definitions/CatoNetworksApiKeyAuth"
16928
- },
16929
- "operation": {
16930
- "description": "+label=Operation\n+usage=Validate treats a Cato block or anonymize action as a violation and leaves the payload unchanged. Mutate also replaces the messages with Cato's anonymized versions and continues.\nValidate guardrails are run in parallel while mutate guardrails are run sequentially.\n+uiType=MultiSelectPills\n+uiProps={\"hideRadioIcon\": true}\n+sort=100",
16931
- "type": "string",
16932
- "enum": ["mutate", "validate"],
16933
- "default": "mutate"
16934
- },
16935
- "priority": {
16936
- "description": "+label=Priority\n+usage=Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.\n+sort=150",
16937
- "type": "integer",
16938
- "minimum": 0,
16939
- "exclusiveMinimum": true,
16940
- "default": 1
16941
- },
16942
- "enforcing_strategy": {
16943
- "$ref": "#/definitions/EnforcingStrategy"
16944
- },
16945
- "config": {
16946
- "description": "+uiType=Ignore\n+uiProps={\"forwardJsonKey\": true}",
16947
- "type": "object",
16948
- "required": ["base_url"],
16949
- "properties": {
16950
- "base_url": {
16951
- "description": "+label=Base URL\n+usage=Cato API base URL. Use the regional Cato endpoint or the URL of a Cato Outpost in your environment. Trailing slashes are ignored.\n+sort=50\n+message=Base URL must be an http or https URL",
16952
- "type": "string",
16953
- "pattern": "^https?:\\/\\/\\S+$"
16954
- }
16955
- }
16956
- }
16957
- },
16958
- "$schema": "http://json-schema.org/draft-04/schema#"
16959
- },
16960
17238
  "NomaSecurityApiKeyAuth": {
16961
17239
  "description": "+label=Noma Security API Key Auth",
16962
17240
  "type": "object",
@@ -17213,7 +17491,7 @@
17213
17491
  "$schema": "http://json-schema.org/draft-04/schema#"
17214
17492
  },
17215
17493
  "NotificationTargetForAlertRule": {
17216
- "description": "+discriminator=type",
17494
+ "description": "Service, job, workflow, and cluster deployment alerts. Teams is not supported on these alerts.\n+discriminator=type",
17217
17495
  "type": "object",
17218
17496
  "oneOf": [
17219
17497
  {
@@ -17227,9 +17505,6 @@
17227
17505
  },
17228
17506
  {
17229
17507
  "$ref": "#/definitions/PagerDuty"
17230
- },
17231
- {
17232
- "$ref": "#/definitions/MSTeamsWebhook"
17233
17508
  }
17234
17509
  ],
17235
17510
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -19873,6 +20148,9 @@
19873
20148
  {
19874
20149
  "$ref": "#/definitions/AwsIntegrations"
19875
20150
  },
20151
+ {
20152
+ "$ref": "#/definitions/SnowflakeIntegrations"
20153
+ },
19876
20154
  {
19877
20155
  "$ref": "#/definitions/GcpIntegrations"
19878
20156
  },
@@ -19996,6 +20274,9 @@
19996
20274
  {
19997
20275
  "$ref": "#/definitions/WaferIntegrations"
19998
20276
  },
20277
+ {
20278
+ "$ref": "#/definitions/TypeSafeIntegrations"
20279
+ },
19999
20280
  {
20000
20281
  "$ref": "#/definitions/HashicorpIntegrations"
20001
20282
  },
@@ -21315,6 +21596,45 @@
21315
21596
  },
21316
21597
  "$schema": "http://json-schema.org/draft-04/schema#"
21317
21598
  },
21599
+ "RemoteAgentSource": {
21600
+ "description": "+label=Source\n+usage=Where the agent originated from.",
21601
+ "type": "object",
21602
+ "required": ["type"],
21603
+ "properties": {
21604
+ "type": {
21605
+ "description": "+label=Type\n+usage=Where the agent originated from.\n+sort=100\n+uiType=Select",
21606
+ "type": "string",
21607
+ "enum": [
21608
+ "trueforge",
21609
+ "aws-agentcore-harness",
21610
+ "aws-agentcore-runtime",
21611
+ "microsoft-foundry",
21612
+ "microsoft-copilot-studio"
21613
+ ]
21614
+ },
21615
+ "provider_integration_fqn": {
21616
+ "description": "+label=Provider Integration FQN\n+usage=FQN of the provider integration used by this agent source.\n+sort=250\n+uiType=IntegrationSelect\n+uiProps={\"integrationType\":\"agent-registry\"}",
21617
+ "type": "string"
21618
+ },
21619
+ "external_name": {
21620
+ "description": "+label=External Name\n+usage=Name of the agent in the external source system.\n+sort=300",
21621
+ "type": "string"
21622
+ },
21623
+ "external_id": {
21624
+ "description": "+label=External ID\n+usage=ID of the agent in the external source system.\n+sort=310",
21625
+ "type": "string"
21626
+ },
21627
+ "entra_agent_identity_id": {
21628
+ "description": "+label=Entra Agent Identity ID\n+usage=Entra agent identity object ID (AgentIdentityId).\n+sort=400",
21629
+ "type": "string"
21630
+ },
21631
+ "entra_blueprint_id": {
21632
+ "description": "+label=Entra Blueprint ID\n+usage=Entra Agent Identity Blueprint ID (AgentIdentityBlueprintId).\n+sort=410",
21633
+ "type": "string"
21634
+ }
21635
+ },
21636
+ "$schema": "http://json-schema.org/draft-04/schema#"
21637
+ },
21318
21638
  "RemoteAgentV2": {
21319
21639
  "description": "+label=Remote",
21320
21640
  "type": "object",
@@ -21330,11 +21650,26 @@
21330
21650
  "type": "string",
21331
21651
  "pattern": "^[a-z][a-z0-9\\-]{0,62}[a-z0-9]$"
21332
21652
  },
21653
+ "display_name": {
21654
+ "description": "+label=Display Name\n+usage=A human-readable label for the Agent in the UI. If omitted, the agent name is shown.\n+message=1 to 128 characters long\n+sort=105",
21655
+ "type": "string",
21656
+ "minLength": 1,
21657
+ "maxLength": 128
21658
+ },
21333
21659
  "description": {
21334
21660
  "description": "+label=Description\n+usage=A short note on what this agent does — shown in the registry list and audit trail.\n+sort=110\n+uiType=TextArea",
21335
21661
  "type": "string",
21336
21662
  "maxLength": 2000
21337
21663
  },
21664
+ "source": {
21665
+ "$ref": "#/definitions/RemoteAgentSource"
21666
+ },
21667
+ "state": {
21668
+ "description": "+label=State\n+usage=Lifecycle state of the agent. Active: managed and available for use. Unmanaged: imported from an external registry for governance (not fully managed yet). Inactive: disabled and cannot be used or invoked.\n+sort=116\n+uiType=Select",
21669
+ "type": "string",
21670
+ "enum": ["active", "unmanaged", "inactive"],
21671
+ "default": "active"
21672
+ },
21338
21673
  "identity": {
21339
21674
  "$ref": "#/definitions/RemoteAgentV2AgentIdentity"
21340
21675
  },
@@ -22628,7 +22963,7 @@
22628
22963
  "type": "boolean"
22629
22964
  },
22630
22965
  "max_pat_expiry_minutes": {
22631
- "description": "+label=Maximum Expiry Time for Personal Access Token (PAT) in days\n+usage=Personal Access Tokens cannot be created with an expiry longer than this. Maximum allowed is 365 days.\n+sort=2\n+message=Maximum expiry time must be between 1 and 365 days",
22966
+ "description": "+label=Maximum Expiry Time for Personal Access Token (PAT) in days\n+usage=Personal Access Tokens cannot be created with an expiry longer than this. Maximum allowed is 7000 days.\n+sort=2\n+message=Maximum expiry time must be between 1 and 7000 days",
22632
22967
  "type": "integer",
22633
22968
  "minimum": 1
22634
22969
  },
@@ -22637,12 +22972,23 @@
22637
22972
  "type": "integer",
22638
22973
  "minimum": 1
22639
22974
  },
22640
- "mandate_team_selection_in_pat": {
22641
- "description": "+label=Mandate Team Selection in Personal Access Token (PAT)\n+usage=Require a team owner to be selected while creating a Personal Access Token.\n+sort=4\n+uiProps={\"descriptionInline\":true}",
22975
+ "pat_team_assignment_mode": {
22976
+ "description": "+label=Personal Access Token (PAT) Team Assignment Mode\n+usage=Controls whether assigning a team owner while creating a Personal Access Token is required, optional, or disabled.\n+sort=4\n+uiType=RadioCard\n+uiProps={\"descriptionInline\":true}",
22977
+ "type": "string",
22978
+ "enum": ["optional", "required", "disabled"],
22979
+ "default": "optional"
22980
+ },
22981
+ "enable_pat_retrieval_after_creation": {
22982
+ "description": "+label=Enable PAT Retrieval After Creation\n+usage=Allow users to retrieve the value of their own Personal Access Tokens via API after creation.\n+sort=5\n+uiProps={\"descriptionInline\":true}",
22983
+ "type": "boolean",
22984
+ "default": false
22985
+ },
22986
+ "enable_viewing_secrets": {
22987
+ "description": "+label=Enable Viewing Secret\n+usage=Allow users with permission to view plaintext secret values in the UI and API. When disabled, secret values are never returned.\n+sort=6\n+uiProps={\"descriptionInline\":true}",
22642
22988
  "type": "boolean"
22643
22989
  },
22644
22990
  "to_emails": {
22645
- "description": "+label=Send security updates to\n+usage=Email addresses to receive security-related notifications.\n+sort=5\n+message=Must be a valid email address",
22991
+ "description": "+label=Send security updates to\n+usage=Email addresses to receive security-related notifications.\n+sort=7\n+message=Must be a valid email address",
22646
22992
  "type": "array",
22647
22993
  "items": {
22648
22994
  "type": "string",
@@ -23036,11 +23382,11 @@
23036
23382
  "minLength": 1
23037
23383
  },
23038
23384
  "channels": {
23039
- "description": "+label=Slack Channel Names\n+usage=List of channels to send messages to.\n+message=3 to 81 lower case characters long alphanumeric word, may contain - or _ in between, must start with #\n+sort=665",
23385
+ "description": "+label=Slack Channel Names\n+usage=List of channels to send messages to.\n+message=2 to 80 lower case characters long alphanumeric word, may contain - or _ in between, optional leading #\n+sort=665",
23040
23386
  "type": "array",
23041
23387
  "items": {
23042
23388
  "type": "string",
23043
- "pattern": "^#[a-z0-9\\-_]{2,80}$"
23389
+ "pattern": "^#?[a-z0-9\\-_]{2,80}$"
23044
23390
  }
23045
23391
  }
23046
23392
  },
@@ -23347,6 +23693,37 @@
23347
23693
  },
23348
23694
  "$schema": "http://json-schema.org/draft-04/schema#"
23349
23695
  },
23696
+ "SnowflakeCortexAgentRegistry": {
23697
+ "description": "+label=Snowflake Cortex Agents\n+icon=snowflake-cortex\n+usage=Import agents from Snowflake Cortex into the TrueFoundry agent registry.",
23698
+ "type": "object",
23699
+ "required": ["type", "name"],
23700
+ "properties": {
23701
+ "type": {
23702
+ "description": "+value=integration/agent-registry/snowflake/cortex-agent",
23703
+ "type": "string",
23704
+ "enum": ["integration/agent-registry/snowflake/cortex-agent"]
23705
+ },
23706
+ "name": {
23707
+ "description": "+label=Display Name\n+usage=The name of the integration that will be displayed in the TrueFoundry UI.\n+sort=100\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number",
23708
+ "type": "string",
23709
+ "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
23710
+ },
23711
+ "auth_data": {
23712
+ "$ref": "#/definitions/SnowflakePatTokenAuth"
23713
+ },
23714
+ "syncSchedule": {
23715
+ "$ref": "#/definitions/CronSyncSchedule"
23716
+ },
23717
+ "authorized_subjects": {
23718
+ "description": "+label=Access Control\n+usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.\n+sort=600\n+uiType=AuthorizedSubjects",
23719
+ "type": "array",
23720
+ "items": {
23721
+ "type": "string"
23722
+ }
23723
+ }
23724
+ },
23725
+ "$schema": "http://json-schema.org/draft-04/schema#"
23726
+ },
23350
23727
  "SnowflakeCortexIntegrations": {
23351
23728
  "$ref": "#/definitions/SnowflakeCortexModel",
23352
23729
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -23456,6 +23833,64 @@
23456
23833
  },
23457
23834
  "$schema": "http://json-schema.org/draft-04/schema#"
23458
23835
  },
23836
+ "SnowflakeIntegrations": {
23837
+ "$ref": "#/definitions/SnowflakeCortexAgentRegistry",
23838
+ "$schema": "http://json-schema.org/draft-04/schema#"
23839
+ },
23840
+ "SnowflakePatTokenAuth": {
23841
+ "description": "+label=PAT",
23842
+ "type": "object",
23843
+ "required": ["type", "pat_token"],
23844
+ "properties": {
23845
+ "type": {
23846
+ "description": "+value=pat-token",
23847
+ "type": "string",
23848
+ "enum": ["pat-token"]
23849
+ },
23850
+ "pat_token": {
23851
+ "description": "+label=PAT Token\n+sort=100\n+usage=Snowflake programmatic access token. The account's network policy must allow the TrueFoundry control plane and gateway egress IPs.\n+message=PAT token must not be empty\n+uiType=SecretSelect\n+uiProps={\"isPassword\": true, \"enableNew\": true}",
23852
+ "type": "string",
23853
+ "pattern": "^\\S+$"
23854
+ }
23855
+ },
23856
+ "$schema": "http://json-schema.org/draft-04/schema#"
23857
+ },
23858
+ "SnowflakeProviderAccount": {
23859
+ "description": "+label=Snowflake\n+icon=snowflake-cortex\n+heroDataKey=account_identifier",
23860
+ "type": "object",
23861
+ "required": ["type", "name", "account_identifier", "auth_data", "integrations"],
23862
+ "properties": {
23863
+ "type": {
23864
+ "description": "+value=provider-account/snowflake",
23865
+ "type": "string",
23866
+ "enum": ["provider-account/snowflake"]
23867
+ },
23868
+ "name": {
23869
+ "description": "+label=Name\n+sort=100\n+usage=The name of the Snowflake provider account\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number\n+uiProps={\"disableEdit\":true}",
23870
+ "type": "string",
23871
+ "pattern": "^[a-z](?:[a-z0-9]|-(?!-)){1,34}[a-z0-9]$"
23872
+ },
23873
+ "account_identifier": {
23874
+ "description": "+label=Snowflake Account Identifier\n+sort=200\n+message=Snowflake account identifier must not be empty\n+usage=Snowflake account identifier, as in https://<account_identifier>.snowflakecomputing.com. Insert the identifier only, without the URL.",
23875
+ "type": "string",
23876
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9\\-_.]*$"
23877
+ },
23878
+ "auth_data": {
23879
+ "$ref": "#/definitions/SnowflakePatTokenAuth"
23880
+ },
23881
+ "integrations": {
23882
+ "description": "+label=Integrations\n+sort=400\n+usage=List of integrations that are associated with the Snowflake provider account\n+uiType=IntegrationsGroup",
23883
+ "type": "array",
23884
+ "items": {
23885
+ "$ref": "#/definitions/SnowflakeIntegrations"
23886
+ }
23887
+ },
23888
+ "ownedBy": {
23889
+ "$ref": "#/definitions/OwnedBy"
23890
+ }
23891
+ },
23892
+ "$schema": "http://json-schema.org/draft-04/schema#"
23893
+ },
23459
23894
  "SnowflakeSql": {
23460
23895
  "type": "object",
23461
23896
  "required": ["statement"],
@@ -26513,6 +26948,118 @@
26513
26948
  },
26514
26949
  "$schema": "http://json-schema.org/draft-04/schema#"
26515
26950
  },
26951
+ "TypeSafeAPIKeyAuth": {
26952
+ "description": "+label=TypeSafe API Key Auth\n+icon=https://assets.production.truefoundry.com/typesafe.svg",
26953
+ "type": "object",
26954
+ "required": ["type", "api_key"],
26955
+ "properties": {
26956
+ "type": {
26957
+ "description": "+value=api-key",
26958
+ "type": "string",
26959
+ "enum": ["api-key"]
26960
+ },
26961
+ "api_key": {
26962
+ "description": "+label=API Key\n+sort=100\n+usage=The TypeSafe API key, sent to the model as an Authorization Bearer token\n+message=API key must not be empty\n+uiType=SecretSelect\n+uiProps={\"isPassword\": true, \"enableNew\": true}",
26963
+ "type": "string",
26964
+ "pattern": "^\\S+$"
26965
+ }
26966
+ },
26967
+ "$schema": "http://json-schema.org/draft-04/schema#"
26968
+ },
26969
+ "TypeSafeIntegrations": {
26970
+ "$ref": "#/definitions/TypeSafeModel",
26971
+ "$schema": "http://json-schema.org/draft-04/schema#"
26972
+ },
26973
+ "TypeSafeModel": {
26974
+ "description": "+label=TypeSafe Model\n+icon=https://assets.production.truefoundry.com/typesafe.svg",
26975
+ "type": "object",
26976
+ "required": ["type", "name", "model_id", "model_types"],
26977
+ "properties": {
26978
+ "type": {
26979
+ "description": "+value=integration/model/typesafe",
26980
+ "type": "string",
26981
+ "enum": ["integration/model/typesafe"]
26982
+ },
26983
+ "name": {
26984
+ "description": "+label=Display Name\n+sort=1\n+usage=A descriptive name to identify this model integration in the UI\n+message=2 to 64 characters long alphanumeric word, may contain - , . or _ in between, cannot start with a number",
26985
+ "type": "string",
26986
+ "pattern": "^[a-zA-Z](?:[a-zA-Z0-9\\-._]{0,62}[a-zA-Z0-9])$"
26987
+ },
26988
+ "model_id": {
26989
+ "description": "+label=Model ID\n+sort=2\n+usage=The TypeSafe model identifier (e.g., jev-1.13.0, jev-latest). Pin a versioned id so confidence thresholds stay stable across releases. On a Cloudflare Workers AI base URL, use the Workers AI model name instead (e.g., typesafe/jev, @cf/cloudflare/clef, @cf/cloudflare/clef-flash).\n+message=Model ID must not be empty\n+uiProps={\"descriptionInline\":true}",
26990
+ "type": "string",
26991
+ "pattern": "^\\S+$"
26992
+ },
26993
+ "model_types": {
26994
+ "description": "+label=Model Types\n+sort=3\n+usage=Specify the type of the TypeSafe model\n+uiProps={\"disableAllOption\": true}",
26995
+ "type": "array",
26996
+ "items": {
26997
+ "$ref": "#/definitions/ModelType"
26998
+ },
26999
+ "default": ["decision"]
27000
+ },
27001
+ "cost": {
27002
+ "$ref": "#/definitions/ModelCostMetric"
27003
+ },
27004
+ "authorized_subjects": {
27005
+ "description": "+label=Access Control\n+sort=5\n+usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.\n+uiType=Hidden",
27006
+ "type": "array",
27007
+ "items": {
27008
+ "type": "string"
27009
+ }
27010
+ }
27011
+ },
27012
+ "$schema": "http://json-schema.org/draft-04/schema#"
27013
+ },
27014
+ "TypeSafeProviderAccount": {
27015
+ "description": "+label=TypeSafe Model Account\n+icon=https://assets.production.truefoundry.com/typesafe.svg",
27016
+ "type": "object",
27017
+ "required": ["type", "name", "auth_data"],
27018
+ "properties": {
27019
+ "type": {
27020
+ "description": "+value=provider-account/typesafe",
27021
+ "type": "string",
27022
+ "enum": ["provider-account/typesafe"]
27023
+ },
27024
+ "name": {
27025
+ "description": "+label=Name\n+sort=100\n+usage=The name of the TypeSafe model account\n+message=2 to 62 characters long alphanumeric word, may contain - , . or _ in between, cannot start with a number",
27026
+ "type": "string",
27027
+ "pattern": "^[a-zA-Z](?:[a-zA-Z0-9\\-._]{0,60}[a-zA-Z0-9])$"
27028
+ },
27029
+ "auth_data": {
27030
+ "$ref": "#/definitions/TypeSafeAPIKeyAuth"
27031
+ },
27032
+ "base_url": {
27033
+ "description": "+label=Base URL\n+sort=250\n+usage=Optional custom base URL for the TypeSafe API (defaults to https://api.typesafe.ai). Point this at a Cloudflare account (https://api.cloudflare.com/client/v4/accounts/<account_id>) to serve System One models through Cloudflare Workers AI instead.\n+message=Base URL must not be empty",
27034
+ "type": "string",
27035
+ "pattern": "^\\S+$"
27036
+ },
27037
+ "integrations": {
27038
+ "description": "+label=Integrations\n+sort=300\n+usage=List of integrations that are associated with the TypeSafe model account\n+uiType=IntegrationsGroup",
27039
+ "type": "array",
27040
+ "items": {
27041
+ "$ref": "#/definitions/TypeSafeIntegrations"
27042
+ }
27043
+ },
27044
+ "collaborators": {
27045
+ "description": "+label=Collaborators\n+sort=400\n+usage=List of users who have access to this model account\n+uiType=Collaborators",
27046
+ "type": "array",
27047
+ "items": {
27048
+ "$ref": "#/definitions/Collaborator"
27049
+ }
27050
+ },
27051
+ "ownedBy": {
27052
+ "$ref": "#/definitions/OwnedBy"
27053
+ },
27054
+ "discount_percent": {
27055
+ "description": "+label=Discount %\n+sort=650\n+uiProps={\"allowDecimal\": true}\n+usage=Discount % applied to upstream list price for this model account.\n+placeholder=Value should be in the range of 0–100\n+isAdvanced=true",
27056
+ "type": "number",
27057
+ "minimum": 0,
27058
+ "maximum": 100
27059
+ }
27060
+ },
27061
+ "$schema": "http://json-schema.org/draft-04/schema#"
27062
+ },
26516
27063
  "UV": {
26517
27064
  "description": "+usage=Use `uv` to setup env.\nYour build context root must contain `pyproject.toml` and `uv.lock`\n+label=uv",
26518
27065
  "type": "object",
@@ -27062,7 +27609,8 @@
27062
27609
  "text_to_speech",
27063
27610
  "image",
27064
27611
  "responses",
27065
- "video"
27612
+ "video",
27613
+ "decision"
27066
27614
  ],
27067
27615
  "$schema": "http://json-schema.org/draft-04/schema#"
27068
27616
  },
@@ -27603,7 +28151,7 @@
27603
28151
  "type": "object",
27604
28152
  "properties": {
27605
28153
  "notification_target": {
27606
- "$ref": "#/definitions/NotificationTarget"
28154
+ "$ref": "#/definitions/NotificationTargetForAlertRule"
27607
28155
  },
27608
28156
  "on_completion": {
27609
28157
  "description": "+label=On Completion\n+usage=Send an alert when the job completes\n+sort=680",
@@ -27857,6 +28405,9 @@
27857
28405
  "AI21ProviderAccount": {
27858
28406
  "$ref": "#/definitions/AI21ProviderAccount"
27859
28407
  },
28408
+ "AIFeaturesModels": {
28409
+ "$ref": "#/definitions/AIFeaturesModels"
28410
+ },
27860
28411
  "AIFeaturesSettings": {
27861
28412
  "$ref": "#/definitions/AIFeaturesSettings"
27862
28413
  },
@@ -28073,6 +28624,12 @@
28073
28624
  "AwsAccessKeyBasedAuth": {
28074
28625
  "$ref": "#/definitions/AwsAccessKeyBasedAuth"
28075
28626
  },
28627
+ "AwsAgentCoreHarness": {
28628
+ "$ref": "#/definitions/AwsAgentCoreHarness"
28629
+ },
28630
+ "AwsAgentCoreRuntime": {
28631
+ "$ref": "#/definitions/AwsAgentCoreRuntime"
28632
+ },
28076
28633
  "AwsAssumedRoleBasedAuth": {
28077
28634
  "$ref": "#/definitions/AwsAssumedRoleBasedAuth"
28078
28635
  },
@@ -28415,6 +28972,12 @@
28415
28972
  "CartesiaProviderAccount": {
28416
28973
  "$ref": "#/definitions/CartesiaProviderAccount"
28417
28974
  },
28975
+ "CatoNetworksApiKeyAuth": {
28976
+ "$ref": "#/definitions/CatoNetworksApiKeyAuth"
28977
+ },
28978
+ "CatoNetworksGuardrailConfig": {
28979
+ "$ref": "#/definitions/CatoNetworksGuardrailConfig"
28980
+ },
28418
28981
  "CedarGuardrailConfig": {
28419
28982
  "$ref": "#/definitions/CedarGuardrailConfig"
28420
28983
  },
@@ -28511,6 +29074,9 @@
28511
29074
  "CronMetric": {
28512
29075
  "$ref": "#/definitions/CronMetric"
28513
29076
  },
29077
+ "CronSyncSchedule": {
29078
+ "$ref": "#/definitions/CronSyncSchedule"
29079
+ },
28514
29080
  "CrowdStrikeAIDRGuardrailConfig": {
28515
29081
  "$ref": "#/definitions/CrowdStrikeAIDRGuardrailConfig"
28516
29082
  },
@@ -29048,15 +29614,15 @@
29048
29614
  "HeuristicFallbackStrategy": {
29049
29615
  "$ref": "#/definitions/HeuristicFallbackStrategy"
29050
29616
  },
29617
+ "HostedA2AAgent": {
29618
+ "$ref": "#/definitions/HostedA2AAgent"
29619
+ },
29051
29620
  "HiddenLayerGuardrailConfig": {
29052
29621
  "$ref": "#/definitions/HiddenLayerGuardrailConfig"
29053
29622
  },
29054
29623
  "HiddenLayerOAuth2ClientCredentialsAuth": {
29055
29624
  "$ref": "#/definitions/HiddenLayerOAuth2ClientCredentialsAuth"
29056
29625
  },
29057
- "HostedA2AAgent": {
29058
- "$ref": "#/definitions/HostedA2AAgent"
29059
- },
29060
29626
  "HttpProbe": {
29061
29627
  "$ref": "#/definitions/HttpProbe"
29062
29628
  },
@@ -29375,6 +29941,12 @@
29375
29941
  "MessageOption": {
29376
29942
  "$ref": "#/definitions/MessageOption"
29377
29943
  },
29944
+ "MicrosoftCopilotStudio": {
29945
+ "$ref": "#/definitions/MicrosoftCopilotStudio"
29946
+ },
29947
+ "MicrosoftFoundry": {
29948
+ "$ref": "#/definitions/MicrosoftFoundry"
29949
+ },
29378
29950
  "MicrosoftFoundryModel": {
29379
29951
  "$ref": "#/definitions/MicrosoftFoundryModel"
29380
29952
  },
@@ -29462,12 +30034,6 @@
29462
30034
  "NodepoolSelector": {
29463
30035
  "$ref": "#/definitions/NodepoolSelector"
29464
30036
  },
29465
- "CatoNetworksApiKeyAuth": {
29466
- "$ref": "#/definitions/CatoNetworksApiKeyAuth"
29467
- },
29468
- "CatoNetworksGuardrailConfig": {
29469
- "$ref": "#/definitions/CatoNetworksGuardrailConfig"
29470
- },
29471
30037
  "NomaSecurityApiKeyAuth": {
29472
30038
  "$ref": "#/definitions/NomaSecurityApiKeyAuth"
29473
30039
  },
@@ -29981,6 +30547,9 @@
29981
30547
  "RemoteAgentProxyViaGatewayConfig": {
29982
30548
  "$ref": "#/definitions/RemoteAgentProxyViaGatewayConfig"
29983
30549
  },
30550
+ "RemoteAgentSource": {
30551
+ "$ref": "#/definitions/RemoteAgentSource"
30552
+ },
29984
30553
  "RemoteAgentV2": {
29985
30554
  "$ref": "#/definitions/RemoteAgentV2"
29986
30555
  },
@@ -30194,6 +30763,9 @@
30194
30763
  "SnowflakeConfig": {
30195
30764
  "$ref": "#/definitions/SnowflakeConfig"
30196
30765
  },
30766
+ "SnowflakeCortexAgentRegistry": {
30767
+ "$ref": "#/definitions/SnowflakeCortexAgentRegistry"
30768
+ },
30197
30769
  "SnowflakeCortexIntegrations": {
30198
30770
  "$ref": "#/definitions/SnowflakeCortexIntegrations"
30199
30771
  },
@@ -30206,6 +30778,15 @@
30206
30778
  "SnowflakeCortexProviderAccount": {
30207
30779
  "$ref": "#/definitions/SnowflakeCortexProviderAccount"
30208
30780
  },
30781
+ "SnowflakeIntegrations": {
30782
+ "$ref": "#/definitions/SnowflakeIntegrations"
30783
+ },
30784
+ "SnowflakePatTokenAuth": {
30785
+ "$ref": "#/definitions/SnowflakePatTokenAuth"
30786
+ },
30787
+ "SnowflakeProviderAccount": {
30788
+ "$ref": "#/definitions/SnowflakeProviderAccount"
30789
+ },
30209
30790
  "SnowflakeSql": {
30210
30791
  "$ref": "#/definitions/SnowflakeSql"
30211
30792
  },
@@ -30563,6 +31144,18 @@
30563
31144
  "TruefoundryFlyteTaskTemplate": {
30564
31145
  "$ref": "#/definitions/TruefoundryFlyteTaskTemplate"
30565
31146
  },
31147
+ "TypeSafeAPIKeyAuth": {
31148
+ "$ref": "#/definitions/TypeSafeAPIKeyAuth"
31149
+ },
31150
+ "TypeSafeIntegrations": {
31151
+ "$ref": "#/definitions/TypeSafeIntegrations"
31152
+ },
31153
+ "TypeSafeModel": {
31154
+ "$ref": "#/definitions/TypeSafeModel"
31155
+ },
31156
+ "TypeSafeProviderAccount": {
31157
+ "$ref": "#/definitions/TypeSafeProviderAccount"
31158
+ },
30566
31159
  "UV": {
30567
31160
  "$ref": "#/definitions/UV"
30568
31161
  },