2023-07-04 14:21:09 +02:00
import { FromSchema } from 'json-schema-to-ts' ;
export const createStrategySchema = {
$id : '#/components/schemas/createStrategySchema' ,
type : 'object' ,
description :
'The data required to create a strategy type. Refer to the docs on [custom strategy types](https://docs.getunleash.io/reference/custom-activation-strategies) for more information.' ,
required : [ 'name' , 'parameters' ] ,
properties : {
name : {
type : 'string' ,
description : 'The name of the strategy type. Must be unique.' ,
example : 'my-custom-strategy' ,
} ,
2023-09-12 15:40:57 +02:00
title : {
type : 'string' ,
description : 'The title of the strategy' ,
example : 'My awesome strategy' ,
} ,
2023-07-04 14:21:09 +02:00
description : {
type : 'string' ,
description : 'A description of the strategy type.' ,
example :
'Enable the feature for users who have not logged in before.' ,
} ,
2023-09-12 15:40:57 +02:00
editable : {
type : 'boolean' ,
description :
'Whether the strategy type is editable or not. Defaults to `true`.' ,
example : false ,
} ,
deprecated : {
type : 'boolean' ,
description :
'Whether the strategy type is deprecated or not. Defaults to `false`.' ,
example : true ,
} ,
2023-07-04 14:21:09 +02:00
parameters : {
type : 'array' ,
description :
'The parameter list lets you pass arguments to your custom activation strategy. These will be made available to your custom strategy implementation.' ,
items : {
type : 'object' ,
required : [ 'name' , 'type' ] ,
properties : {
name : {
type : 'string' ,
description : 'The name of the parameter' ,
example : 'Rollout percentage' ,
} ,
type : {
type : 'string' ,
description :
'The [type of the parameter](https://docs.getunleash.io/reference/custom-activation-strategies#parameter-types)' ,
enum : [
'string' ,
'percentage' ,
'list' ,
'number' ,
'boolean' ,
] ,
example : 'percentage' ,
} ,
description : {
type : 'string' ,
description :
'A description of this strategy parameter. Use this to indicate to the users what the parameter does.' ,
example :
'How many percent of users should see this feature?' ,
} ,
required : {
type : 'boolean' ,
description :
'Whether this parameter must be configured when using the strategy. Defaults to `false`' ,
example : false ,
} ,
} ,
} ,
} ,
} ,
components : { } ,
} as const ;
export type CreateStrategySchema = FromSchema < typeof createStrategySchema > ;