{
    "transactionId": "T4331c8274241",
    "code": "00000",
    "message": "SUCCESS",
    "data": {
        "campaignSchemas": [
            {
                "schemaVersion": 1,
                "apiVersion": 1,
                "campaign": [
                    {
                        "key": "txId",
                        "description": "TransactionId for this operation",
                        "type": "hidden",
                        "mandatory": false
                    },
                    {
                        "key": "basicInfo",
                        "title": "BASIC INFO",
                        "type": "object",
                        "mandatory": true,
                        "nestedObjects": [
                            {
                                "key": "name",
                                "title": "Campaign name",
                                "description": "Enter campaign name",
                                "type": "string",
                                "mandatory": true
                            },
                            {
                                "key": "description",
                                "title": "Description",
                                "description": "Enter campaign description",
                                "type": "string",
                                "mandatory": false
                            }
                        ]
                    },
                    {
                        "key": "schedule",
                        "title": "SCHEDULE",
                        "type": "object",
                        "mandatory": true,
                        "nestedObjects": [
                            {
                                "key": "startDate",
                                "title": "Start Date",
                                "type": "string",
                                "pattern": "yyyy-mm-dd",
                                "mandatory": true
                            },
                            {
                                "key": "endDate",
                                "title": "End Date",
                                "type": "string",
                                "pattern": "yyyy-mm-dd",
                                "mandatory": false
                            },
                            {
                                "key": "timezone",
                                "title": "Time Zone",
                                "type": "number",
                                "mandatory": true,
                                "multiple": false,
                                "enum": [
                                    {
                                        "text": "(UTC-12:00) International Date Line West",
                                        "value": -720
                                    },
                                    {
                                        "text": "(UTC-11:00) Midway Island, Samoa",
                                        "value": -660
                                    },
                                    {
                                        "text": "(UTC-10:00) Hawaii",
                                        "value": -600
                                    },
                                    {
                                        "text": "(UTC-09:00) Alaska",
                                        "value": -540
                                    },
                                    {
                                        "text": "(UTC-08:00) Pacific Time (US and Canada); Tijuana, Baja California",
                                        "value": -480
                                    },
                                    {
                                        "text": "(UTC-07:00) Mountain Time (US and Canada), Chihuahua, La Paz, Mazatlan, Arizona, Chihuahua, La Paz, Mazatlan - New",
                                        "value": -420
                                    },
                                    {
                                        "text": "(UTC-06:00) Central Time (US and Canada), Saskatchewan, Guadalajara, Mexico City, Monterrey, Central America, Guadalajara, Mexico City, Monterrey - New",
                                        "value": -360
                                    },
                                    {
                                        "text": "(UTC-05:00) Eastern Time (US and Canada), Indiana (East), Bogota, Lima, Quito",
                                        "value": -300
                                    },
                                    {
                                        "text": "(UTC-04:30) Caracas",
                                        "value": -270
                                    },
                                    {
                                        "text": "(UTC-04:00) Atlantic Time (Canada), Georgetown, La Paz, San Juan, Santiago, Manaus, Asuncion",
                                        "value": -240
                                    },
                                    {
                                        "text": "(UTC-03:30) Newfoundland",
                                        "value": -210
                                    },
                                    {
                                        "text": "(UTC-03:00) Brasilia, Georgetown, Greenland, Buenos Aires, Montevideo",
                                        "value": -180
                                    },
                                    {
                                        "text": "(UTC-02:00) Mid-Atlantic",
                                        "value": -120
                                    },
                                    {
                                        "text": "(UTC-01:00) Azores, Cape Verde Islands",
                                        "value": -60
                                    },
                                    {
                                        "text": "(UTC) Greenwich Mean Time: Dublin, Edinburgh, Lisbon, London, Monrovia, Reykjavik, Casablanca",
                                        "value": 0
                                    },
                                    {
                                        "text": "(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague, Sarajevo, Skopje, Warsaw, Zagreb, Brussels, Copenhagen, Madrid, Paris, Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna, West Central Africa ",
                                        "value": 60
                                    },
                                    {
                                        "text": "(UTC+02:00) Minsk, Cairo, Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius, Athens, Bucharest, Istanbul, Jerusalem, Harare, Pretoria, Beirut, Amman, Windhoek",
                                        "value": 120
                                    },
                                    {
                                        "text": "(UTC+03:00) Moscow, St. Petersburg, Volgograd, Kuwait, Riyadh, Nairobi, Baghdad, Tbilisi",
                                        "value": 180
                                    },
                                    {
                                        "text": "(UTC+03:30) Tehran",
                                        "value": 210
                                    },
                                    {
                                        "text": "(UTC+04:00) Abu Dhabi, Muscat, Baku, Tbilisi, Yerevan, Port Louis",
                                        "value": 240
                                    },
                                    {
                                        "text": "(UTC+04:30) Kabul",
                                        "value": 270
                                    },
                                    {
                                        "text": "(UTC+05:00) Ekaterinburg, Tashkent, Islamabad, Karachi",
                                        "value": 300
                                    },
                                    {
                                        "text": "(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi",
                                        "value": 330
                                    },
                                    {
                                        "text": "(UTC+05:45) Kathmandu",
                                        "value": 345
                                    },
                                    {
                                        "text": "(UTC+06:00) Astana, Dhaka, Sri Jayawardenepura, Almaty, Novosibirsk",
                                        "value": 360
                                    },
                                    {
                                        "text": "(UTC+06:30) Yangon (Rangoon)",
                                        "value": 390
                                    },
                                    {
                                        "text": "(UTC+07:00) Bangkok, Hanoi, Jakarta, Krasnoyarsk",
                                        "value": 420
                                    },
                                    {
                                        "text": "(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi, Kuala Lumpur, Singapore, Taipei, Perth, Irkutsk, Ulaanbaatar",
                                        "value": 480
                                    },
                                    {
                                        "text": "(UTC+09:00) Seoul, Osaka, Sapporo, Tokyo, Yakutsk",
                                        "value": 540
                                    },
                                    {
                                        "text": "(UTC+09:30) Darwin, Adelaide",
                                        "value": 570
                                    },
                                    {
                                        "text": "(UTC+10:00) Canberra, Melbourne, Sydney, Brisbane, Hobart, Vladivostok, Guam, Port Moresby",
                                        "value": 600
                                    },
                                    {
                                        "text": "(UTC+11:00) Magadan, Solomon Islands, New Caledonia",
                                        "value": 660
                                    },
                                    {
                                        "text": "(UTC+12:00) Fiji, Kamchatka, Marshall Is., Auckland, Wellington, Petropavlovsk-Kamchatsky",
                                        "value": 720
                                    },
                                    {
                                        "text": "(UTC+13:00) Nuku alofa",
                                        "value": 780
                                    }
                                ],
                                "defaultValue": 0
                            },
                            {
                                "key": "fota",
                                "title": "Firmware Installation Period",
                                "description": "Firmware will be installed during this period on device timezone. Actual installation can go beyond the end time specified. (24 hour format)",
                                "type": "object",
                                "mandatory": true,
                                "nestedObjects": [
                                    {
                                        "key": "from",
                                        "title": "From",
                                        "type": "number",
                                        "mandatory": true,
                                        "defaultValue": 2
                                    },
                                    {
                                        "key": "to",
                                        "title": "To",
                                        "description": "Minimum of 3 hours from the starting time",
                                        "type": "number",
                                        "mandatory": true,
                                        "defaultValue": 5
                                    }
                                ]
                            },
                            {
                                "key": "downloadTime",
                                "title": "Firmware download period",
                                "description": "Set a time to download firmware. By default it can be downloaded anytime.",
                                "type": "number",
                                "mandatory": true,
                                "multiple": false,
                                "enum": [
                                    {
                                        "text": "AnyTime",
                                        "value": 1
                                    },
                                    {
                                        "text": "Use the Same timeframes as firmware installation period",
                                        "value": 2
                                    },
                                    {
                                        "text": "Custom period",
                                        "value": 3
                                    }
                                ],
                                "defaultValue": 1
                            },
                            {
                                "key": "customDownload",
                                "title": "Custom Firmware Download Period",
                                "type": "object",
                                "mandatory": false,
                                "required": {
                                    "downloadTime": 3
                                },
                                "nestedObjects": [
                                    {
                                        "key": "fromDownload",
                                        "title": "From",
                                        "type": "number",
                                        "mandatory": false,
                                        "defaultValue": 2,
                                        "required": {
                                            "downloadTime": 3
                                        }
                                    },
                                    {
                                        "key": "toDownload",
                                        "title": "To",
                                        "description": "Minimum of 3 hours from the starting time",
                                        "type": "number",
                                        "mandatory": false,
                                        "defaultValue": 5,
                                        "required": {
                                            "downloadTime": 3
                                        }
                                    }
                                ]
                            },
                            {
                                "key": "postponeInstall",
                                "title": "Postpone installation",
                                "description": "Set and customize postpone policy for end users. If you don’t select this option, installation will be forced.",
                                "type": "object",
                                "mandatory": false,
                                "nestedObjects": [
                                    {
                                        "key": "postponeInstallation",
                                        "title": "Times allowed to postpone",
                                        "description": "User can postpone installation for maximum of 3 times.",
                                        "type": "number",
                                        "mandatory": false,
                                        "enum": [
                                            {
                                                "text": "Never",
                                                "value": 0
                                            },
                                            {
                                                "text": "1 time",
                                                "value": 1
                                            },
                                            {
                                                "text": "2 times",
                                                "value": 2
                                            },
                                            {
                                                "text": "3 times",
                                                "value": 3
                                            }
                                        ],
                                        "defaultValue": 0
                                    },
                                    {
                                        "key": "postponeDuration",
                                        "title": "Postpone duration",
                                        "description": "Set how long before a user will be reminded to install the firmware per time postponed. (range: 1-24) (For example, 2 times Postpone installation with 8 hour Postpone duration means users receive 1st reminder after 8 hours and 2nd reminder after 16 hours.)",
                                        "type": "number",
                                        "mandatory": false,
                                        "defaultValue": 8,
                                        "required": [
                                            "postponeInstallation"
                                        ]
                                    },
                                    {
                                        "key": "autoInstallTime",
                                        "title": "Auto-install timer",
                                        "description": "A user can set a timer to postpone firmware installation (minutes). If a user doesn’t react to the message with the timer, then installation begins automatically. (range: 1-43200) In minutes.",
                                        "type": "number",
                                        "mandatory": false,
                                        "defaultValue": 5,
                                        "required": [
                                            "postponeInstallation"
                                        ]
                                    }
                                ]
                            },
                            {
                                "key": "gradualRolloutOn",
                                "title": "Set gradual campaign rollout",
                                "description": "Select the percentage of assigned devices you want to download the new firmware on per day.",
                                "type": "bool",
                                "mandatory": false,
                                "defaultValue": false
                            },
                            {
                                "key": "gradualRolloutNumber",
                                "title": "Percent of total devices for starting the firmware download per day (1-50%).",
                                "type": "number",
                                "mandatory": false,
                                "defaultValue": 10,
                                "required": {
                                    "gradualRolloutOn": true
                                }
                            }
                        ]
                    },
                    {
                        "key": "networkAndSpeed",
                        "title": "NETWORK AND SPEED",
                        "type": "object",
                        "mandatory": true,
                        "nestedObjects": [
                            {
                                "key": "downloadNetwork",
                                "title": "Download Network",
                                "type": "string",
                                "mandatory": true,
                                "multiple": false,
                                "enum": [
                                    {
                                        "text": "Wi-Fi or Ethernet",
                                        "value": "WIFIONLY"
                                    },
                                    {
                                        "text": "Any (Wi-Fi, Mobile or Ethernet)",
                                        "value": "ANY"
                                    }
                                ],
                                "defaultValue": "WIFIONLY",
                                "nestedObjects": [
                                    {
                                        "key": "downloadAvailableDuringRoamingNetwork",
                                        "title": "Download allowed while roaming",
                                        "type": "bool",
                                        "mandatory": false,
                                        "defaultValue": false,
                                        "required": {
                                            "downloadNetwork": "ANY"
                                        }
                                    },
                                    {
                                        "key": "switchToWifi",
                                        "title": "Switch to Wi-Fi when firmware size is over",
                                        "type": "number",
                                        "mandatory": false,
                                        "defaultValue": 6000,
                                        "required": {
                                            "downloadNetwork": "ANY"
                                        }
                                    }
                                ]
                            },
                            {
                                "key": "downloadSpeed",
                                "title": "Download speed up to",
                                "description": "This setting will control the download speed (MB in 10 mins)",
                                "type": "number",
                                "mandatory": false,
                                "defaultValue": 0
                            },
                            {
                                "key": "ssidThrottling",
                                "title": "Set SSID download speed",
                                "description": "This setting will control the download speed per SSID. SSID download speed is a higher priority than non-SSID download speed (MB in 10 mins)",
                                "type": "objectArray",
                                "mandatory": false,
                                "nestedObjects": [
                                    {
                                        "key": "ssidForThrottling",
                                        "title": "SSID",
                                        "description": "This field can contain a maximum of 50 characters",
                                        "type": "string",
                                        "mandatory": false
                                    },
                                    {
                                        "key": "maxSpeedThrottling",
                                        "title": "Max Download Speed",
                                        "description": "The value should be in numeric or decimal form (MB in 10 mins).",
                                        "type": "number",
                                        "mandatory": false
                                    }
                                ]
                            },
                            {
                                "key": "ssidRestriction",
                                "title": "Set SSID restrictions",
                                "description": "Selecting this option will allow/block firmware download over only allowlisted SSID(s). This option will not be enabled if campaign is saved without any SSID(s) added.",
                                "type": "object",
                                "mandatory": false,
                                "nestedObjects": [
                                    {
                                        "key": "allowOrBlock",
                                        "title": "Select option to set allowlist or blocklist",
                                        "type": "number",
                                        "mandatory": false,
                                        "multiple": false,
                                        "defaultValue": 0,
                                        "enum": [
                                            {
                                                "text": "Not used",
                                                "value": 0
                                            },
                                            {
                                                "text": "Allow list",
                                                "value": 1
                                            },
                                            {
                                                "text": "Block list",
                                                "value": 2
                                            }
                                        ]
                                    },
                                    {
                                        "key": "ssidsForRestriction",
                                        "title": "Add Wi-Fi SSID",
                                        "type": "objectArray",
                                        "mandatory": false,
                                        "nestedObjects": [
                                            {
                                                "key": "ssidForRestriction",
                                                "title": "SSID",
                                                "description": "This field can contain a maximum of 50 characters.",
                                                "type": "string",
                                                "mandatory": false
                                            },
                                            {
                                                "key": "descriptionRestriction",
                                                "title": "Description",
                                                "description": "This field can contain a maximum of 500 characters.",
                                                "type": "string",
                                                "mandatory": false
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "key": "deviceCondition",
                        "title": "DEVICE CONDITION",
                        "type": "object",
                        "mandatory": false,
                        "nestedObjects": [
                            {
                                "key": "batteryLevel",
                                "title": "Battery Level for installation",
                                "description": "Start installing when device battery level is above the selected value",
                                "type": "number",
                                "mandatory": false,
                                "enum": [
                                    {
                                        "text": "Above 20%",
                                        "value": 20
                                    },
                                    {
                                        "text": "Above 25%",
                                        "value": 25
                                    },
                                    {
                                        "text": "Above 30%",
                                        "value": 30
                                    },
                                    {
                                        "text": "Above 35%",
                                        "value": 35
                                    },
                                    {
                                        "text": "Above 40%",
                                        "value": 40
                                    },
                                    {
                                        "text": "Above 45%",
                                        "value": 45
                                    },
                                    {
                                        "text": "Above 50%",
                                        "value": 50
                                    },
                                    {
                                        "text": "Above 55%",
                                        "value": 55
                                    },
                                    {
                                        "text": "Above 60%",
                                        "value": 60
                                    },
                                    {
                                        "text": "Above 65%",
                                        "value": 65
                                    },
                                    {
                                        "text": "Above 70%",
                                        "value": 70
                                    },
                                    {
                                        "text": "Above 75%",
                                        "value": 75
                                    },
                                    {
                                        "text": "Above 80%",
                                        "value": 80
                                    }
                                ],
                                "defaultValue": 20
                            },
                            {
                                "key": "isConnectedToCharging",
                                "title": "Allow installation only when connected to charging dock",
                                "type": "bool",
                                "mandatory": false,
                                "defaultValue": false
                            }
                        ]
                    },
                    {
                        "key": "factoryReset",
                        "title": "FACTORY RESET",
                        "type": "object",
                        "mandatory": false,
                        "nestedObjects": [
                            {
                                "key": "allowFactoryReset",
                                "title": "Allow the factory reset option",
                                "description": "If you enable this setting, users can factory reset the device themselves.",
                                "type": "bool",
                                "mandatory": false,
                                "defaultValue": true
                            }
                        ]
                    },
                    {
                        "key": "contact",
                        "title": "SUPPORT CONTACT DETAILS",
                        "type": "object",
                        "mandatory": true,
                        "nestedObjects": [
                            {
                                "key": "phoneNumber",
                                "title": "Phone number",
                                "description": "Enter contact phone number",
                                "type": "string",
                                "mandatory": true
                            },
                            {
                                "key": "emailAddress",
                                "title": "E-mail address",
                                "description": "Enter contact e-mail address",
                                "type": "string",
                                "mandatory": true
                            }
                        ]
                    }
                ]
            }
        ]
    }
}