@autorest/codemodel
Version:
AutoRest code model library
61 lines • 2.53 kB
TypeScript
import { DeepPartial } from "@azure-tools/codegen";
import { Parameter } from "../parameter";
import { Property } from "../property";
import { Schema, ComplexSchema } from "../schema";
import { SchemaType } from "../schema-type";
import { SchemaUsage } from "./usage";
export interface Relations {
immediate: Array<ComplexSchema>;
all: Array<ComplexSchema>;
}
export declare class Relations {
constructor();
}
export interface Discriminator {
property: Property;
immediate: Record<string, ComplexSchema>;
all: Record<string, ComplexSchema>;
}
export declare class Discriminator implements Discriminator {
property: Property;
constructor(property: Property);
}
export interface GroupProperty extends Property {
originalParameter: Array<Parameter>;
}
export declare class GroupProperty extends Property implements GroupProperty {
originalParameter: Parameter[];
constructor(name: string, description: string, schema: Schema, initializer?: DeepPartial<GroupProperty>);
}
export interface GroupSchema extends Schema, SchemaUsage {
type: SchemaType.Group;
properties?: Array<GroupProperty>;
}
export declare class GroupSchema extends Schema implements GroupSchema {
constructor(name: string, description: string, objectInitializer?: DeepPartial<GroupSchema>);
add(property: GroupProperty): GroupProperty;
}
/** a schema that represents a type with child properties. */
export interface ObjectSchema extends ComplexSchema, SchemaUsage {
/** the schema type */
type: SchemaType.Object;
/** the property of the polymorphic descriminator for this type, if there is one */
discriminator?: Discriminator;
/** the collection of properties that are in this object */
properties?: Array<Property>;
/** maximum number of properties permitted */
maxProperties?: number;
/** minimum number of properties permitted */
minProperties?: number;
parents?: Relations;
children?: Relations;
discriminatorValue?: string;
}
export declare class ObjectSchema extends Schema implements ObjectSchema {
constructor(name: string, description: string, objectInitializer?: DeepPartial<ObjectSchema>);
addProperty(property: Property): Property;
}
export declare function isObjectSchema(schema: Schema): schema is ObjectSchema;
export declare function getAllProperties(schema: ObjectSchema): Iterable<Property>;
export declare function getAllParentProperties(schema: ObjectSchema): Iterable<Property>;
//# sourceMappingURL=object.d.ts.map