object updateChildDomain
{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "example": "myupdateddomain.com",
      "description": "Value for the sender domain that will replace the existing domain"
    }
  }
}
object updateContact
{
  "type": "object",
  "properties": {
    "ext_id": {
      "type": "string",
      "example": "updateExternalId",
      "description": "Pass your own Id to update ext_id of a contact."
    },
    "listIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "example": 65,
        "description": "Id of the list to add the contact to"
      },
      "description": "Ids of the lists to add the contact to"
    },
    "attributes": {
      "type": "object",
      "example": {
        "EMAIL": "newemail@domain.com",
        "FNAME": "Ellie",
        "LNAME": "Roger"
      },
      "description": "Pass the set of attributes to be updated. **These attributes must be present in your account**. To update existing email address of a contact with the new one please pass EMAIL in attributes. For example, **{ \"EMAIL\":\"newemail@domain.com\", \"FNAME\":\"Ellie\", \"LNAME\":\"Roger\"}**.\nThe attribute's parameter should be passed in capital letter while updating a contact. Values that don't match the attribute type (e.g. text or string in a date attribute) will be ignored. Keep in mind transactional attributes can be updated the same way as normal attributes. Mobile Number in **SMS** field should be passed with proper country code. For example: **{\"SMS\":\"+91xxxxxxxxxx\"} or {\"SMS\":\"0091xxxxxxxxxx\"}**\n",
      "additionalProperties": {}
    },
    "unlinkListIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int64",
        "example": 36,
        "description": "Id of the list to remove the contact from"
      },
      "description": "Ids of the lists to remove the contact from"
    },
    "smsBlacklisted": {
      "type": "boolean",
      "example": true,
      "description": "Set/unset this field to blacklist/allow the contact for SMS (smsBlacklisted = true)"
    },
    "emailBlacklisted": {
      "type": "boolean",
      "example": false,
      "description": "Set/unset this field to blacklist/allow the contact for emails (emailBlacklisted = true)"
    },
    "smtpBlacklistSender": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "email"
      },
      "description": "transactional email forbidden sender for contact. Use only for email Contact"
    }
  }
}
object updateEmailCampaign
{
  "type": "object",
  "properties": {
    "tag": {
      "type": "string",
      "example": "Newsletter",
      "description": "Tag of the campaign"
    },
    "name": {
      "type": "string",
      "example": "Newsletter - May 2017",
      "description": "Name of the campaign"
    },
    "footer": {
      "type": "string",
      "example": "[DEFAULT_FOOTER]",
      "description": "Footer of the email campaign"
    },
    "header": {
      "type": "string",
      "example": "[DEFAULT_HEADER]",
      "description": "Header of the email campaign"
    },
    "params": {
      "type": "object",
      "example": {
        "FNAME": "Joe",
        "LNAME": "Doe"
      },
      "description": "Pass the set of attributes to customize the type classic campaign. For example: **{\"FNAME\":\"Joe\", \"LNAME\":\"Doe\"}**. Only available if **type** is **classic**. It's considered only if campaign is in _New Template Language format_. The New Template Language is dependent on the values of **subject, htmlContent/htmlUrl, sender.name & toField**\n",
      "additionalProperties": {}
    },
    "sender": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "example": 3,
          "description": "Select the sender for the campaign on the basis of sender id. **In order to select a sender with specific pool of IP’s, dedicated ip users shall pass id (instead of email)**.\n"
        },
        "name": {
          "type": "string",
          "example": "Mary from MyShop",
          "description": "Sender Name from which the campaign emails are sent"
        },
        "email": {
          "type": "string",
          "format": "email",
          "example": "newsletter@myshop.com",
          "description": "Sender email from which the campaign emails are sent"
        }
      },
      "description": "Sender details including id or email and name (optional). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example:\n**{\"name\":\"xyz\", \"email\":\"example@abc.com\"}**\n**{\"name\":\"xyz\", \"id\":123}**\n"
    },
    "htmlUrl": {
      "type": "string",
      "format": "url",
      "example": "https://html.domain.com",
      "description": "Url which contents the body of the email message. **REQUIRED if htmlContent is empty**\n"
    },
    "replyTo": {
      "type": "string",
      "format": "email",
      "example": "support@myshop.com",
      "description": "Email on which campaign recipients will be able to reply to"
    },
    "subject": {
      "type": "string",
      "example": "Discover the New Collection !",
      "description": "Subject of the campaign"
    },
    "toField": {
      "type": "string",
      "example": "{FNAME} {LNAME}",
      "description": "To personalize the **To** Field. If you want to include the first\nname and last name of your recipient, add **{FNAME} {LNAME}**. These contact\nattributes must already exist in your Brevo account. If input parameter\n**params** used please use **{{contact.FNAME}} {{contact.LNAME}}** for personalization\n"
    },
    "subjectA": {
      "type": "string",
      "example": "Discover the New Collection!",
      "description": "Subject A of the campaign. **Mandatory if abTesting = true**.\nsubjectA & subjectB should have unique value\n"
    },
    "subjectB": {
      "type": "string",
      "example": "Want to discover the New Collection?",
      "description": "Subject B of the campaign. **Mandatory if abTesting = true**.\nsubjectA & subjectB should have unique value\n"
    },
    "abTesting": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Status of A/B Test. abTesting = false means it is disabled & abTesting = true means it is enabled. **subjectA, subjectB, splitRule, winnerCriteria & winnerDelay** will be considered when abTesting is set to true.\nsubjectA & subjectB are mandatory together & subject if passed is ignored. **Can be set to true only if sendAtBestTime is false**.\nYou will be able to set up two subject lines for your campaign and send them to a random sample of your total recipients. Half of the test group will receive version A, and the other half will receive version B\n"
    },
    "recurring": {
      "type": "boolean",
      "default": false,
      "example": false,
      "description": "**FOR TRIGGER ONLY !** Type of trigger campaign.recurring = false means contact can receive the same Trigger campaign only once, & recurring = true means contact can receive the same Trigger campaign several times\n"
    },
    "splitRule": {
      "type": "integer",
      "format": "int64",
      "example": 50,
      "maximum": 50,
      "minimum": 1,
      "description": "Add the size of your test groups. **Mandatory if abTesting = true & 'recipients' is passed**. We'll send version A and B to a random sample of recipients, and then the winning version to everyone else\n"
    },
    "recipients": {
      "type": "object",
      "properties": {
        "listIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 32
          },
          "description": "Lists Ids to send the campaign to. **Campaign should only be updated with listIds if listIds were used to create it. REQUIRED if already not present in campaign and scheduledAt is not empty**\n"
        },
        "segmentIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 23
          },
          "description": "**Mandatory if listIds are not used. Campaign should only be updated with segmentIds if segmentIds were used to create it.** Segment ids to send the campaign to.\n"
        },
        "exclusionListIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 8
          },
          "description": "List ids which have to be excluded from a campaign"
        }
      },
      "description": "Segment ids and List ids to include/exclude from campaign"
    },
    "htmlContent": {
      "type": "string",
      "example": "<!DOCTYPE html> <html> <body> <h1>Confirm you email</h1> <p>Please confirm your email address by clicking on the link below</p> </body> </html>",
      "description": "Body of the message (HTML version). If the campaign is designed using Drag & Drop editor via HTML content, then the design page will not have Drag & Drop editor access for that campaign. **REQUIRED if htmlUrl is empty**\n"
    },
    "previewText": {
      "type": "string",
      "example": "Thanks for your order!",
      "description": "Preview text or preheader of the email campaign"
    },
    "scheduledAt": {
      "type": "string",
      "example": "2017-06-01T10:30:00.000Z",
      "description": "UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ).\n**Prefer to pass your timezone in date-time format for accurate result.**\nIf sendAtBestTime is set to true, your campaign will be sent according\nto the date passed (ignoring the time part).\n"
    },
    "utmCampaign": {
      "type": "string",
      "example": "NL_05_2017",
      "description": "Customize the utm_campaign value. If this field is empty, the campaign name will be used. Only alphanumeric characters and spaces are allowed"
    },
    "winnerDelay": {
      "type": "integer",
      "format": "int64",
      "example": 50,
      "maximum": 168,
      "minimum": 1,
      "description": "Choose the duration of the test in hours. Maximum is 7 days, pass 24*7 = 168 hours. The winning version will be sent at the end of the test. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerDelay` is ignored if passed\n"
    },
    "increaseRate": {
      "type": "integer",
      "format": "int64",
      "example": 70,
      "maximum": 100,
      "minimum": 0,
      "description": "Set a percentage increase rate for warming up your ip. We recommend you set the increase rate to 30% per day. If you want to send the same number of emails every day, set the daily increase value to 0%.\n"
    },
    "initialQuota": {
      "type": "integer",
      "format": "int64",
      "example": 3000,
      "description": "Set an initial quota greater than 1 for warming up your ip. We recommend you set a value of 3000.\n"
    },
    "mirrorActive": {
      "type": "boolean",
      "example": true,
      "description": "Status of mirror links in campaign. mirrorActive = false means mirror links are deactivated, & mirrorActive = true means mirror links are activated, in the campaign"
    },
    "updateFormId": {
      "type": "string",
      "example": "6313436b9ad40e23b371d095",
      "description": "**Mandatory if templateId is used containing the {{ update_profile }} tag**. Enter an update profile form id. The form id is a 24 digit alphanumeric id that can be found in the URL when editing the form.\n"
    },
    "attachmentUrl": {
      "type": "string",
      "format": "url",
      "example": "https://attachment.domain.com",
      "description": "Absolute url of the attachment (no local file).\nExtension allowed:\n#### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps'\n"
    },
    "ipWarmupEnable": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "**Available for dedicated ip clients**. Set this to true if you wish to warm up your ip.\n"
    },
    "sendAtBestTime": {
      "type": "boolean",
      "example": true,
      "description": "Set this to true if you want to send your campaign at best time.\nNote:- **if true, warmup ip will be disabled.**\n"
    },
    "winnerCriteria": {
      "enum": [
        "open",
        "click"
      ],
      "type": "string",
      "example": "open",
      "description": "Choose the metrics that will determinate the winning version. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerCriteria` is ignored if passed\n"
    },
    "unsubscriptionPageId": {
      "type": "string",
      "example": "62cbb7fabbe85021021aac52",
      "description": "Enter an unsubscription page id. The page id is a 24 digit alphanumeric id that can be found in the URL when editing the page.\n"
    },
    "inlineImageActivation": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Status of inline image. inlineImageActivation = false means image can’t be embedded, & inlineImageActivation = true means image can be embedded, in the email.\nYou cannot send a campaign of more than **4MB** with images embedded in the email. Campaigns with the images embedded in the email _must be sent to less than 5000 contacts_.\n"
    }
  }
}
object updateExternalFeed
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "URL of the feed"
    },
    "name": {
      "type": "string",
      "example": "New feed",
      "description": "Name of the feed"
    },
    "cache": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Toggle caching of feed url response"
    },
    "token": {
      "type": "string",
      "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
      "description": "Token for authType `token`"
    },
    "headers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "userId",
            "description": "Name of the header"
          },
          "value": {
            "type": "string",
            "example": "user12345",
            "description": "Value of the header"
          }
        }
      },
      "example": [
        {
          "name": "header1",
          "value": "value1"
        },
        {
          "name": "header2",
          "value": "value2"
        }
      ],
      "description": "Custom headers for the feed"
    },
    "authType": {
      "enum": [
        "basic",
        "token",
        "noAuth"
      ],
      "type": "string",
      "description": "Auth type of the feed:\n * `basic`\n * `token`\n * `noAuth`\n"
    },
    "password": {
      "type": "string",
      "example": "password",
      "description": "Password for authType `basic`"
    },
    "username": {
      "type": "string",
      "example": "user",
      "description": "Username for authType `basic`"
    },
    "maxRetries": {
      "type": "integer",
      "default": 5,
      "example": 5,
      "maximum": 5,
      "minimum": 0,
      "description": "Maximum number of retries on the feed url"
    }
  }
}
object updateList
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Magento Customer - ES",
      "description": "Name of the list. Either of the two parameters (name, folderId) can be updated at a time."
    },
    "folderId": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "Id of the folder in which the list is to be moved. Either of the two parameters (name, folderId) can be updated at a time."
    }
  }
}
object updateSender
{
  "type": "object",
  "properties": {
    "ips": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "domain",
          "ip"
        ],
        "properties": {
          "ip": {
            "type": "string",
            "example": "123.98.689.7",
            "description": "Dedicated IP available in your account"
          },
          "domain": {
            "type": "string",
            "example": "mycompany.com",
            "description": "Domain of the IP"
          },
          "weight": {
            "type": "integer",
            "format": "int64",
            "example": 50,
            "maximum": 100,
            "minimum": 1,
            "description": "Weight to apply to the IP. Sum of all IP weights must be 100. Should be passed for either ALL or NONE of the IPs. If it's not passed, the sending will be equally balanced on all IPs."
          }
        }
      },
      "description": "**Only in case of dedicated IP**. IPs to associate to the sender. If passed, will replace all the existing IPs.\n"
    },
    "name": {
      "type": "string",
      "example": "Newsletter",
      "description": "From Name to update the sender"
    },
    "email": {
      "type": "string",
      "format": "email",
      "example": "newsletter@mycompany.com",
      "description": "From Email to update the sender"
    }
  }
}
object updateSmsCampaign
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Spring Promo Code",
      "description": "Name of the campaign"
    },
    "sender": {
      "type": "string",
      "example": "MyShop",
      "maxLength": 15,
      "description": "Name of the sender. **The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters**\n"
    },
    "content": {
      "type": "string",
      "example": "Get a discount by visiting our NY store and saying : Happy Spring!",
      "description": "Content of the message. The **maximum characters used per SMS is 160**, if used more than that, it will be counted as more than one SMS\n"
    },
    "recipients": {
      "type": "object",
      "required": [
        "listIds"
      ],
      "properties": {
        "listIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 54,
            "description": "List Id to send the campaign to"
          },
          "description": "Lists Ids to send the campaign to. **REQUIRED if scheduledAt is not empty**\n"
        },
        "exclusionListIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 15,
            "description": "List Id to exclude from the campaign"
          },
          "description": "List ids which have to be excluded from a campaign"
        }
      }
    },
    "scheduledAt": {
      "type": "string",
      "example": "2017-05-05T10:30:00.000Z",
      "description": "UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**\n"
    },
    "unicodeEnabled": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Format of the message. It indicates whether the content should be treated as unicode or not.\n"
    },
    "organisationPrefix": {
      "type": "string",
      "example": "MyCompany",
      "description": "A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. **Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.**"
    },
    "unsubscribeInstruction": {
      "type": "string",
      "example": "send Stop if you want to unsubscribe.",
      "description": "Instructions to unsubscribe from future communications. Recommended by U.S. carriers. Must include **STOP** keyword. This will be added as instructions after the end of message content. **Prefer verifying maximum length of 160 characters including this instructions in message content to avoid multiple sending of same sms.**"
    }
  }
}
object updateSmtpTemplate
{
  "type": "object",
  "properties": {
    "tag": {
      "type": "string",
      "example": "OrderConfirmation",
      "description": "Tag of the template"
    },
    "sender": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64",
          "example": 3,
          "description": "Select the sender for the template on the basis of sender id.\n_In order to select a sender with specific pool of IP’s, dedicated ip users shall pass id (instead of email)_.\n"
        },
        "name": {
          "type": "string",
          "example": "Mary from MyShop",
          "description": "Name of the sender"
        },
        "email": {
          "type": "string",
          "format": "email",
          "example": "contact@myshop.com",
          "description": "Email of the sender"
        }
      },
      "description": "Sender details including id or email and name (_optional_). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example:\n**{\"name\":\"xyz\", \"email\":\"example@abc.com\"}**\n**{\"name\":\"xyz\", \"id\":123}**\n"
    },
    "htmlUrl": {
      "type": "string",
      "format": "url",
      "example": "https://html.domain.com",
      "description": "**Required if htmlContent is empty**. URL to the body of the email (HTML)\n"
    },
    "replyTo": {
      "type": "string",
      "format": "email",
      "example": "support@myshop.com",
      "description": "Email on which campaign recipients will be able to reply to"
    },
    "subject": {
      "type": "string",
      "example": "Thanks for your purchase !",
      "description": "Subject of the email"
    },
    "toField": {
      "type": "string",
      "example": "{FNAME} {LNAME}",
      "description": "To personalize the **To** Field. If you want to include the first name and last name of your recipient, add **{FNAME} {LNAME}**. These contact attributes must already exist in your Brevo account. If input parameter **params** used please use **{{contact.FNAME}} {{contact.LNAME}}** for personalization\n"
    },
    "isActive": {
      "type": "boolean",
      "example": true,
      "description": "Status of the template. isActive = false means template is inactive, isActive = true means template is active"
    },
    "htmlContent": {
      "type": "string",
      "example": "The order n°xxxxx has been confirmed. Thanks for your purchase",
      "description": "**Required if htmlUrl is empty**. If the template is designed using Drag & Drop editor via HTML content, then the design page will not have Drag & Drop editor access for that template. Body of the message (HTML must have more than 10 characters)\n"
    },
    "templateName": {
      "type": "string",
      "example": "Order Confirmation - EN",
      "description": "Name of the template"
    },
    "attachmentUrl": {
      "type": "string",
      "format": "url",
      "example": "https://attachment.domain.com",
      "description": "Absolute url of the attachment (**no local file**). Extensions allowed:\n#### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps\n"
    }
  }
}
object updateUserResponse
{
  "type": "object",
  "required": [
    "status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "example": "OK",
      "description": "Status of the API operation."
    },
    "invoice_id": {
      "type": "string",
      "items": {
        "type": "string",
        "example": "TEST-ID"
      },
      "description": "Invoice id"
    },
    "credit_notes": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "TEST-123"
      },
      "description": "Credit note"
    }
  }
}
object updateWebhook
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "url",
      "example": "http://requestb.in/173lyyx1",
      "description": "URL of the webhook"
    },
    "auth": {
      "type": "object",
      "example": {
        "type": "bearer",
        "token": "test-auth-token1234"
      },
      "description": "Authentication header to be send with the webhook requests"
    },
    "domain": {
      "type": "string",
      "example": "example.com",
      "description": "Inbound domain of webhook, used in case of event type `inbound`"
    },
    "events": {
      "type": "array",
      "items": {
        "enum": [
          "sent",
          "hardBounce",
          "softBounce",
          "blocked",
          "spam",
          "delivered",
          "request",
          "click",
          "invalid",
          "deferred",
          "opened",
          "uniqueOpened",
          "unsubscribed",
          "listAddition",
          "contactUpdated",
          "contactDeleted",
          "inboundEmailProcessed"
        ],
        "type": "string",
        "example": "hardBounce"
      },
      "description": "- Events triggering the webhook. Possible values for **Transactional** type webhook:\n#### `sent` OR `request`, `delivered`, `hardBounce`, `softBounce`, `blocked`, `spam`, `invalid`, `deferred`, `click`, `opened`, `uniqueOpened` and `unsubscribed`\n- Possible values for **Marketing** type webhook:\n#### `spam`, `opened`, `click`, `hardBounce`, `softBounce`, `unsubscribed`, `listAddition` & `delivered`\n- Possible values for **Inbound** type webhook:\n#### `inboundEmailProcessed`\n"
    },
    "batched": {
      "type": "boolean",
      "example": true,
      "description": "Batching configuration of the webhook, we send batched webhooks if its true"
    },
    "headers": {
      "type": "array",
      "items": {
        "type": "object",
        "example": {
          "key": "cf-secret",
          "value": "test-header-value"
        },
        "description": "Headers send with the requests to the webhook"
      }
    },
    "description": {
      "type": "string",
      "example": "Webhook triggered on contact hardbounce",
      "description": "Description of the webhook"
    }
  }
}
object updateWhatsAppCampaign
{
  "type": "object",
  "properties": {
    "recipients": {
      "type": "object",
      "properties": {
        "listIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 32
          },
          "description": "**Mandatory if scheduledAt is not empty**. List Ids to send the campaign to\n"
        },
        "segments": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 23
          },
          "description": "**Mandatory if listIds are not used**. Segment ids to send the campaign to.\n"
        },
        "excludedListIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64",
            "example": 8
          },
          "description": "List ids to exclude from the campaign"
        }
      },
      "description": "Segment ids and List ids to include/exclude from campaign"
    },
    "campaignName": {
      "type": "string",
      "example": "Test WhatsApp",
      "description": "Name of the campaign"
    },
    "rescheduleFor": {
      "type": "string",
      "example": "2017-06-01T10:30:00.000Z",
      "description": "Reschedule the sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of campaign. **Prefer to pass your timezone in date-time format for accurate result.For example: **2017-06-01T12:30:00+02:00**\nUse this field to update the scheduledAt of any existing draft or scheduled WhatsApp campaign.\n"
    },
    "campaignStatus": {
      "enum": [
        "scheduled",
        "suspended"
      ],
      "type": "string",
      "default": "scheduled",
      "example": "scheduled",
      "description": "Status of the campaign"
    }
  }
}
object uploadImageModel
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "example": "https://img.mailinblue.com/100000/images/rnb/original/62casdase8wewq9df1c2f27c.jpeg",
      "description": "URL of the image uploaded"
    }
  }
}
object uploadImageToGallery
{
  "type": "object",
  "required": [
    "imageUrl"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "nature.jpg",
      "description": "Name of the image."
    },
    "imageUrl": {
      "type": "string",
      "example": "https://somedomain.com/image1.jpg",
      "description": "The absolute url of the image (**no local file**). Maximum allowed size for image is **2MB**.\nAllowed extensions for images are:\n#### jpeg, jpg, png, bmp, gif.\n"
    }
  }
}
object variablesItems
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "FIRSTNAME"
    },
    "default": {
      "type": "string",
      "example": "INVALID_HEADER"
    },
    "datatype": {
      "type": "string",
      "example": "text"
    }
  }
}