def create(self, client_id, subject, name, from_name, from_email, reply_to, html_url,
    text_url, list_ids, segment_ids):
    """Creates a new campaign for a client.

    :param client_id: String representing the ID of the client for whom the
      campaign will be created.
    :param subject: String representing the subject of the campaign.
    :param name: String representing the name of the campaign.
    :param from_name: String representing the from name for the campaign.
    :param from_email: String representing the from address for the campaign.
    :param reply_to: String representing the reply-to address for the campaign.
    :param html_url: String representing the URL for the campaign HTML content.
    :param text_url: String representing the URL for the campaign text content.
      Note that text_url is optional and if None or an empty string, text
      content will be automatically generated from the HTML content.
    :param list_ids: Array of Strings representing the IDs of the lists to
      which the campaign will be sent.
    :param segment_ids: Array of Strings representing the IDs of the segments to
      which the campaign will be sent.
    :returns String representing the ID of the newly created campaign.
    """
    body = {
      "Subject": subject,
      "Name": name,
      "FromName": from_name,
      "FromEmail": from_email,
      "ReplyTo": reply_to,
      "HtmlUrl": html_url,
      "TextUrl": text_url,
      "ListIDs": list_ids,
      "SegmentIDs": segment_ids }
    response = self._post("/campaigns/%s.json" % client_id, json.dumps(body))
    self.campaign_id = json_to_py(response)
    return self.campaign_id
dataset/ETHPy150Open campaignmonitor/createsend-python/createsend/campaign.py/Campaign.create/original