Creates a new campaign for a client, from a template.

        :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 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.
        :param template_id: String representing the ID of the template on which
          the campaign will be based.
        :param template_content: Hash representing the content to be used for the
          editable areas of the template. See documentation at
          campaignmonitor.com/api/campaigns/#creating_a_campaign_from_template
          for full details of template content format.
        :returns String representing the ID of the newly created campaign.

def create_from_template(self, client_id, subject, name, from_name,
                             from_email, reply_to, list_ids, segment_ids, template_id, template_content):
        """Creates a new campaign for a client, from a template.

        :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 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.
        :param template_id: String representing the ID of the template on which
          the campaign will be based.
        :param template_content: Hash representing the content to be used for the
          editable areas of the template. See documentation at
          campaignmonitor.com/api/campaigns/#creating_a_campaign_from_template
          for full details of template content format.
        :returns String representing the ID of the newly created campaign.
        """
        body = {
            "Subject": subject,
            "Name": name,
            "FromName": from_name,
            "FromEmail": from_email,
            "ReplyTo": reply_to,
            "ListIDs": list_ids,
            "SegmentIDs": segment_ids,
            "TemplateID": template_id,
            "TemplateContent": template_content}
        response = self._post("/campaigns/%s/fromtemplate.json" %
                              client_id, json.dumps(body))
        self.campaign_id = json_to_py(response)
        return self.campaign_id