1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-11 00:08:30 +01:00
unleash.unleash/src/lib/openapi/spec/create-strategy-schema.ts
Thomas Heartman f799f72697
openapi: strategies tag (#4116)
Update OpenAPI schemas and operation descriptions for the strategies
tag.
2023-07-04 14:21:09 +02:00

68 lines
2.7 KiB
TypeScript

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',
},
description: {
type: 'string',
description: 'A description of the strategy type.',
example:
'Enable the feature for users who have not logged in before.',
},
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>;