Skip to main content
Glama

LaunchDarkly MCP Server

Official
by launchdarkly
aiconfigs.ts23.6 kB
/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { aiConfigsCreate } from "../funcs/aiConfigsCreate.js"; import { aiConfigsCreateVariation } from "../funcs/aiConfigsCreateVariation.js"; import { aiConfigsDelete } from "../funcs/aiConfigsDelete.js"; import { aiConfigsDeleteVariation } from "../funcs/aiConfigsDeleteVariation.js"; import { aiConfigsGet } from "../funcs/aiConfigsGet.js"; import { aiConfigsGetTargeting } from "../funcs/aiConfigsGetTargeting.js"; import { aiConfigsGetVariation } from "../funcs/aiConfigsGetVariation.js"; import { aiConfigsList } from "../funcs/aiConfigsList.js"; import { aiConfigsUpdate } from "../funcs/aiConfigsUpdate.js"; import { aiConfigsUpdateTargeting } from "../funcs/aiConfigsUpdateTargeting.js"; import { aiConfigsUpdateVariation } from "../funcs/aiConfigsUpdateVariation.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class AiConfigs extends ClientSDK { /** * Show an AI Config's targeting * * @remarks * Retrieves a specific AI Config's targeting by its key */ async getTargeting( request: operations.GetAIConfigTargetingRequest, options?: RequestOptions, ): Promise<components.AIConfigTargeting> { return unwrapAsync(aiConfigsGetTargeting( this, request, options, )); } /** * Update AI Config targeting * * @remarks * Perform a partial update to an AI Config's targeting. The request body must be a valid semantic patch. * * ### Using semantic patches on an AI Config * * To make a semantic patch request, you must append `domain-model=launchdarkly.semanticpatch` to your `Content-Type` header. To learn more, read [Updates using semantic patch](https://launchdarkly.com/docs/api#updates-using-semantic-patch). * * The body of a semantic patch request for updating an AI Config's targeting takes the following properties: * * * `comment` (string): (Optional) A description of the update. * * `environmentKey` (string): The key of the LaunchDarkly environment. * * `instructions` (array): (Required) A list of actions the update should perform. Each action in the list must be an object with a `kind` property that indicates the instruction. If the action requires parameters, you must include those parameters as additional fields in the object. The body of a single semantic patch can contain many different instructions. * * ### Instructions * * Semantic patch requests support the following `kind` instructions for updating AI Configs. * * <details> * <summary>Click to expand instructions for <strong>working with targeting and variations</strong> for AI Configs</summary> * * #### addClauses * * Adds the given clauses to the rule indicated by `ruleId`. * * ##### Parameters * * - `ruleId`: ID of a rule in the AI Config. * - `clauses`: Array of clause objects, with `contextKind` (string), `attribute` (string), `op` (string), `negate` (boolean), and `values` (array of strings, numbers, or dates) properties. The `contextKind`, `attribute`, and `values` are case sensitive. The `op` must be lower-case. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "addClauses", * "ruleId": "a902ef4a-2faf-4eaf-88e1-ecc356708a29", * "clauses": [{ * "contextKind": "user", * "attribute": "country", * "op": "in", * "negate": false, * "values": ["USA", "Canada"] * }] * }] * } * ``` * * #### addRule * * Adds a new targeting rule to the AI Config. The rule may contain `clauses` and serve the variation that `variationId` indicates, or serve a percentage rollout that `rolloutWeights`, `rolloutBucketBy`, and `rolloutContextKind` indicate. * * If you set `beforeRuleId`, this adds the new rule before the indicated rule. Otherwise, adds the new rule to the end of the list. * * ##### Parameters * * - `clauses`: Array of clause objects, with `contextKind` (string), `attribute` (string), `op` (string), `negate` (boolean), and `values` (array of strings, numbers, or dates) properties. The `contextKind`, `attribute`, and `values` are case sensitive. The `op` must be lower-case. * - `beforeRuleId`: (Optional) ID of a rule. * - Either * - `variationId`: ID of a variation. * * or * * - `rolloutWeights`: (Optional) Map of `variationId` to weight, in thousandths of a percent (0-100000). * - `rolloutBucketBy`: (Optional) Context attribute available in the specified `rolloutContextKind`. * - `rolloutContextKind`: (Optional) Context kind, defaults to `user` * * Here's an example that uses a `variationId`: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "addRule", * "variationId": "2f43f67c-3e4e-4945-a18a-26559378ca00", * "clauses": [{ * "contextKind": "organization", * "attribute": "located_in", * "op": "in", * "negate": false, * "values": ["Sweden", "Norway"] * }] * }] * } * ``` * * Here's an example that uses a percentage rollout: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "addRule", * "clauses": [{ * "contextKind": "organization", * "attribute": "located_in", * "op": "in", * "negate": false, * "values": ["Sweden", "Norway"] * }], * "rolloutContextKind": "organization", * "rolloutWeights": { * "2f43f67c-3e4e-4945-a18a-26559378ca00": 15000, // serve 15% this variation * "e5830889-1ec5-4b0c-9cc9-c48790090c43": 85000 // serve 85% this variation * } * }] * } * ``` * * #### addTargets * * Adds context keys to the individual context targets for the context kind that `contextKind` specifies and the variation that `variationId` specifies. Returns an error if this causes the AI Config to target the same context key in multiple variations. * * ##### Parameters * * - `values`: List of context keys. * - `contextKind`: (Optional) Context kind to target, defaults to `user` * - `variationId`: ID of a variation. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "addTargets", * "values": ["context-key-123abc", "context-key-456def"], * "variationId": "2f43f67c-3e4e-4945-a18a-26559378ca00" * }] * } * ``` * * #### addValuesToClause * * Adds `values` to the values of the clause that `ruleId` and `clauseId` indicate. Does not update the context kind, attribute, or operator. * * ##### Parameters * * - `ruleId`: ID of a rule in the AI Config. * - `clauseId`: ID of a clause in that rule. * - `values`: Array of strings, case sensitive. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "addValuesToClause", * "ruleId": "a902ef4a-2faf-4eaf-88e1-ecc356708a29", * "clauseId": "10a58772-3121-400f-846b-b8a04e8944ed", * "values": ["beta_testers"] * }] * } * ``` * * #### clearTargets * * Removes all individual targets from the variation that `variationId` specifies. This includes both user and non-user targets. * * ##### Parameters * * - `variationId`: ID of a variation. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [ { "kind": "clearTargets", "variationId": "2f43f67c-3e4e-4945-a18a-26559378ca00" } ] * } * ``` * * #### removeClauses * * Removes the clauses specified by `clauseIds` from the rule indicated by `ruleId`. * * ##### Parameters * * - `ruleId`: ID of a rule. * - `clauseIds`: Array of IDs of clauses in the rule. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "removeClauses", * "ruleId": "a902ef4a-2faf-4eaf-88e1-ecc356708a29", * "clauseIds": ["10a58772-3121-400f-846b-b8a04e8944ed", "36a461dc-235e-4b08-97b9-73ce9365873e"] * }] * } * ``` * * #### removeRule * * Removes the targeting rule specified by `ruleId`. Does nothing if the rule does not exist. * * ##### Parameters * * - `ruleId`: ID of a rule. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [ { "kind": "removeRule", "ruleId": "a902ef4a-2faf-4eaf-88e1-ecc356708a29" } ] * } * ``` * * #### removeTargets * * Removes context keys from the individual context targets for the context kind that `contextKind` specifies and the variation that `variationId` specifies. Does nothing if the flag does not target the context keys. * * ##### Parameters * * - `values`: List of context keys. * - `contextKind`: (Optional) Context kind to target, defaults to `user` * - `variationId`: ID of a variation. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "removeTargets", * "values": ["context-key-123abc", "context-key-456def"], * "variationId": "2f43f67c-3e4e-4945-a18a-26559378ca00" * }] * } * ``` * * #### removeValuesFromClause * * Removes `values` from the values of the clause indicated by `ruleId` and `clauseId`. Does not update the context kind, attribute, or operator. * * ##### Parameters * * - `ruleId`: ID of a rule. * - `clauseId`: ID of a clause in that rule. * - `values`: Array of strings, case sensitive. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "removeValuesFromClause", * "ruleId": "a902ef4a-2faf-4eaf-88e1-ecc356708a29", * "clauseId": "10a58772-3121-400f-846b-b8a04e8944ed", * "values": ["beta_testers"] * }] * } * ``` * * #### reorderRules * * Rearranges the rules to match the order given in `ruleIds`. Returns an error if `ruleIds` does not match the current set of rules on the AI Config. * * ##### Parameters * * - `ruleIds`: Array of IDs of all rules. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "reorderRules", * "ruleIds": ["a902ef4a-2faf-4eaf-88e1-ecc356708a29", "63c238d1-835d-435e-8f21-c8d5e40b2a3d"] * }] * } * ``` * * #### replaceRules * * Removes all targeting rules for the AI Config and replaces them with the list you provide. * * ##### Parameters * * - `rules`: A list of rules. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [ * { * "kind": "replaceRules", * "rules": [ * { * "variationId": "2f43f67c-3e4e-4945-a18a-26559378ca00", * "description": "My new rule", * "clauses": [ * { * "contextKind": "user", * "attribute": "segmentMatch", * "op": "segmentMatch", * "values": ["test"] * } * ] * } * ] * } * ] * } * ``` * * #### replaceTargets * * Removes all existing targeting and replaces it with the list of targets you provide. * * ##### Parameters * * - `targets`: A list of context targeting. Each item in the list includes an optional `contextKind` that defaults to `user`, a required `variationId`, and a required list of `values`. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [ * { * "kind": "replaceTargets", * "targets": [ * { * "contextKind": "user", * "variationId": "2f43f67c-3e4e-4945-a18a-26559378ca00", * "values": ["user-key-123abc"] * }, * { * "contextKind": "device", * "variationId": "e5830889-1ec5-4b0c-9cc9-c48790090c43", * "values": ["device-key-456def"] * } * ] * } * ] * } * ``` * * #### updateClause * * Replaces the clause indicated by `ruleId` and `clauseId` with `clause`. * * ##### Parameters * * - `ruleId`: ID of a rule. * - `clauseId`: ID of a clause in that rule. * - `clause`: New `clause` object, with `contextKind` (string), `attribute` (string), `op` (string), `negate` (boolean), and `values` (array of strings, numbers, or dates) properties. The `contextKind`, `attribute`, and `values` are case sensitive. The `op` must be lower-case. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "updateClause", * "ruleId": "a902ef4a-2faf-4eaf-88e1-ecc356708a29", * "clauseId": "10c7462a-2062-45ba-a8bb-dfb3de0f8af5", * "clause": { * "contextKind": "user", * "attribute": "country", * "op": "in", * "negate": false, * "values": ["Mexico", "Canada"] * } * }] * } * ``` * * #### updateDefaultVariation * * Updates the default on or off variation of the AI Config. * * ##### Parameters * * - `onVariationValue`: (Optional) The value of the variation of the new on variation. * - `offVariationValue`: (Optional) The value of the variation of the new off variation * * Here's an example: * * ```json * { * "instructions": [ { "kind": "updateDefaultVariation", "OnVariationValue": true, "OffVariationValue": false } ] * } * ``` * * #### updateFallthroughVariationOrRollout * * Updates the default or "fallthrough" rule for the AI Config, which the AI Config serves when a context matches none of the targeting rules. The rule can serve either the variation that `variationId` indicates, or a percentage rollout that `rolloutWeights` and `rolloutBucketBy` indicate. * * ##### Parameters * * - `variationId`: ID of a variation. * * or * * - `rolloutWeights`: Map of `variationId` to weight, in thousandths of a percent (0-100000). * - `rolloutBucketBy`: (Optional) Context attribute available in the specified `rolloutContextKind`. * - `rolloutContextKind`: (Optional) Context kind, defaults to `user` * * Here's an example that uses a `variationId`: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "updateFallthroughVariationOrRollout", * "variationId": "2f43f67c-3e4e-4945-a18a-26559378ca00" * }] * } * ``` * * Here's an example that uses a percentage rollout: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "updateFallthroughVariationOrRollout", * "rolloutContextKind": "user", * "rolloutWeights": { * "2f43f67c-3e4e-4945-a18a-26559378ca00": 15000, // serve 15% this variation * "e5830889-1ec5-4b0c-9cc9-c48790090c43": 85000 // serve 85% this variation * } * }] * } * ``` * * #### updateOffVariation * * Updates the default off variation to `variationId`. The AI Config serves the default off variation when the AI Config's targeting is **Off**. * * ##### Parameters * * - `variationId`: ID of a variation. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [ { "kind": "updateOffVariation", "variationId": "2f43f67c-3e4e-4945-a18a-26559378ca00" } ] * } * ``` * * #### updateRuleDescription * * Updates the description of the targeting rule. * * ##### Parameters * * - `description`: The new human-readable description for this rule. * - `ruleId`: The ID of the rule. You can retrieve this by making a GET request for the AI Config. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "updateRuleDescription", * "description": "New rule description", * "ruleId": "a902ef4a-2faf-4eaf-88e1-ecc356708a29" * }] * } * ``` * * #### updateRuleTrackEvents * * Updates whether or not LaunchDarkly tracks events for the AI Config associated with this rule. * * ##### Parameters * * - `ruleId`: The ID of the rule. You can retrieve this by making a GET request for the AI Config. * - `trackEvents`: Whether or not events are tracked. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "updateRuleTrackEvents", * "ruleId": "a902ef4a-2faf-4eaf-88e1-ecc356708a29", * "trackEvents": true * }] * } * ``` * * #### updateRuleVariationOrRollout * * Updates what `ruleId` serves when its clauses evaluate to true. The rule can serve either the variation that `variationId` indicates, or a percent rollout that `rolloutWeights` and `rolloutBucketBy` indicate. * * ##### Parameters * * - `ruleId`: ID of a rule. * - `variationId`: ID of a variation. * * or * * - `rolloutWeights`: Map of `variationId` to weight, in thousandths of a percent (0-100000). * - `rolloutBucketBy`: (Optional) Context attribute available in the specified `rolloutContextKind`. * - `rolloutContextKind`: (Optional) Context kind, defaults to `user` * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [{ * "kind": "updateRuleVariationOrRollout", * "ruleId": "a902ef4a-2faf-4eaf-88e1-ecc356708a29", * "variationId": "2f43f67c-3e4e-4945-a18a-26559378ca00" * }] * } * ``` * * #### updateTrackEvents * * Updates whether or not LaunchDarkly tracks events for the AI Config, for all rules. * * ##### Parameters * * - `trackEvents`: Whether or not events are tracked. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [ { "kind": "updateTrackEvents", "trackEvents": true } ] * } * ``` * * #### updateTrackEventsFallthrough * * Updates whether or not LaunchDarkly tracks events for the AI Config, for the default rule. * * ##### Parameters * * - `trackEvents`: Whether or not events are tracked. * * Here's an example: * * ```json * { * "environmentKey": "environment-key-123abc", * "instructions": [ { "kind": "updateTrackEventsFallthrough", "trackEvents": true } ] * } * ``` * </details> */ async updateTargeting( request: operations.PatchAIConfigTargetingRequest, options?: RequestOptions, ): Promise<components.AIConfigTargeting> { return unwrapAsync(aiConfigsUpdateTargeting( this, request, options, )); } /** * List AI Configs * * @remarks * Get a list of all AI Configs in the given project. */ async list( request: operations.GetAIConfigsRequest, options?: RequestOptions, ): Promise<components.AIConfigs> { return unwrapAsync(aiConfigsList( this, request, options, )); } /** * Create new AI Config * * @remarks * Create a new AI Config within the given project. */ async create( request: operations.PostAIConfigRequest, options?: RequestOptions, ): Promise<components.AIConfig> { return unwrapAsync(aiConfigsCreate( this, request, options, )); } /** * Delete AI Config * * @remarks * Delete an existing AI Config. */ async delete( request: operations.DeleteAIConfigRequest, options?: RequestOptions, ): Promise<void> { return unwrapAsync(aiConfigsDelete( this, request, options, )); } /** * Get AI Config * * @remarks * Retrieve a specific AI Config by its key. */ async get( request: operations.GetAIConfigRequest, options?: RequestOptions, ): Promise<components.AIConfig> { return unwrapAsync(aiConfigsGet( this, request, options, )); } /** * Update AI Config * * @remarks * Edit an existing AI Config. * * The request body must be a JSON object of the fields to update. The values you include replace the existing values for the fields. * * Here's an example: * ``` * { * "description": "Example updated description", * "tags": ["new-tag"] * } * ``` */ async update( request: operations.PatchAIConfigRequest, options?: RequestOptions, ): Promise<components.AIConfig> { return unwrapAsync(aiConfigsUpdate( this, request, options, )); } /** * Create AI Config variation * * @remarks * Create a new variation for a given AI Config. * * The <code>model</code> in the request body requires a <code>modelName</code> and <code>parameters</code>, for example: * * ``` * "model": { * "modelName": "claude-3-opus-20240229", * "parameters": { * "max_tokens": 1024 * } * } * ``` */ async createVariation( request: operations.PostAIConfigVariationRequest, options?: RequestOptions, ): Promise<components.AIConfigVariation> { return unwrapAsync(aiConfigsCreateVariation( this, request, options, )); } /** * Delete AI Config variation * * @remarks * Delete a specific variation of an AI Config by config key and variation key. */ async deleteVariation( request: operations.DeleteAIConfigVariationRequest, options?: RequestOptions, ): Promise<void> { return unwrapAsync(aiConfigsDeleteVariation( this, request, options, )); } /** * Get AI Config variation * * @remarks * Get an AI Config variation by key. The response includes all variation versions for the given variation key. */ async getVariation( request: operations.GetAIConfigVariationRequest, options?: RequestOptions, ): Promise<components.AIConfigVariationsResponse> { return unwrapAsync(aiConfigsGetVariation( this, request, options, )); } /** * Update AI Config variation * * @remarks * Edit an existing variation of an AI Config. This creates a new version of the variation. * * The request body must be a JSON object of the fields to update. The values you include replace the existing values for the fields. * * Here's an example: * ``` * { * "messages": [ * { * "role": "system", * "content": "The new message" * } * ] * } * ``` */ async updateVariation( request: operations.PatchAIConfigVariationRequest, options?: RequestOptions, ): Promise<components.AIConfigVariation> { return unwrapAsync(aiConfigsUpdateVariation( this, request, options, )); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/launchdarkly/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server