unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
761 lines • 1.32 MB
TypeScript
import type { FromSchema } from 'json-schema-to-ts';
export declare const projectOverviewSchema: {
readonly $id: "#/components/schemas/projectOverviewSchema";
readonly type: "object";
readonly additionalProperties: false;
readonly required: readonly ["version", "name", "onboardingStatus"];
readonly description: "A high-level overview of a project. It contains information such as project statistics, the name of the project, what members and what features it contains, etc.";
readonly properties: {
readonly stats: {
readonly $ref: "#/components/schemas/projectStatsSchema";
readonly description: "Project statistics";
};
readonly version: {
readonly type: "integer";
readonly example: 1;
readonly description: "The schema version used to describe the project overview";
};
readonly name: {
readonly type: "string";
readonly example: "dx-squad";
readonly description: "The name of this project";
};
readonly description: {
readonly type: "string";
readonly nullable: true;
readonly example: "DX squad feature release";
readonly description: "Additional information about the project";
};
readonly defaultStickiness: {
readonly type: "string";
readonly example: "userId";
readonly description: "A default stickiness for the project affecting the default stickiness value for variants and Gradual Rollout strategy";
};
readonly mode: {
readonly type: "string";
readonly enum: readonly ["open", "protected", "private"];
readonly example: "open";
readonly description: "The project's [collaboration mode](https://docs.getunleash.io/concepts/project-collaboration-mode). Determines whether non-project members can submit change requests or not.";
};
readonly featureLimit: {
readonly type: "number";
readonly nullable: true;
readonly example: 100;
readonly description: "A limit on the number of features allowed in the project. Null if no limit.";
};
readonly featureNaming: {
readonly $ref: "#/components/schemas/createFeatureNamingPatternSchema";
};
readonly linkTemplates: {
readonly type: "array";
readonly items: {
readonly $ref: "#/components/schemas/projectLinkTemplateSchema";
};
readonly description: "A list of templates for links that will be automatically added to new feature flags.";
};
readonly members: {
readonly type: "number";
readonly example: 4;
readonly description: "The number of members this project has";
};
readonly health: {
readonly type: "number";
readonly example: 50;
readonly deprecated: true;
readonly description: "Use `technicalDebt` instead.";
};
readonly technicalDebt: {
readonly type: "number";
readonly example: 25;
readonly minimum: 0;
readonly maximum: 100;
readonly description: "An indicator of the [project's technical debt](https://docs.getunleash.io/concepts/technical-debt#project-status) on a scale from 0 to 100";
};
readonly environments: {
readonly type: "array";
readonly items: {
readonly $ref: "#/components/schemas/projectEnvironmentSchema";
};
readonly example: readonly [{
readonly environment: "development";
}, {
readonly environment: "production";
readonly defaultStrategy: {
readonly name: "flexibleRollout";
readonly constraints: readonly [];
readonly parameters: {
readonly rollout: "50";
readonly stickiness: "customAppName";
readonly groupId: "stickyFlag";
};
};
}];
readonly description: "The environments that are enabled for this project";
};
readonly featureTypeCounts: {
readonly type: "array";
readonly items: {
readonly $ref: "#/components/schemas/featureTypeCountSchema";
};
readonly description: "The number of features of each type that are in this project";
};
readonly updatedAt: {
readonly type: "string";
readonly format: "date-time";
readonly nullable: true;
readonly example: "2023-02-10T08:36:35.262Z";
readonly description: "When the project was last updated.";
};
readonly archivedAt: {
readonly type: "string";
readonly format: "date-time";
readonly nullable: true;
readonly example: "2023-02-10T08:36:35.262Z";
readonly description: "When the project was archived.";
};
readonly createdAt: {
readonly type: "string";
readonly format: "date-time";
readonly nullable: true;
readonly example: "2023-02-10T08:36:35.262Z";
readonly description: "When the project was created.";
};
readonly favorite: {
readonly type: "boolean";
readonly example: true;
readonly description: "`true` if the project was favorited, otherwise `false`.";
};
readonly onboardingStatus: {
readonly type: "object";
readonly oneOf: readonly [{
readonly type: "object";
readonly properties: {
readonly status: {
readonly type: "string";
readonly enum: readonly ["onboarding-started", "onboarded"];
readonly example: "onboarding-started";
};
};
readonly required: readonly ["status"];
readonly additionalProperties: false;
}, {
readonly type: "object";
readonly properties: {
readonly status: {
readonly type: "string";
readonly enum: readonly ["first-flag-created"];
readonly example: "first-flag-created";
};
readonly feature: {
readonly type: "string";
readonly description: "The name of the feature flag";
readonly example: "my-feature-flag";
};
};
readonly required: readonly ["status", "feature"];
readonly additionalProperties: false;
}];
readonly description: "The current onboarding status of the project.";
};
};
readonly components: {
readonly schemas: {
readonly environmentSchema: {
readonly $id: "#/components/schemas/environmentSchema";
readonly type: "object";
readonly additionalProperties: false;
readonly required: readonly ["name", "type", "enabled", "protected", "sortOrder"];
readonly description: "A definition of the project environment";
readonly properties: {
readonly name: {
readonly type: "string";
readonly example: "my-dev-env";
readonly description: "The name of the environment";
};
readonly type: {
readonly type: "string";
readonly example: "development";
readonly description: "The [type of environment](https://docs.getunleash.io/concepts/environments#environment-types).";
};
readonly enabled: {
readonly type: "boolean";
readonly example: true;
readonly description: "`true` if the environment is enabled for the project, otherwise `false`.";
};
readonly protected: {
readonly type: "boolean";
readonly example: true;
readonly description: "`true` if the environment is protected, otherwise `false`. A *protected* environment can not be deleted.";
};
readonly sortOrder: {
readonly type: "integer";
readonly example: 3;
readonly description: "Priority of the environment in a list of environments, the lower the value, the higher up in the list the environment will appear. Needs to be an integer";
};
readonly projectCount: {
readonly type: "integer";
readonly nullable: true;
readonly minimum: 0;
readonly example: 10;
readonly description: "The number of projects with this environment";
};
readonly apiTokenCount: {
readonly type: "integer";
readonly nullable: true;
readonly minimum: 0;
readonly example: 6;
readonly description: "The number of API tokens for the project environment";
};
readonly enabledToggleCount: {
readonly type: "integer";
readonly nullable: true;
readonly minimum: 0;
readonly example: 10;
readonly description: "The number of enabled toggles for the project environment";
};
readonly requiredApprovals: {
readonly type: "integer";
readonly nullable: true;
readonly description: "Experimental field. The number of approvals required before a change request can be applied in this environment.";
readonly minimum: 1;
readonly example: 3;
};
};
readonly components: {};
};
readonly projectEnvironmentSchema: {
readonly $id: "#/components/schemas/projectEnvironmentSchema";
readonly type: "object";
readonly additionalProperties: false;
readonly description: "Add an environment to a project, optionally also sets if change requests are enabled for this environment on the project";
readonly required: readonly ["environment"];
readonly properties: {
readonly environment: {
readonly type: "string";
readonly description: "The environment to add to the project";
readonly example: "development";
};
readonly changeRequestsEnabled: {
readonly type: "boolean";
readonly description: "Whether change requests should be enabled or for this environment on the project or not";
readonly example: true;
};
readonly defaultStrategy: {
readonly $ref: "#/components/schemas/createFeatureStrategySchema";
readonly description: "A default strategy to create for this environment on the project.";
};
};
readonly components: {
readonly schemas: {
readonly createFeatureStrategySchema: {
readonly $id: "#/components/schemas/createFeatureStrategySchema";
readonly type: "object";
readonly required: readonly ["name"];
readonly description: "Create a strategy configuration in a feature";
readonly properties: {
readonly name: {
readonly type: "string";
readonly description: "The name of the strategy type";
readonly example: "flexibleRollout";
};
readonly title: {
readonly type: "string";
readonly nullable: true;
readonly description: "A descriptive title for the strategy";
readonly example: "Gradual Rollout 25-Prod";
};
readonly disabled: {
readonly type: "boolean";
readonly description: "A toggle to disable the strategy. defaults to false. Disabled strategies are not evaluated or returned to the SDKs";
readonly example: false;
readonly nullable: true;
};
readonly sortOrder: {
readonly type: "number";
readonly description: "The order of the strategy in the list";
readonly example: 9999;
};
readonly constraints: {
readonly type: "array";
readonly description: "A list of the constraints attached to the strategy. See https://docs.getunleash.io/concepts/activation-strategies#constraints";
readonly example: readonly [{
readonly values: readonly ["1", "2"];
readonly inverted: false;
readonly operator: "IN";
readonly contextName: "appName";
readonly caseInsensitive: false;
}];
readonly items: {
readonly $ref: "#/components/schemas/constraintSchema";
};
};
readonly variants: {
readonly type: "array";
readonly description: "Strategy level variants";
readonly items: {
readonly $ref: "#/components/schemas/createStrategyVariantSchema";
};
};
readonly parameters: {
readonly description: "An object containing the parameters for the strategy";
readonly example: {
readonly groupId: "some_new";
readonly rollout: "25";
readonly stickiness: "sessionId";
};
readonly $ref: "#/components/schemas/parametersSchema";
};
readonly segments: {
readonly type: "array";
readonly description: "Ids of segments to use for this strategy";
readonly example: readonly [1, 2];
readonly items: {
readonly type: "number";
};
};
};
readonly components: {
readonly schemas: {
readonly constraintSchema: {
readonly type: "object";
readonly required: readonly ["contextName", "operator"];
readonly description: "A strategy constraint. For more information, refer to [the strategy constraint reference documentation](https://docs.getunleash.io/concepts/activation-strategies#constraints)";
readonly properties: {
readonly contextName: {
readonly description: "The name of the context field that this constraint should apply to.";
readonly example: "appName";
readonly type: "string";
};
readonly operator: {
readonly description: "The operator to use when evaluating this constraint. For more information about the various operators, refer to [the strategy constraint operator documentation](https://docs.getunleash.io/concepts/activation-strategies#constraint-operators).";
readonly type: "string";
readonly enum: readonly ["NOT_IN", "IN", "STR_ENDS_WITH", "STR_STARTS_WITH", "STR_CONTAINS", "NUM_EQ", "NUM_GT", "NUM_GTE", "NUM_LT", "NUM_LTE", "DATE_AFTER", "DATE_BEFORE", "SEMVER_EQ", "SEMVER_GT", "SEMVER_LT"];
readonly example: "IN";
};
readonly caseInsensitive: {
readonly description: "Whether the operator should be case sensitive or not. Defaults to `false` (being case sensitive).";
readonly type: "boolean";
readonly default: false;
};
readonly inverted: {
readonly description: "Whether the result should be negated or not. If `true`, will turn a `true` result into a `false` result and vice versa.";
readonly type: "boolean";
readonly default: false;
};
readonly values: {
readonly type: "array";
readonly description: "The context values that should be used for constraint evaluation. Use this property instead of `value` for properties that accept multiple values.";
readonly items: {
readonly type: "string";
};
readonly example: readonly ["my-app", "my-other-app"];
};
readonly value: {
readonly description: "The context value that should be used for constraint evaluation. Use this property instead of `values` for properties that only accept single values.";
readonly type: "string";
readonly example: "my-app";
};
};
readonly components: {};
readonly $id: "#/components/schemas/constraintSchema";
readonly additionalProperties: false;
};
readonly parametersSchema: {
readonly $id: "#/components/schemas/parametersSchema";
readonly type: "object";
readonly description: "A list of parameters for a strategy";
readonly additionalProperties: {
readonly type: "string";
};
readonly components: {};
};
readonly createStrategyVariantSchema: {
readonly $id: "#/components/schemas/createStrategyVariantSchema";
readonly type: "object";
readonly description: "This is an experimental property. It may change or be removed as we work on it. Please don't depend on it yet. A strategy variant allows you to attach any data to strategies instead of only returning `true`/`false`. Strategy variants take precedence over feature variants.";
readonly required: readonly ["name", "weight", "weightType", "stickiness"];
readonly properties: {
readonly name: {
readonly type: "string";
readonly description: "The variant name. Must be unique for this feature flag";
readonly example: "blue_group";
};
readonly weight: {
readonly type: "integer";
readonly description: "The weight is the likelihood of any one user getting this variant. It is an integer between 0 and 1000. See the section on [variant weights](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight) for more information";
readonly minimum: 0;
readonly maximum: 1000;
};
readonly weightType: {
readonly description: "Set to `fix` if this variant must have exactly the weight allocated to it. If the type is `variable`, the weight will adjust so that the total weight of all variants adds up to 1000. Refer to the [variant weight documentation](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight).";
readonly type: "string";
readonly example: "fix";
readonly enum: readonly ["variable", "fix"];
};
readonly stickiness: {
readonly type: "string";
readonly description: "The [stickiness](https://docs.getunleash.io/concepts/feature-flag-variants#variant-stickiness) to use for distribution of this variant. Stickiness is how Unleash guarantees that the same user gets the same variant every time";
readonly example: "custom.context.field";
};
readonly payload: {
readonly type: "object";
readonly required: readonly ["type", "value"];
readonly description: "Extra data configured for this variant";
readonly properties: {
readonly type: {
readonly description: "The type of the value. Commonly used types are string, number, json and csv.";
readonly type: "string";
readonly enum: readonly ["json", "csv", "string", "number"];
};
readonly value: {
readonly description: "The actual value of payload";
readonly type: "string";
};
};
readonly example: {
readonly type: "json";
readonly value: "{\"color\": \"red\"}";
};
};
};
readonly components: {};
};
};
};
};
readonly createStrategyVariantSchema: {
readonly $id: "#/components/schemas/createStrategyVariantSchema";
readonly type: "object";
readonly description: "This is an experimental property. It may change or be removed as we work on it. Please don't depend on it yet. A strategy variant allows you to attach any data to strategies instead of only returning `true`/`false`. Strategy variants take precedence over feature variants.";
readonly required: readonly ["name", "weight", "weightType", "stickiness"];
readonly properties: {
readonly name: {
readonly type: "string";
readonly description: "The variant name. Must be unique for this feature flag";
readonly example: "blue_group";
};
readonly weight: {
readonly type: "integer";
readonly description: "The weight is the likelihood of any one user getting this variant. It is an integer between 0 and 1000. See the section on [variant weights](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight) for more information";
readonly minimum: 0;
readonly maximum: 1000;
};
readonly weightType: {
readonly description: "Set to `fix` if this variant must have exactly the weight allocated to it. If the type is `variable`, the weight will adjust so that the total weight of all variants adds up to 1000. Refer to the [variant weight documentation](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight).";
readonly type: "string";
readonly example: "fix";
readonly enum: readonly ["variable", "fix"];
};
readonly stickiness: {
readonly type: "string";
readonly description: "The [stickiness](https://docs.getunleash.io/concepts/feature-flag-variants#variant-stickiness) to use for distribution of this variant. Stickiness is how Unleash guarantees that the same user gets the same variant every time";
readonly example: "custom.context.field";
};
readonly payload: {
readonly type: "object";
readonly required: readonly ["type", "value"];
readonly description: "Extra data configured for this variant";
readonly properties: {
readonly type: {
readonly description: "The type of the value. Commonly used types are string, number, json and csv.";
readonly type: "string";
readonly enum: readonly ["json", "csv", "string", "number"];
};
readonly value: {
readonly description: "The actual value of payload";
readonly type: "string";
};
};
readonly example: {
readonly type: "json";
readonly value: "{\"color\": \"red\"}";
};
};
};
readonly components: {};
};
};
};
};
readonly createFeatureStrategySchema: {
readonly $id: "#/components/schemas/createFeatureStrategySchema";
readonly type: "object";
readonly required: readonly ["name"];
readonly description: "Create a strategy configuration in a feature";
readonly properties: {
readonly name: {
readonly type: "string";
readonly description: "The name of the strategy type";
readonly example: "flexibleRollout";
};
readonly title: {
readonly type: "string";
readonly nullable: true;
readonly description: "A descriptive title for the strategy";
readonly example: "Gradual Rollout 25-Prod";
};
readonly disabled: {
readonly type: "boolean";
readonly description: "A toggle to disable the strategy. defaults to false. Disabled strategies are not evaluated or returned to the SDKs";
readonly example: false;
readonly nullable: true;
};
readonly sortOrder: {
readonly type: "number";
readonly description: "The order of the strategy in the list";
readonly example: 9999;
};
readonly constraints: {
readonly type: "array";
readonly description: "A list of the constraints attached to the strategy. See https://docs.getunleash.io/concepts/activation-strategies#constraints";
readonly example: readonly [{
readonly values: readonly ["1", "2"];
readonly inverted: false;
readonly operator: "IN";
readonly contextName: "appName";
readonly caseInsensitive: false;
}];
readonly items: {
readonly $ref: "#/components/schemas/constraintSchema";
};
};
readonly variants: {
readonly type: "array";
readonly description: "Strategy level variants";
readonly items: {
readonly $ref: "#/components/schemas/createStrategyVariantSchema";
};
};
readonly parameters: {
readonly description: "An object containing the parameters for the strategy";
readonly example: {
readonly groupId: "some_new";
readonly rollout: "25";
readonly stickiness: "sessionId";
};
readonly $ref: "#/components/schemas/parametersSchema";
};
readonly segments: {
readonly type: "array";
readonly description: "Ids of segments to use for this strategy";
readonly example: readonly [1, 2];
readonly items: {
readonly type: "number";
};
};
};
readonly components: {
readonly schemas: {
readonly constraintSchema: {
readonly type: "object";
readonly required: readonly ["contextName", "operator"];
readonly description: "A strategy constraint. For more information, refer to [the strategy constraint reference documentation](https://docs.getunleash.io/concepts/activation-strategies#constraints)";
readonly properties: {
readonly contextName: {
readonly description: "The name of the context field that this constraint should apply to.";
readonly example: "appName";
readonly type: "string";
};
readonly operator: {
readonly description: "The operator to use when evaluating this constraint. For more information about the various operators, refer to [the strategy constraint operator documentation](https://docs.getunleash.io/concepts/activation-strategies#constraint-operators).";
readonly type: "string";
readonly enum: readonly ["NOT_IN", "IN", "STR_ENDS_WITH", "STR_STARTS_WITH", "STR_CONTAINS", "NUM_EQ", "NUM_GT", "NUM_GTE", "NUM_LT", "NUM_LTE", "DATE_AFTER", "DATE_BEFORE", "SEMVER_EQ", "SEMVER_GT", "SEMVER_LT"];
readonly example: "IN";
};
readonly caseInsensitive: {
readonly description: "Whether the operator should be case sensitive or not. Defaults to `false` (being case sensitive).";
readonly type: "boolean";
readonly default: false;
};
readonly inverted: {
readonly description: "Whether the result should be negated or not. If `true`, will turn a `true` result into a `false` result and vice versa.";
readonly type: "boolean";
readonly default: false;
};
readonly values: {
readonly type: "array";
readonly description: "The context values that should be used for constraint evaluation. Use this property instead of `value` for properties that accept multiple values.";
readonly items: {
readonly type: "string";
};
readonly example: readonly ["my-app", "my-other-app"];
};
readonly value: {
readonly description: "The context value that should be used for constraint evaluation. Use this property instead of `values` for properties that only accept single values.";
readonly type: "string";
readonly example: "my-app";
};
};
readonly components: {};
readonly $id: "#/components/schemas/constraintSchema";
readonly additionalProperties: false;
};
readonly parametersSchema: {
readonly $id: "#/components/schemas/parametersSchema";
readonly type: "object";
readonly description: "A list of parameters for a strategy";
readonly additionalProperties: {
readonly type: "string";
};
readonly components: {};
};
readonly createStrategyVariantSchema: {
readonly $id: "#/components/schemas/createStrategyVariantSchema";
readonly type: "object";
readonly description: "This is an experimental property. It may change or be removed as we work on it. Please don't depend on it yet. A strategy variant allows you to attach any data to strategies instead of only returning `true`/`false`. Strategy variants take precedence over feature variants.";
readonly required: readonly ["name", "weight", "weightType", "stickiness"];
readonly properties: {
readonly name: {
readonly type: "string";
readonly description: "The variant name. Must be unique for this feature flag";
readonly example: "blue_group";
};
readonly weight: {
readonly type: "integer";
readonly description: "The weight is the likelihood of any one user getting this variant. It is an integer between 0 and 1000. See the section on [variant weights](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight) for more information";
readonly minimum: 0;
readonly maximum: 1000;
};
readonly weightType: {
readonly description: "Set to `fix` if this variant must have exactly the weight allocated to it. If the type is `variable`, the weight will adjust so that the total weight of all variants adds up to 1000. Refer to the [variant weight documentation](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight).";
readonly type: "string";
readonly example: "fix";
readonly enum: readonly ["variable", "fix"];
};
readonly stickiness: {
readonly type: "string";
readonly description: "The [stickiness](https://docs.getunleash.io/concepts/feature-flag-variants#variant-stickiness) to use for distribution of this variant. Stickiness is how Unleash guarantees that the same user gets the same variant every time";
readonly example: "custom.context.field";
};
readonly payload: {
readonly type: "object";
readonly required: readonly ["type", "value"];
readonly description: "Extra data configured for this variant";
readonly properties: {
readonly type: {
readonly description: "The type of the value. Commonly used types are string, number, json and csv.";
readonly type: "string";
readonly enum: readonly ["json", "csv", "string", "number"];
};
readonly value: {
readonly description: "The actual value of payload";
readonly type: "string";
};
};
readonly example: {
readonly type: "json";
readonly value: "{\"color\": \"red\"}";
};
};
};
readonly components: {};
};
};
};
};
readonly createStrategyVariantSchema: {
readonly $id: "#/components/schemas/createStrategyVariantSchema";
readonly type: "object";
readonly description: "This is an experimental property. It may change or be removed as we work on it. Please don't depend on it yet. A strategy variant allows you to attach any data to strategies instead of only returning `true`/`false`. Strategy variants take precedence over feature variants.";
readonly required: readonly ["name", "weight", "weightType", "stickiness"];
readonly properties: {
readonly name: {
readonly type: "string";
readonly description: "The variant name. Must be unique for this feature flag";
readonly example: "blue_group";
};
readonly weight: {
readonly type: "integer";
readonly description: "The weight is the likelihood of any one user getting this variant. It is an integer between 0 and 1000. See the section on [variant weights](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight) for more information";
readonly minimum: 0;
readonly maximum: 1000;
};
readonly weightType: {
readonly description: "Set to `fix` if this variant must have exactly the weight allocated to it. If the type is `variable`, the weight will adjust so that the total weight of all variants adds up to 1000. Refer to the [variant weight documentation](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight).";
readonly type: "string";
readonly example: "fix";
readonly enum: readonly ["variable", "fix"];
};
readonly stickiness: {
readonly type: "string";
readonly description: "The [stickiness](https://docs.getunleash.io/concepts/feature-flag-variants#variant-stickiness) to use for distribution of this variant. Stickiness is how Unleash guarantees that the same user gets the same variant every time";
readonly example: "custom.context.field";
};
readonly payload: {
readonly type: "object";
readonly required: readonly ["type", "value"];
readonly description: "Extra data configured for this variant";
readonly properties: {
readonly type: {
readonly description: "The type of the value. Commonly used types are string, number, json and csv.";
readonly type: "string";
readonly enum: readonly ["json", "csv", "string", "number"];
};
readonly value: {
readonly description: "The actual value of payload";
readonly type: "string";
};
};
readonly example: {
readonly type: "json";
readonly value: "{\"color\": \"red\"}";
};
};
};
readonly components: {};
};
readonly constraintSchema: {
readonly type: "object";
readonly required: readonly ["contextName", "operator"];
readonly description: "A strategy constraint. For more information, refer to [the strategy constraint reference documentation](https://docs.getunleash.io/concepts/activation-strategies#constraints)";
readonly properties: {
readonly contextName: {
readonly description: "The name of the context field that this constraint should apply to.";
readonly example: "appName";
readonly type: "string";
};
readonly operator: {
readonly description: "The operator to use when evaluating this constraint. For more information about the various operators, refer to [the strategy constraint operator documentation](https://docs.getunleash.io/concepts/activation-strategies#constraint-operators).";
readonly type: "string";
readonly enum: readonly ["NOT_IN", "IN", "STR_ENDS_WITH", "STR_STARTS_WITH", "STR_CONTAINS", "NUM_EQ", "NUM_GT", "NUM_GTE", "NUM_LT", "NUM_LTE", "DATE_AFTER", "DATE_BEFORE", "SEMVER_EQ", "SEMVER_GT", "SEMVER_LT"];
readonly example: "IN";
};
readonly caseInsensitive: {
readonly description: "Whether the operator should be case sensitive or not. Defaults to `false` (being case sensitive).";
readonly type: "boolean";
readonly default: false;
};
readonly inverted: {
readonly description: "Whether the result should be negated or not. If `true`, will turn a `true` result into a `false` result and vice versa.";
readonly type: "boolean";
readonly default: false;
};
readonly values: {
readonly type: "array";
readonly description: "The context values that should be used for constraint evaluation. Use this property instead of `value` for properties that accept multiple values.";
readonly items: {
readonly type: "string";
};
readonly example: readonly ["my-app", "my-other-app"];
};
readonly value: {
readonly description: "The context value that should be used for constraint evaluation. Use this property instead of `values` for properties that only accept single values.";
readonly type: "string";
readonly example: "my-app";
};
};
readonly components: {};
readonly $id: "#/components/schemas/constraintSchema";
readonly additionalProperties: false;
};
readonly featureSchema: {
readonly $id: "#/components/schemas/featureSchema";
readonly type: "object";
readonly additionalProperties: false;
readonly required: readonly ["name"];
readonly description: "A feature flag definition";
readonly properties: {
readonly name: {
readonly type: "string";
readonly example: "disable-comments";
readonl