/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */
/**
 * WhatIfTemplatesResponse PI_JSON
 */
export interface WhatIfTemplatesResponse {
    /**
     * WhatIfTemplates
     */
    whatIfTemplates: WhatIfTemplate[];
}
export interface WhatIfTemplate {
    /**
     * the id of the workflow
     */
    id: string;
    /**
     * The name of the workflow
     */
    name: string;
    /**
     * WhatIfProperties
     */
    properties?: (WhatIfTemplateConfigFileProperty | WhatIfTemplateBooleanProperty | WhatIfTemplateIntProperty | WhatIfTemplateDoubleProperty | WhatIfTemplateStringProperty | WhatIfTemplateDateTimeProperty | WhatIfTemplateTemplateProperty | WhatIfTemplateEnumProperty)[];
}
export interface WhatIfTemplateConfigFileProperty {
    /**
     * the id of the property
     */
    id: string;
    /**
     * The name of the property
     */
    name: string;
    /**
     * The type of the property
     */
    type: "configFile";
    /**
     * The config file type
     */
    configFileType: "cold state" | "module dataset" | "module parameter";
    /**
     * The default config file
     */
    default?: string;
    /**
     * The configured pattern
     */
    pattern?: string;
    /**
     * When true then the configFile name without the configured 'pattern' is visible in the dropdown box.
     */
    hidePattern?: boolean;
}
export interface WhatIfTemplateBooleanProperty {
    /**
     * the id of the property
     */
    id: string;
    /**
     * The name of the property
     */
    name: string;
    /**
     * The name of the property
     */
    type: "boolean";
    /**
     * The default value of the property
     */
    defaultValue: boolean;
}
export interface WhatIfTemplateIntProperty {
    /**
     * the id of the property
     */
    id: string;
    /**
     * The name of the property
     */
    name: string;
    /**
     * The type of the property
     */
    type: "integer";
    /**
     * The default value of the property
     */
    defaultValue: number;
}
export interface WhatIfTemplateDoubleProperty {
    /**
     * the id of the property
     */
    id: string;
    /**
     * The name of the property
     */
    name: string;
    /**
     * The type of the property
     */
    type: "number";
    /**
     * The default value of the property
     */
    defaultValue: number;
    /**
     * The min value of the property
     */
    minValue?: number;
    /**
     * The max value of the property
     */
    maxValue?: number;
}
export interface WhatIfTemplateStringProperty {
    /**
     * the id of the property
     */
    id: string;
    /**
     * The name of the property
     */
    name: string;
    /**
     * The type of the property
     */
    type: "string";
    /**
     * The default value of the property
     */
    defaultValue: string;
}
export interface WhatIfTemplateDateTimeProperty {
    /**
     * the id of the property
     */
    id: string;
    /**
     * The name of the property
     */
    name: string;
    /**
     * The type of the property
     */
    type: "dateTime";
    /**
     * The default value of the property
     */
    defaultValue: string;
}
export interface WhatIfTemplateTemplateProperty {
    /**
     * the id of the property
     */
    id: string;
    /**
     * The name of the property
     */
    name: string;
    /**
     * The type of the property
     */
    type: "whatIfTemplateTemplateId";
    /**
     * The template id of the referenced whatif
     */
    templateId: string;
}
export interface WhatIfTemplateEnumProperty {
    /**
     * the id of the property
     */
    id: string;
    /**
     * The name of the property
     */
    name: string;
    /**
     * The type of the property
     */
    type: "enumProperty";
    /**
     * The default value of the property
     */
    defaultValue: number;
    /**
     * values of the enum
     */
    values: WhatIfTemplateEnumPropertyValues[];
}
export interface WhatIfTemplateEnumPropertyValues {
    /**
     * the code of the value
     */
    code: string;
    /**
     * The label of the value
     */
    label: string;
}
