{
  "$id": "https://docs.mysurvey.solutions/schemas/questionnaire.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "definitions": {
    "Answer": {
      "additionalProperties": false,
      "properties": {
        "AttachmentName": {
          "type": [
            "string",
            "null"
          ]
        },
        "Code": {
          "type": [
            "integer",
            "null"
          ]
        },
        "ParentCode": {
          "type": [
            "integer",
            "null"
          ]
        },
        "Text": {
          "type": "string"
        }
      },
      "required": [],
      "type": "object"
    },
    "Answers": {
      "items": {
        "$ref": "#/definitions/Answer"
      },
      "type": "array"
    },
    "AreaQuestion": {
      "additionalProperties": false,
      "properties": {
        "ConditionExpression": {
          "type": "string"
        },
        "GeometryInputMode": {
          "default": "Manual",
          "oneOf": [
            {
              "const": "Manual",
              "description": "Manual"
            },
            {
              "const": "Automatic",
              "description": "Automatic"
            },
            {
              "const": "Semiautomatic",
              "description": "Semiautomatic"
            }
          ],
          "type": "string"
        },
        "GeometryOverlapDetection": {
          "default": false,
          "type": "boolean"
        },
        "GeometryType": {
          "default": "Polygon",
          "oneOf": [
            {
              "const": "Polygon",
              "description": "Polygon"
            },
            {
              "const": "Polyline",
              "description": "Polyline"
            },
            {
              "const": "Point",
              "description": "Point"
            },
            {
              "const": "Multipoint",
              "description": "Multipoint"
            }
          ],
          "type": "string"
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "HideInstructions": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Instructions": {
          "type": "string"
        },
        "QuestionScope": {
          "$ref": "#/definitions/QuestionScope"
        },
        "QuestionText": {
          "type": "string"
        },
        "Type": {
          "const": "AreaQuestion"
        },
        "ValidationConditions": {
          "$ref": "#/definitions/ValidationConditions"
        },
        "VariableLabel": {
          "$ref": "#/definitions/VariableLabel"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "Attachment": {
      "additionalProperties": false,
      "properties": {
        "ContentType": {
          "type": "string"
        },
        "FileName": {
          "type": "string"
        },
        "Name": {
          "maxLength": 32,
          "type": "string"
        }
      },
      "required": [
        "Name",
        "FileName",
        "ContentType"
      ],
      "type": "object"
    },
    "AudioQuestion": {
      "additionalProperties": false,
      "properties": {
        "ConditionExpression": {
          "type": "string"
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "HideInstructions": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Instructions": {
          "type": "string"
        },
        "QuestionScope": {
          "$ref": "#/definitions/QuestionScope"
        },
        "QuestionText": {
          "type": "string"
        },
        "Type": {
          "const": "AudioQuestion"
        },
        "ValidationConditions": {
          "$ref": "#/definitions/ValidationConditions"
        },
        "VariableLabel": {
          "$ref": "#/definitions/VariableLabel"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "Categories": {
      "additionalProperties": false,
      "properties": {
        "FileName": {
          "type": "string"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Name": {
          "maxLength": 32,
          "type": "string"
        }
      },
      "required": [
        "FileName",
        "Name"
      ],
      "type": "object"
    },
    "CoverPage": {
      "additionalProperties": false,
      "properties": {
        "Children": {
          "items": {
            "oneOf": [
              {
                "$ref": "#/definitions/StaticText"
              },
              {
                "$ref": "#/definitions/DateTimeQuestion"
              },
              {
                "$ref": "#/definitions/GpsCoordinateQuestion"
              },
              {
                "$ref": "#/definitions/NumericQuestion"
              },
              {
                "$ref": "#/definitions/SingleQuestion"
              },
              {
                "$ref": "#/definitions/TextQuestion"
              },
              {
                "$ref": "#/definitions/Variable"
              }
            ]
          },
          "type": "array"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Title": {
          "type": "string"
        },
        "Type": {
          "const": "CoverPage"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "DateTimeQuestion": {
      "additionalProperties": false,
      "properties": {
        "ConditionExpression": {
          "type": "string"
        },
        "DefaultDate": {
          "format": "date-time",
          "type": "string"
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "HideInstructions": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Instructions": {
          "type": "string"
        },
        "IsTimestamp": {
          "default": false,
          "type": "boolean"
        },
        "QuestionScope": {
          "$ref": "#/definitions/QuestionScope"
        },
        "QuestionText": {
          "type": "string"
        },
        "Type": {
          "const": "DateTimeQuestion"
        },
        "ValidationConditions": {
          "$ref": "#/definitions/ValidationConditions"
        },
        "VariableLabel": {
          "$ref": "#/definitions/VariableLabel"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "FixedRosterTitle": {
      "additionalProperties": false,
      "properties": {
        "Title": {
          "type": "string"
        },
        "Value": {
          "type": "integer"
        }
      },
      "required": [
        "Value",
        "Title"
      ],
      "type": "object"
    },
    "GUID": {
      "format": "uuid",
      "type": "string"
    },
    "GpsCoordinateQuestion": {
      "additionalProperties": false,
      "properties": {
        "ConditionExpression": {
          "type": "string"
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "HideInstructions": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Instructions": {
          "type": "string"
        },
        "QuestionScope": {
          "$ref": "#/definitions/QuestionScope"
        },
        "QuestionText": {
          "type": "string"
        },
        "Type": {
          "const": "GpsCoordinateQuestion"
        },
        "ValidationConditions": {
          "$ref": "#/definitions/ValidationConditions"
        },
        "VariableLabel": {
          "$ref": "#/definitions/VariableLabel"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "Group": {
      "additionalProperties": false,
      "properties": {
        "Children": {
          "items": {
            "oneOf": [
              {
                "$ref": "#/definitions/Group"
              },
              {
                "$ref": "#/definitions/Roster"
              },
              {
                "$ref": "#/definitions/StaticText"
              },
              {
                "$ref": "#/definitions/AreaQuestion"
              },
              {
                "$ref": "#/definitions/AudioQuestion"
              },
              {
                "$ref": "#/definitions/DateTimeQuestion"
              },
              {
                "$ref": "#/definitions/GpsCoordinateQuestion"
              },
              {
                "$ref": "#/definitions/PictureQuestion"
              },
              {
                "$ref": "#/definitions/MultiOptionsQuestion"
              },
              {
                "$ref": "#/definitions/NumericQuestion"
              },
              {
                "$ref": "#/definitions/QRBarcodeQuestion"
              },
              {
                "$ref": "#/definitions/SingleQuestion"
              },
              {
                "$ref": "#/definitions/TextListQuestion"
              },
              {
                "$ref": "#/definitions/TextQuestion"
              },
              {
                "$ref": "#/definitions/Variable"
              }
            ]
          },
          "type": "array"
        },
        "ConditionExpression": {
          "type": "string"
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Title": {
          "type": "string"
        },
        "Type": {
          "const": "Group"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "LookupTable": {
      "additionalProperties": false,
      "properties": {
        "FileName": {
          "type": "string"
        },
        "TableName": {
          "maxLength": 32,
          "type": "string"
        }
      },
      "required": [
        "TableName",
        "FileName"
      ],
      "type": "object"
    },
    "Macro": {
      "additionalProperties": false,
      "properties": {
        "Content": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "Name": {
          "maxLength": 32,
          "type": "string"
        }
      },
      "required": [
        "Name",
        "Content"
      ],
      "type": "object"
    },
    "MultiOptionsQuestion": {
      "additionalProperties": false,
      "properties": {
        "Answers": {
          "$ref": "#/definitions/Answers"
        },
        "AreAnswersOrdered": {
          "default": false,
          "type": "boolean"
        },
        "CascadeFromQuestion": {
          "$ref": "#/definitions/VariableName"
        },
        "CategoriesId": {
          "$ref": "#/definitions/GUID"
        },
        "ConditionExpression": {
          "type": "string"
        },
        "DisplayMode": {
          "default": "Checkboxes",
          "oneOf": [
            {
              "const": "Checkboxes",
              "description": "Checkboxes"
            },
            {
              "const": "YesNo",
              "description": "Yes/No buttons"
            },
            {
              "const": "Combobox",
              "description": "Combo box"
            }
          ],
          "type": "string"
        },
        "FilterExpression": {
          "type": "string"
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "HideInstructions": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Instructions": {
          "type": "string"
        },
        "LinkedTo": {
          "$ref": "#/definitions/VariableName"
        },
        "MaxAllowedAnswers": {
          "minimum": 2,
          "type": "integer"
        },
        "QuestionScope": {
          "$ref": "#/definitions/QuestionScope"
        },
        "QuestionText": {
          "type": "string"
        },
        "Type": {
          "const": "MultiOptionsQuestion"
        },
        "ValidationConditions": {
          "$ref": "#/definitions/ValidationConditions"
        },
        "VariableLabel": {
          "$ref": "#/definitions/VariableLabel"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "NumericQuestion": {
      "additionalProperties": false,
      "properties": {
        "ConditionExpression": {
          "type": "string"
        },
        "DecimalPlaces": {
          "minimum": 0,
          "type": "integer"
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "HideInstructions": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Instructions": {
          "type": "string"
        },
        "IsInteger": {
          "default": true,
          "type": "boolean"
        },
        "QuestionScope": {
          "$ref": "#/definitions/QuestionScope"
        },
        "QuestionText": {
          "type": "string"
        },
        "SpecialValues": {
          "$ref": "#/definitions/SpecialValues"
        },
        "Type": {
          "const": "NumericQuestion"
        },
        "UseThousandsSeparator": {
          "default": false,
          "type": "boolean"
        },
        "ValidationConditions": {
          "$ref": "#/definitions/ValidationConditions"
        },
        "VariableLabel": {
          "$ref": "#/definitions/VariableLabel"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "PictureQuestion": {
      "Type": "object",
      "additionalProperties": false,
      "properties": {
        "ConditionExpression": {
          "type": "string"
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "HideInstructions": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Instructions": {
          "type": "string"
        },
        "IsSignature": {
          "default": false,
          "type": "boolean"
        },
        "QuestionScope": {
          "$ref": "#/definitions/QuestionScope"
        },
        "QuestionText": {
          "type": "string"
        },
        "Type": {
          "const": "PictureQuestion"
        },
        "ValidationConditions": {
          "$ref": "#/definitions/ValidationConditions"
        },
        "VariableLabel": {
          "$ref": "#/definitions/VariableLabel"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ]
    },
    "QRBarcodeQuestion": {
      "additionalProperties": false,
      "properties": {
        "ConditionExpression": {
          "type": "string"
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "HideInstructions": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Instructions": {
          "type": "string"
        },
        "QuestionScope": {
          "$ref": "#/definitions/QuestionScope"
        },
        "QuestionText": {
          "type": "string"
        },
        "Type": {
          "const": "QRBarcodeQuestion"
        },
        "ValidationConditions": {
          "$ref": "#/definitions/ValidationConditions"
        },
        "VariableLabel": {
          "$ref": "#/definitions/VariableLabel"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "QuestionScope": {
      "default": "Interviewer",
      "enum": [
        "Interviewer",
        "Supervisor",
        "Hidden"
      ],
      "type": "string"
    },
    "QuestionnaireMetaInfo": {
      "additionalProperties": false,
      "properties": {
        "AgreeToMakeThisQuestionnairePublic": {
          "default": false,
          "type": "boolean"
        },
        "Consultant": {
          "type": [
            "string",
            "null"
          ]
        },
        "Country": {
          "type": [
            "string",
            "null"
          ]
        },
        "Coverage": {
          "type": [
            "string",
            "null"
          ]
        },
        "Funding": {
          "type": [
            "string",
            "null"
          ]
        },
        "Keywords": {
          "type": [
            "string",
            "null"
          ]
        },
        "KindOfData": {
          "type": [
            "string",
            "null"
          ]
        },
        "Language": {
          "type": [
            "string",
            "null"
          ]
        },
        "ModeOfDataCollection": {
          "default": "Error",
          "oneOf": [
            {
              "const": "Capi",
              "description": "Capi"
            },
            {
              "const": "Cati",
              "description": "Cati"
            },
            {
              "const": "FaceToFace",
              "description": "Face To Face"
            },
            {
              "const": "Mail",
              "description": "Mail"
            },
            {
              "const": "FocusGroup",
              "description": "Focus Group"
            },
            {
              "const": "Internet",
              "description": "Internet"
            },
            {
              "const": "Other",
              "description": "Other"
            }
          ],
          "type": "string"
        },
        "Notes": {
          "type": [
            "string",
            "null"
          ]
        },
        "PrimaryInvestigator": {
          "type": [
            "string",
            "null"
          ]
        },
        "StudyType": {
          "default": "AdministrativeRecords",
          "oneOf": [
            {
              "const": "AdministrativeRecords",
              "description": "Administrative Records"
            },
            {
              "const": "AgriculturalCensus",
              "description": "Agricultural Census"
            },
            {
              "const": "AgriculturalSurvey",
              "description": "Agricu lturalSurvey"
            },
            {
              "const": "ChildLaborSurvey",
              "description": "Child Labor Survey"
            },
            {
              "const": "CoreWelfareIndicatorsQuestionnaire",
              "description": "Core Welfare Indicators Questionnaire"
            },
            {
              "const": "DemographicAndHealthSurvey",
              "description": "Demographic And Health Survey"
            },
            {
              "const": "EnterpriseSurvey",
              "description": "Enterprise Survey"
            },
            {
              "const": "EnterpriseCensus",
              "description": "Enterprise Census"
            },
            {
              "const": "InformalSectorSurvey",
              "description": "Informal Sector Survey"
            },
            {
              "const": "IntegratedSurvey",
              "description": "Integrated Survey"
            },
            {
              "const": "MultipleIndicatorClusterSurvey",
              "description": "Multiple Indicator Cluster Survey"
            },
            {
              "const": "LaborForceSurvey",
              "description": "Labor Force Survey"
            },
            {
              "const": "LivingStandardsMeasurementStudy",
              "description": "Living Standards Measurement Study"
            },
            {
              "const": "HouseholdHealthSurvey",
              "description": "Household Health Survey"
            },
            {
              "const": "HouseholdSurvey",
              "description": "Household Survey"
            },
            {
              "const": "PriceSurvey",
              "description": "Price Survey"
            },
            {
              "const": "PrioritySurvey",
              "description": "Priority Survey"
            },
            {
              "const": "PopulationAndHousingCensus",
              "description": "Population And Housing Census"
            },
            {
              "const": "SampleFrame",
              "description": "Sample Frame"
            },
            {
              "const": "ServiceProvisionAssessments",
              "description": "Service Provision Assessments"
            },
            {
              "const": "SocioEconomicMonitoringSurvey",
              "description": "SocioE conomic Monitoring Survey"
            },
            {
              "const": "StatisticalInfoAndMonitoringProg",
              "description": "Statistical Info And Monitoring Prog"
            },
            {
              "const": "WorldFertilitySurvey",
              "description": "World Fertility Survey"
            },
            {
              "const": "WorldHealthSurvey",
              "description": "World Health Survey"
            }
          ],
          "type": "string"
        },
        "SubTitle": {
          "type": [
            "null",
            "string"
          ]
        },
        "UnitOfAnalysis": {
          "type": [
            "string",
            "null"
          ]
        },
        "Universe": {
          "type": [
            "string",
            "null"
          ]
        },
        "Version": {
          "type": [
            "string",
            "null"
          ]
        },
        "VersionNotes": {
          "type": [
            "string",
            "null"
          ]
        },
        "Year": {
          "format": "int32",
          "maxLength": 4,
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "Roster": {
      "additionalProperties": false,
      "properties": {
        "Children": {
          "items": {
            "oneOf": [
              {
                "$ref": "#/definitions/Group"
              },
              {
                "$ref": "#/definitions/Roster"
              },
              {
                "$ref": "#/definitions/StaticText"
              },
              {
                "$ref": "#/definitions/AreaQuestion"
              },
              {
                "$ref": "#/definitions/AudioQuestion"
              },
              {
                "$ref": "#/definitions/DateTimeQuestion"
              },
              {
                "$ref": "#/definitions/GpsCoordinateQuestion"
              },
              {
                "$ref": "#/definitions/PictureQuestion"
              },
              {
                "$ref": "#/definitions/MultiOptionsQuestion"
              },
              {
                "$ref": "#/definitions/NumericQuestion"
              },
              {
                "$ref": "#/definitions/QRBarcodeQuestion"
              },
              {
                "$ref": "#/definitions/SingleQuestion"
              },
              {
                "$ref": "#/definitions/TextListQuestion"
              },
              {
                "$ref": "#/definitions/TextQuestion"
              },
              {
                "$ref": "#/definitions/Variable"
              }
            ]
          },
          "type": "array"
        },
        "ConditionExpression": {
          "type": "string"
        },
        "DisplayMode": {
          "default": "SubSection",
          "oneOf": [
            {
              "const": "SubSection",
              "description": "Sub Section"
            },
            {
              "const": "Flat",
              "description": "Flat"
            },
            {
              "const": "Table",
              "description": "Table"
            },
            {
              "const": "Matrix",
              "description": "Matrix"
            }
          ],
          "type": "string"
        },
        "FixedRosterTitles": {
          "items": {
            "$ref": "#/definitions/FixedRosterTitle"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "RosterSizeQuestion": {
          "$ref": "#/definitions/VariableName"
        },
        "RosterSizeSource": {
          "default": "FixedTitles",
          "oneOf": [
            {
              "const": "FixedTitles",
              "description": "Fixed Titles"
            },
            {
              "const": "Question",
              "description": "Question"
            }
          ],
          "type": "string"
        },
        "RosterTitleQuestion": {
          "$ref": "#/definitions/VariableName"
        },
        "Title": {
          "type": "string"
        },
        "Type": {
          "const": "Roster"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "SingleQuestion": {
      "additionalProperties": false,
      "properties": {
        "Answers": {
          "$ref": "#/definitions/Answers"
        },
        "CascadeFromQuestion": {
          "$ref": "#/definitions/VariableName"
        },
        "CategoriesId": {
          "$ref": "#/definitions/GUID"
        },
        "ConditionExpression": {
          "type": "string"
        },
        "DisplayMode": {
          "default": "Radio",
          "oneOf": [
            {
              "const": "Radio",
              "description": "Radio button list"
            },
            {
              "const": "Combobox",
              "description": "Combo box"
            },
            {
              "const": "Cascading",
              "description": "Cascading combo box"
            }
          ],
          "type": "string"
        },
        "FilterExpression": {
          "type": "string"
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "HideInstructions": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Instructions": {
          "type": "string"
        },
        "LinkedTo": {
          "$ref": "#/definitions/VariableName"
        },
        "QuestionScope": {
          "$ref": "#/definitions/QuestionScope"
        },
        "QuestionText": {
          "type": "string"
        },
        "ShowAsList": {
          "default": false,
          "type": "boolean"
        },
        "ShowAsListThreshold": {
          "type": "integer"
        },
        "Type": {
          "const": "SingleQuestion"
        },
        "ValidationConditions": {
          "$ref": "#/definitions/ValidationConditions"
        },
        "VariableLabel": {
          "$ref": "#/definitions/VariableLabel"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "SpecialValue": {
      "additionalProperties": false,
      "properties": {
        "AttachmentName": {
          "type": "string"
        },
        "Code": {
          "type": "integer"
        },
        "Text": {
          "type": "string"
        }
      },
      "required": [],
      "type": "object"
    },
    "SpecialValues": {
      "items": {
        "$ref": "#/definitions/SpecialValue"
      },
      "type": "array"
    },
    "StaticText": {
      "additionalProperties": false,
      "properties": {
        "AttachmentName": {
          "type": "string"
        },
        "ConditionExpression": {
          "type": "string"
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Text": {
          "type": "string"
        },
        "Type": {
          "const": "StaticText"
        },
        "ValidationConditions": {
          "$ref": "#/definitions/ValidationConditions"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "TextListQuestion": {
      "additionalProperties": false,
      "properties": {
        "ConditionExpression": {
          "type": "string"
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "HideInstructions": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Instructions": {
          "type": "string"
        },
        "MaxItemsCount": {
          "minimum": 1,
          "type": "integer"
        },
        "QuestionScope": {
          "$ref": "#/definitions/QuestionScope"
        },
        "QuestionText": {
          "type": "string"
        },
        "Type": {
          "const": "TextListQuestion"
        },
        "ValidationConditions": {
          "$ref": "#/definitions/ValidationConditions"
        },
        "VariableLabel": {
          "$ref": "#/definitions/VariableLabel"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "TextQuestion": {
      "additionalProperties": false,
      "properties": {
        "ConditionExpression": {
          "type": "string"
        },
        "HideIfDisabled": {
          "default": false,
          "type": "boolean"
        },
        "HideInstructions": {
          "default": false,
          "type": "boolean"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Instructions": {
          "type": "string"
        },
        "Mask": {
          "type": "string"
        },
        "QuestionScope": {
          "$ref": "#/definitions/QuestionScope"
        },
        "QuestionText": {
          "type": "string"
        },
        "Type": {
          "const": "TextQuestion"
        },
        "ValidationConditions": {
          "$ref": "#/definitions/ValidationConditions"
        },
        "VariableLabel": {
          "$ref": "#/definitions/VariableLabel"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        }
      },
      "required": [
        "Type"
      ],
      "type": "object"
    },
    "Translation": {
      "additionalProperties": false,
      "properties": {
        "FileName": {
          "type": "string"
        },
        "Id": {
          "$ref": "#/definitions/GUID"
        },
        "Name": {
          "maxLength": 32,
          "type": "string"
        }
      },
      "required": [
        "Name",
        "FileName"
      ],
      "type": "object"
    },
    "Translations": {
      "additionalProperties": false,
      "properties": {
        "DefaultTranslation": {
          "$ref": "#/definitions/GUID"
        },
        "Items": {
          "items": {
            "$ref": "#/definitions/Translation"
          },
          "type": "array"
        },
        "OriginalDisplayName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ValidationCondition": {
      "additionalProperties": false,
      "properties": {
        "Expression": {
          "type": "string"
        },
        "Message": {
          "type": "string"
        },
        "Severity": {
          "default": "Error",
          "oneOf": [
            {
              "const": "Error",
              "description": "Error"
            },
            {
              "const": "Warning",
              "description": "Warning"
            }
          ],
          "type": "string"
        }
      },
      "required": [
        "Expression"
      ],
      "type": "object"
    },
    "ValidationConditions": {
      "items": {
        "$ref": "#/definitions/ValidationCondition"
      },
      "maxItems": 10,
      "type": "array"
    },
    "Variable": {
      "additionalOptions": false,
      "properties": {
        "DoNotExport": {
          "default": false,
          "type": "boolean"
        },
        "Expression": {
          "type": "string"
        },
        "Label": {
          "type": "string"
        },
        "VariableName": {
          "$ref": "#/definitions/VariableName"
        },
        "VariableType": {
          "default": "Boolean",
          "oneOf": [
            {
              "const": "LongInteger",
              "description": "Long Integer"
            },
            {
              "const": "Double",
              "description": "Double"
            },
            {
              "const": "Boolean",
              "description": "Boolean"
            },
            {
              "const": "DateTime",
              "description": "Date/Time"
            },
            {
              "const": "String",
              "description": "String"
            }
          ],
          "type": "string"
        }
      },
      "required": [
        "VariableName",
        "Expression"
      ],
      "type": "object"
    },
    "VariableLabel": {
      "maxLength": 80,
      "type": "string"
    },
    "VariableName": {
      "maxLength": 32,
      "type": "string"
    }
  },
  "description": "Survey Solutions questionnaire document",
  "properties": {
    "Attachments": {
      "items": {
        "$ref": "#/definitions/Attachment"
      },
      "type": "array"
    },
    "Categories": {
      "items": {
        "$ref": "#/definitions/Categories"
      },
      "type": "array"
    },
    "Children": {
      "items": {
        "$ref": "#/definitions/Group"
      },
      "minItems": 1,
      "type": "array"
    },
    "CoverPage": {
      "$ref": "#/definitions/CoverPage"
    },
    "DefaultTranslation": {
      "maxLength": 32,
      "type": "string"
    },
    "Description": {
      "type": "string"
    },
    "HideIfDisabled": {
      "default": false,
      "type": "boolean"
    },
    "Id": {
      "$ref": "#/definitions/GUID"
    },
    "LookupTables": {
      "items": {
        "$ref": "#/definitions/LookupTable"
      },
      "type": "array"
    },
    "Macros": {
      "items": {
        "$ref": "#/definitions/Macro"
      },
      "type": "array"
    },
    "Metadata": {
      "$ref": "#/definitions/QuestionnaireMetaInfo"
    },
    "Title": {
      "type": "string"
    },
    "Translations": {
      "$ref": "#/definitions/Translations"
    },
    "VariableName": {
      "$ref": "#/definitions/VariableName"
    }
  },
  "required": [
    "Id",
    "Title"
  ],
  "title": "Questionnaire Document",
  "type": "object"
}