UNPKG

@autorest/codemodel

Version:
41 lines 2.08 kB
import { Initializer, DeepPartial } from "@azure-tools/codegen"; import { Extensions } from "../extensions"; import { Languages } from "../languages"; import { PrimitiveSchema, ValueSchema, Schema } from "../schema"; import { SchemaType } from "../schema-type"; import { StringSchema } from "./string"; /** a schema that represents a choice of several values (ie, an 'enum') */ export interface ChoiceSchema<ChoiceType extends PrimitiveSchema = StringSchema> extends ValueSchema { /** the schema type */ type: SchemaType.Choice; /** the primitive type for the choices */ choiceType: ChoiceType; /** the possible choices for in the set */ choices: Array<ChoiceValue>; } /** an individual choice in a ChoiceSchema */ export interface ChoiceValue extends Extensions { /** per-language information for this value */ language: Languages; /** the actual value */ value: string | number | boolean; } export declare class ChoiceValue extends Initializer { constructor(name: string, description: string, value: string | number | boolean, objectInitializer?: DeepPartial<ChoiceValue>); } export declare class ChoiceSchema<ChoiceType extends PrimitiveSchema = StringSchema> extends Schema implements ChoiceSchema<ChoiceType> { constructor(name: string, description: string, objectInitializer?: DeepPartial<ChoiceSchema<ChoiceType>>); } /** a schema that represents a choice of several values (ie, an 'enum') */ export interface SealedChoiceSchema<ChoiceType extends PrimitiveSchema = StringSchema> extends ValueSchema { /** the schema type */ type: SchemaType.SealedChoice; /** the primitive type for the choices */ choiceType: ChoiceType; /** the possible choices for in the set */ choices: Array<ChoiceValue>; } export declare class SealedChoiceSchema<ChoiceType extends PrimitiveSchema = StringSchema> extends Schema implements SealedChoiceSchema<ChoiceType> { constructor(name: string, description: string, objectInitializer?: DeepPartial<ChoiceSchema<ChoiceType>>); } //# sourceMappingURL=choice.d.ts.map