@autorest/codemodel
Version:
AutoRest code model library
43 lines • 1.76 kB
TypeScript
import { DeepPartial } from "@azure-tools/codegen";
import { ComplexSchema, Schema } from "../schema";
import { SchemaType } from "../schema-type";
/** an OR relationship between several schemas
*
* @note - this expresses that the schema can be
* any combination of the schema types given, which means
* that this restricts the types to just <ObjectSchemaTypes>
* because it does not make sense that a value can be a 'primitive'
* and an 'object' at the same time. Nor does it make sense
* that a value can be two primitive types at the same time.
*/
export interface OrSchema extends ComplexSchema {
/** the set of schemas that this schema is composed of. Every schema is optional */
anyOf: Array<ComplexSchema>;
}
export declare class OrSchema extends Schema implements OrSchema {
constructor(name: string, description: string, objectInitializer?: DeepPartial<OrSchema>);
}
/** an XOR relationship between several schemas
*
* @note because this indicates that the actual schema
* can be any one of the possible types, there is no
* restriction on the type that it may be. (bool or object or number is ok)
*/
export interface XorSchema extends Schema {
/** the set of schemas that this must be one and only one of. */
oneOf: Array<Schema>;
}
export declare class XorSchema extends Schema implements XorSchema {
constructor(name: string, description: string, objectInitializer?: DeepPartial<XorSchema>);
}
/** a NOT relationship between schemas
*
* @fearthecowboy - I don't think we're going to impmement this.
*/
export interface NotSchema extends Schema {
/** the schema type */
type: SchemaType.Not;
/** the schema that this may not be. */
not: Schema;
}
//# sourceMappingURL=relationship.d.ts.map