<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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