1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-31 00:16:47 +01:00
unleash.unleash/src/lib/openapi/spec/export-query-schema.ts

68 lines
2.0 KiB
TypeScript
Raw Normal View History

2023-01-11 16:00:20 +01:00
import { FromSchema } from 'json-schema-to-ts';
const commonProps = {
environment: {
type: 'string',
example: 'development',
description: 'The environment to export from',
},
downloadFile: {
type: 'boolean',
example: true,
description: 'Whether to return a downloadable file',
},
} as const;
2023-01-11 16:00:20 +01:00
export const exportQuerySchema = {
$id: '#/components/schemas/exportQuerySchema',
type: 'object',
description:
'Available query parameters for the [deprecated export/import](https://docs.getunleash.io/reference/deploy/import-export) functionality.',
anyOf: [
2023-04-27 10:22:14 +02:00
{
required: ['environment', 'features'],
2023-04-27 10:22:14 +02:00
properties: {
...commonProps,
2023-04-27 10:22:14 +02:00
features: {
type: 'array',
example: ['MyAwesomeFeature'],
2023-04-27 10:22:14 +02:00
items: {
type: 'string',
minLength: 1,
},
description:
'Selects features to export by name. If the list is empty all features are returned.',
2023-04-27 10:22:14 +02:00
},
},
},
{
required: ['environment', 'tag'],
2023-04-27 10:22:14 +02:00
properties: {
...commonProps,
2023-04-27 10:22:14 +02:00
tag: {
type: 'string',
example: 'release',
description: 'Selects features to export by tag.',
},
},
},
{
required: ['environment', 'project'],
properties: {
...commonProps,
project: {
type: 'string',
example: 'my-project',
2023-04-27 10:22:14 +02:00
description:
'Selects project to export the features from. Used when no tags or features are provided.',
2023-04-27 10:22:14 +02:00
},
},
},
],
2023-01-11 16:00:20 +01:00
components: {
schemas: {},
},
} as const;
export type ExportQuerySchema = FromSchema<typeof exportQuerySchema>;