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
2023-12-19 08:57:10 +01:00

68 lines
2.0 KiB
TypeScript

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;
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: [
{
required: ['environment', 'features'],
properties: {
...commonProps,
features: {
type: 'array',
example: ['MyAwesomeFeature'],
items: {
type: 'string',
minLength: 1,
},
description:
'Selects features to export by name. If the list is empty all features are returned.',
},
},
},
{
required: ['environment', 'tag'],
properties: {
...commonProps,
tag: {
type: 'string',
example: 'release',
description: 'Selects features to export by tag.',
},
},
},
{
required: ['environment', 'project'],
properties: {
...commonProps,
project: {
type: 'string',
example: 'my-project',
description:
'Selects project to export the features from. Used when no tags or features are provided.',
},
},
},
],
components: {
schemas: {},
},
} as const;
export type ExportQuerySchema = FromSchema<typeof exportQuerySchema>;