unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
83 lines • 3.3 kB
JavaScript
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
import { parametersSchema } from './parameters-schema.js';
import { constraintSchema } from './constraint-schema.js';
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
import { transitionConditionSchema } from './transition-condition-schema.js';
export const releasePlanMilestoneSchema = {
$id: '#/components/schemas/releasePlanMilestoneSchema',
additionalProperties: false,
description: 'Schema representing the creation of a release plan milestone.',
type: 'object',
required: ['id', 'name', 'sortOrder', 'releasePlanDefinitionId'],
properties: {
id: {
type: 'string',
description: "The milestone's ID. Milestone IDs are ulids.",
example: '01JB9GGTGQYEQ9D40R17T3YVW1',
nullable: false,
},
name: {
type: 'string',
description: 'The name of the milestone.',
example: 'My milestone',
},
sortOrder: {
type: 'integer',
description: 'The order of the milestone in the release plan.',
example: 1,
},
releasePlanDefinitionId: {
type: 'string',
description: 'The ID of the release plan/template that this milestone belongs to.',
example: '01JB9GGTGQYEQ9D40R17T3YVW2',
},
startedAt: {
type: 'string',
format: 'date-time',
description: 'The date and time when the milestone was started.',
example: '2024-01-01T00:00:00.000Z',
nullable: true,
},
transitionCondition: {
type: transitionConditionSchema.type,
additionalProperties: transitionConditionSchema.additionalProperties,
required: transitionConditionSchema.required,
properties: transitionConditionSchema.properties,
description: 'The condition configuration for the transition',
nullable: true,
},
progressionExecutedAt: {
type: 'string',
format: 'date-time',
description: 'The date and time when the milestone progression was executed.',
example: '2024-01-01T00:00:00.000Z',
nullable: true,
},
pausedAt: {
type: 'string',
format: 'date-time',
description: 'The date and time when the milestone was paused.',
example: '2024-01-01T00:00:00.000Z',
nullable: true,
},
strategies: {
type: 'array',
description: 'A list of strategies that are attached to this milestone.',
items: {
$ref: '#/components/schemas/releasePlanMilestoneStrategySchema',
},
},
},
components: {
schemas: {
releasePlanMilestoneStrategySchema,
createFeatureStrategySchema,
parametersSchema,
constraintSchema,
createStrategyVariantSchema,
transitionConditionSchema,
},
},
};
//# sourceMappingURL=release-plan-milestone-schema.js.map