# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Statsig Dynamic Configs API version: 1.0.0 extends: openapi/statsig-dynamic-configs-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 31 - target: $.paths['/dynamic_configs'].get update: x-apievangelist-phrasing: intent: List dynamic configs in the project effect: read questions: - Which dynamic configs exist in my Statsig project? - Can I page through all our dynamic configs a few at a time? instructions: - text: List all dynamic configs in my project. - text: Show page {page} of dynamic configs with {limit} per page. slots: page: query.page limit: query.limit method: generated generated: '2026-09-26' - target: $.paths['/dynamic_configs'].post update: x-apievangelist-phrasing: intent: Create a dynamic config effect: write questions: - How do I create a new dynamic config with default values? - Can I tag a dynamic config when I first create it? instructions: - text: Create a dynamic config named {name}. slots: name: requestBody.name - text: Create dynamic config {name} with default values {defaultValue}. slots: name: requestBody.name defaultValue: requestBody.defaultValue method: generated generated: '2026-09-26' - target: $.paths['/dynamic_configs/{id}'].get update: x-apievangelist-phrasing: intent: Get a dynamic config's full definition effect: read questions: - What default values and conditions does a particular dynamic config have? - Can I look up the full definition of one dynamic config by name? instructions: - text: Show me the full definition of dynamic config {id}. slots: id: path.id - text: Get the defaults and rules for dynamic config {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/dynamic_configs/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a dynamic config effect: destructive questions: - How do I permanently remove a dynamic config we no longer use? - Is deleting a dynamic config permanent? instructions: - text: Delete dynamic config {id}. slots: id: path.id - text: Permanently remove the dynamic config named {id} from the project. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/dynamic_configs/{id}'].patch update: x-apievangelist-phrasing: intent: Update fields on an existing dynamic config effect: write questions: - Can I turn off an existing dynamic config without changing its rules? - How do I change the default values of a dynamic config that already exists? instructions: - text: Disable dynamic config {id} by setting enabled to {isEnabled}. slots: id: path.id isEnabled: requestBody.isEnabled - text: Change the defaults of existing dynamic config {id} to {defaultValue}. slots: id: path.id defaultValue: requestBody.defaultValue - text: Update the description of dynamic config {id} to {description}. slots: id: path.id description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/dynamic_configs/{id}/rules'].get update: x-apievangelist-phrasing: intent: List the rules on a dynamic config effect: read questions: - What targeting rules are configured on a given dynamic config? - Which rules decide the values a dynamic config returns? instructions: - text: List only the rules on dynamic config {id}. slots: id: path.id - text: Show the targeting rules for dynamic config {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/get_config'].post update: x-apievangelist-phrasing: intent: Evaluate a dynamic config for a user effect: read questions: - What config values would a specific user receive from a dynamic config? - Does evaluating a config for a user log an exposure event? - Can one call evaluate either a dynamic config or an experiment by name for a user? instructions: - text: Evaluate config {configName} for user {user} and return their values. slots: configName: requestBody.configName user: requestBody.user - text: Get the values user {user} receives from config {configName}. slots: user: requestBody.user configName: requestBody.configName method: generated generated: '2026-09-26' - target: $.paths['/console/v1/dynamic_configs'].get update: x-apievangelist-phrasing: intent: Filter dynamic configs by team, tag or lifecycle effect: read questions: - Which of our dynamic configs are flagged as stale by the nightly check? - Can I filter dynamic configs by owning team or by tag? - What dynamic configs did a particular teammate create? instructions: - text: List dynamic configs tagged {tags}. slots: tags: query.tags - text: Show dynamic configs owned by team {teamID} with lifecycle type {type}. slots: teamID: query.teamID type: query.type - text: Find dynamic configs created by {creatorName}. slots: creatorName: query.creatorName method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs'].post update: x-apievangelist-phrasing: intent: Create a dynamic config with schema and rules effect: write questions: - Can a new dynamic config enforce a JSON schema on the values it returns? - Which ID type should a new dynamic config be keyed on? - Is it possible to assign a new dynamic config to a team or release pipeline at creation? instructions: - text: Create dynamic config {name} keyed on {idType} with schema {schema}. slots: name: requestBody.name idType: requestBody.idType schema: requestBody.schema - text: Create dynamic config {name} for team {teamID} with rules {rules} and fallback {defaultValue}. slots: name: requestBody.name teamID: requestBody.teamID rules: requestBody.rules defaultValue: requestBody.defaultValue method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}'].get update: x-apievangelist-phrasing: intent: Get a dynamic config via the Console API v1 effect: read questions: - Can the Console API v1 return a single dynamic config with its schema and target apps? - Who owns a given dynamic config and which team is it assigned to? instructions: - text: Fetch dynamic config {id} from the v1 console, including owner and schema. slots: id: path.id - text: Look up who owns dynamic config {id} and its target apps. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}'].post update: x-apievangelist-phrasing: intent: Replace a dynamic config's full definition effect: write questions: - Can I overwrite a dynamic config's rules, description and enabled state in one full replace? - Is there a dry run to check a full dynamic config update before saving it? - Can I mark a dynamic config as permanent while replacing it? instructions: - text: Fully replace dynamic config {id} with rules {rules}, description {description}, enabled {isEnabled}. slots: id: path.id rules: requestBody.rules description: requestBody.description isEnabled: requestBody.isEnabled - text: Validate without saving a full replacement of dynamic config {id} using rules {rules}, dry run {dryRun}. slots: id: path.id rules: requestBody.rules dryRun: query.dryRun method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a dynamic config through the Console API v1 effect: destructive questions: - Can the v1 console endpoint delete a dynamic config outright instead of archiving it? - Which Console API v1 call removes a dynamic config for good? instructions: - text: Delete dynamic config {id} using the v1 console endpoint. slots: id: path.id - text: Remove dynamic config {id} for good via Console API v1. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}'].patch update: x-apievangelist-phrasing: intent: Patch selected fields of a dynamic config effect: write questions: - Can I change just the tags or owner of a dynamic config without resending its rules? - Can I move a dynamic config to another team with a partial update? - Is there a way to mark a dynamic config TEMPORARY or PERMANENT without touching anything else? instructions: - text: Patch dynamic config {id} to use tags {tags}. slots: id: path.id tags: requestBody.tags - text: Reassign dynamic config {id} to team {teamID} with a partial update. slots: id: path.id teamID: requestBody.teamID - text: Set the lifecycle type of dynamic config {id} to {type}. slots: id: path.id type: requestBody.type method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/archive'].put update: x-apievangelist-phrasing: intent: Archive a dynamic config effect: write questions: - Can I archive a dynamic config we've stopped using without deleting it? - Is there a way to force-archive a dynamic config and record why? instructions: - text: Archive dynamic config {id} because {archiveReason}. slots: id: path.id archiveReason: requestBody.archiveReason - text: Force-archive dynamic config {id} with force flag {forceArchive}. slots: id: path.id forceArchive: requestBody.forceArchive method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/disable'].put update: x-apievangelist-phrasing: intent: Disable a dynamic config effect: write questions: - Can I switch off a dynamic config with a single call? - Is there a dedicated endpoint to disable a dynamic config without editing it? instructions: - text: Disable dynamic config {id}. slots: id: path.id - text: Turn off dynamic config {id} right now. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/eligible_reviewers'].get update: x-apievangelist-phrasing: intent: List who can review a dynamic config change effect: read questions: - Who is allowed to approve changes to a particular dynamic config? - Which teammates can I pick as reviewers for a dynamic config? instructions: - text: List eligible reviewers for dynamic config {id}. slots: id: path.id - text: Show who can review changes to dynamic config {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/enable'].put update: x-apievangelist-phrasing: intent: Enable a dynamic config effect: write questions: - Can I turn a disabled dynamic config back on? - Is there a one-step call to re-enable a dynamic config? instructions: - text: Enable dynamic config {id}. slots: id: path.id - text: Switch dynamic config {id} back on. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/reviews'].get update: x-apievangelist-phrasing: intent: List change reviews on a dynamic config effect: read questions: - What pending change reviews exist for a dynamic config? - Can I page through the review history of a dynamic config? instructions: - text: List change reviews for dynamic config {id}. slots: id: path.id - text: Show page {page} of reviews on dynamic config {id}, {limit} per page. slots: page: query.page id: path.id limit: query.limit method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/reviews'].post update: x-apievangelist-phrasing: intent: Propose a dynamic config change for review effect: write questions: - Can I submit a dynamic config change for approval instead of applying it directly? - Which reviewers or reviewer groups can I request on a proposed config change? instructions: - text: Open a review on dynamic config {id} proposing {change}, described as {description}. slots: id: path.id change: requestBody.change description: requestBody.description - text: 'Request review from {reviewer_ids} for change {change} on dynamic config {id}: {description}.' slots: reviewer_ids: requestBody.reviewer_ids change: requestBody.change id: path.id description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/reviews/{reviewID}'].get update: x-apievangelist-phrasing: intent: Get one dynamic config review effect: read questions: - What change does a specific dynamic config review propose? - Can I check the status of one review on a dynamic config? instructions: - text: Show review {reviewID} on dynamic config {id}. slots: reviewID: path.reviewID id: path.id - text: Get the proposed change in review {reviewID} for dynamic config {id}. slots: reviewID: path.reviewID id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/reviews/{reviewID}'].put update: x-apievangelist-phrasing: intent: Edit a pending dynamic config review effect: write questions: - Can I change the reviewers on a review I already opened for a dynamic config? - Is it possible to revise the proposed change in an open dynamic config review? instructions: - text: Replace the reviewers on review {reviewID} of dynamic config {id} with {reviewer_ids}. slots: reviewID: path.reviewID id: path.id reviewer_ids: requestBody.reviewer_ids - text: Update review {reviewID} on dynamic config {id} to propose {change}. slots: reviewID: path.reviewID id: path.id change: requestBody.change method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/reviews/{reviewID}'].delete update: x-apievangelist-phrasing: intent: Cancel a dynamic config review effect: destructive questions: - Can I withdraw a dynamic config change review that's no longer needed? - Is there a way to cancel an open review on a dynamic config? instructions: - text: Cancel review {reviewID} on dynamic config {id}. slots: reviewID: path.reviewID id: path.id - text: Withdraw pending review {reviewID} for dynamic config {id}. slots: reviewID: path.reviewID id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/reviews/{reviewID}/approve'].put update: x-apievangelist-phrasing: intent: Approve a dynamic config review effect: write questions: - Can I approve a teammate's proposed dynamic config change? - Can I leave a comment when approving a dynamic config review? instructions: - text: Approve review {reviewID} on dynamic config {id}. slots: reviewID: path.reviewID id: path.id - text: Approve review {reviewID} for dynamic config {id} with comment {reason}. slots: reviewID: path.reviewID id: path.id reason: requestBody.reason method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/reviews/{reviewID}/commit'].put update: x-apievangelist-phrasing: intent: Commit an approved dynamic config review effect: write questions: - How do I apply an approved review so the dynamic config change goes live? - Can I commit a reviewed change to a dynamic config? instructions: - text: Commit review {reviewID} on dynamic config {id}. slots: reviewID: path.reviewID id: path.id - text: Apply the approved change from review {reviewID} to dynamic config {id}. slots: reviewID: path.reviewID id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/reviews/{reviewID}/reject'].put update: x-apievangelist-phrasing: intent: Reject a dynamic config review effect: write questions: - Can I turn down a proposed change to a dynamic config? - Is a reason required when rejecting a dynamic config review? instructions: - text: Reject review {reviewID} on dynamic config {id} because {reason}. slots: reviewID: path.reviewID id: path.id reason: requestBody.reason - text: Decline the change in review {reviewID} for dynamic config {id}, reason {reason}. slots: reviewID: path.reviewID id: path.id reason: requestBody.reason method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/rule/{ruleId}'].get update: x-apievangelist-phrasing: intent: Get one rule on a dynamic config effect: read questions: - What conditions and return value does a single dynamic config rule have? - Can I fetch one rule of a dynamic config by its rule ID? instructions: - text: Show rule {ruleId} on dynamic config {id}. slots: ruleId: path.ruleId id: path.id - text: Get the conditions and return value of rule {ruleId} in dynamic config {id}. slots: ruleId: path.ruleId id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/rule/{ruleId}'].delete update: x-apievangelist-phrasing: intent: Delete a rule from a dynamic config effect: destructive questions: - Can I remove a single targeting rule from a dynamic config while keeping the rest? - Does removing one rule leave the other rules on a dynamic config in place? instructions: - text: Delete rule {ruleId} from dynamic config {id}. slots: ruleId: path.ruleId id: path.id - text: Remove targeting rule {ruleId} on dynamic config {id}. slots: ruleId: path.ruleId id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/rule/{ruleId}'].patch update: x-apievangelist-phrasing: intent: Update one rule on a dynamic config effect: write questions: - Can I change the pass percentage of just one rule on a dynamic config? - Is it possible to edit the conditions of a single dynamic config rule? instructions: - text: Set rule {ruleId} on dynamic config {id} to pass {passPercentage} percent. slots: ruleId: path.ruleId id: path.id passPercentage: requestBody.passPercentage - text: Update the conditions of rule {ruleId} in dynamic config {id} to {conditions}. slots: ruleId: path.ruleId id: path.id conditions: requestBody.conditions - text: Change the return value of rule {ruleId} on dynamic config {id} to {returnValue}. slots: ruleId: path.ruleId id: path.id returnValue: requestBody.returnValue method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/rules'].get update: x-apievangelist-phrasing: intent: Get dynamic config rules from the Console API v1 effect: read questions: - Can the Console API v1 list all rules of a dynamic config in one call? - Which rules does the v1 console report for a given dynamic config? instructions: - text: Get all rules for dynamic config {id} from the v1 console. slots: id: path.id - text: Pull the rule list of dynamic config {id} via Console API v1. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/unarchive'].put update: x-apievangelist-phrasing: intent: Unarchive a dynamic config effect: write questions: - Can I restore a dynamic config that was archived? - Can I record why an archived dynamic config is being brought back? instructions: - text: Unarchive dynamic config {id}. slots: id: path.id - text: Restore archived dynamic config {id} because {unarchiveReason}. slots: id: path.id unarchiveReason: requestBody.unarchiveReason method: generated generated: '2026-10-01' - target: $.paths['/console/v1/dynamic_configs/{id}/versions'].get update: x-apievangelist-phrasing: intent: List a dynamic config's version history effect: read questions: - What earlier versions of a dynamic config exist? - Can I see which dynamic config versions changed within a date range? instructions: - text: List versions of dynamic config {id}. slots: id: path.id - text: Show versions of dynamic config {id} modified between {startDate} and {endDate}. slots: id: path.id startDate: query.startDate endDate: query.endDate method: generated generated: '2026-10-01'