Please wait. This can take some minutes ...
                    
                 
             
         
        
            
                
                    
                    
                        Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. 
                        
                        Project price only 1 $ 
                        
                            You can buy this project and download/modify it how often you want.
                        
                        
                        
                     
                 
             
         
                    
                 
    
    
    net.minidev.ovh.api.ApiOvhTelephony Maven / Gradle / Ivy 
    
package net.minidev.ovh.api;
import com.fasterxml.jackson.core.type.TypeReference;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import net.minidev.ovh.api.complextype.OvhSafeKeyValue;
import net.minidev.ovh.api.complextype.OvhUnitAndValues;
import net.minidev.ovh.api.order.OvhPrice;
import net.minidev.ovh.api.services.OvhService;
import net.minidev.ovh.api.spare.telephony.OvhTelephonySpare;
import net.minidev.ovh.api.telephony.OvhAbbreviatedNumber;
import net.minidev.ovh.api.telephony.OvhAbbreviatedNumberGroup;
import net.minidev.ovh.api.telephony.OvhAccessoryOffer;
import net.minidev.ovh.api.telephony.OvhBannerAccess;
import net.minidev.ovh.api.telephony.OvhBillDocument;
import net.minidev.ovh.api.telephony.OvhBillingAccount;
import net.minidev.ovh.api.telephony.OvhCallDiagnostics;
import net.minidev.ovh.api.telephony.OvhCallsGenerated;
import net.minidev.ovh.api.telephony.OvhCallsGeneratorDialplanEnum;
import net.minidev.ovh.api.telephony.OvhCity;
import net.minidev.ovh.api.telephony.OvhClick2CallUser;
import net.minidev.ovh.api.telephony.OvhConference;
import net.minidev.ovh.api.telephony.OvhConferenceHistory;
import net.minidev.ovh.api.telephony.OvhConferenceInformations;
import net.minidev.ovh.api.telephony.OvhConferenceParticipants;
import net.minidev.ovh.api.telephony.OvhConferenceProperties;
import net.minidev.ovh.api.telephony.OvhConferenceWebAccess;
import net.minidev.ovh.api.telephony.OvhConferenceWebAccessTypeEnum;
import net.minidev.ovh.api.telephony.OvhConsumptionThreshold;
import net.minidev.ovh.api.telephony.OvhContactsExportFormatsEnum;
import net.minidev.ovh.api.telephony.OvhDatetimeAndIpvalue;
import net.minidev.ovh.api.telephony.OvhDdi;
import net.minidev.ovh.api.telephony.OvhDefaultSipDomains;
import net.minidev.ovh.api.telephony.OvhDetailedRateCodeInformation;
import net.minidev.ovh.api.telephony.OvhDiagnosticReport;
import net.minidev.ovh.api.telephony.OvhDiagnosticReportIndexEnum;
import net.minidev.ovh.api.telephony.OvhDirectoryHeadingPJ;
import net.minidev.ovh.api.telephony.OvhDirectoryInfo;
import net.minidev.ovh.api.telephony.OvhDirectoryWayType;
import net.minidev.ovh.api.telephony.OvhEasyHunting;
import net.minidev.ovh.api.telephony.OvhEasyHuntingScreenListsConditions;
import net.minidev.ovh.api.telephony.OvhEasyHuntingScreenListsConditionsSettings;
import net.minidev.ovh.api.telephony.OvhEasyHuntingTimeConditions;
import net.minidev.ovh.api.telephony.OvhEasyHuntingTimeConditionsSettings;
import net.minidev.ovh.api.telephony.OvhEasyMiniPabxHuntingAgent;
import net.minidev.ovh.api.telephony.OvhEasyPabx;
import net.minidev.ovh.api.telephony.OvhEasyPabxHunting;
import net.minidev.ovh.api.telephony.OvhEntrepriseNumberInformationsTask;
import net.minidev.ovh.api.telephony.OvhEventToken;
import net.minidev.ovh.api.telephony.OvhFax;
import net.minidev.ovh.api.telephony.OvhFaxCampaign;
import net.minidev.ovh.api.telephony.OvhFaxCampaignDetail;
import net.minidev.ovh.api.telephony.OvhFaxCampaignRecipientsTypeEnum;
import net.minidev.ovh.api.telephony.OvhFaxCampaignSendTypeEnum;
import net.minidev.ovh.api.telephony.OvhFaxConsumption;
import net.minidev.ovh.api.telephony.OvhFaxConsumptionWayTypeEnum;
import net.minidev.ovh.api.telephony.OvhFaxProperties;
import net.minidev.ovh.api.telephony.OvhFaxQualityEnum;
import net.minidev.ovh.api.telephony.OvhFaxScreen;
import net.minidev.ovh.api.telephony.OvhFaxScreenListTypeEnum;
import net.minidev.ovh.api.telephony.OvhFunctionKey;
import net.minidev.ovh.api.telephony.OvhGenericScreen;
import net.minidev.ovh.api.telephony.OvhHardwareOffer;
import net.minidev.ovh.api.telephony.OvhHistoryConsumption;
import net.minidev.ovh.api.telephony.OvhHistoryRepaymentConsumption;
import net.minidev.ovh.api.telephony.OvhHistoryTollfreeConsumption;
import net.minidev.ovh.api.telephony.OvhLine;
import net.minidev.ovh.api.telephony.OvhLineBlockingMode;
import net.minidev.ovh.api.telephony.OvhLineOffer;
import net.minidev.ovh.api.telephony.OvhLineOffersAndContracts;
import net.minidev.ovh.api.telephony.OvhLineOptions;
import net.minidev.ovh.api.telephony.OvhLinePhone;
import net.minidev.ovh.api.telephony.OvhLinePhoneAssociable;
import net.minidev.ovh.api.telephony.OvhLineStatisticsTypeEnum;
import net.minidev.ovh.api.telephony.OvhMiniPabx;
import net.minidev.ovh.api.telephony.OvhMiniPabxHunting;
import net.minidev.ovh.api.telephony.OvhNumber;
import net.minidev.ovh.api.telephony.OvhNumberCountryEnum;
import net.minidev.ovh.api.telephony.OvhNumberDetailedZone;
import net.minidev.ovh.api.telephony.OvhNumberTypeEnum;
import net.minidev.ovh.api.telephony.OvhOfferChange;
import net.minidev.ovh.api.telephony.OvhOfferTask;
import net.minidev.ovh.api.telephony.OvhOfferTaskActionEnum;
import net.minidev.ovh.api.telephony.OvhOfferTaskTypeEnum;
import net.minidev.ovh.api.telephony.OvhOutplanNotificationBlockEnum;
import net.minidev.ovh.api.telephony.OvhOvhPabx;
import net.minidev.ovh.api.telephony.OvhOvhPabxCustomStatus;
import net.minidev.ovh.api.telephony.OvhOvhPabxDialplan;
import net.minidev.ovh.api.telephony.OvhOvhPabxDialplanExtension;
import net.minidev.ovh.api.telephony.OvhOvhPabxDialplanExtensionConditionScreenList;
import net.minidev.ovh.api.telephony.OvhOvhPabxDialplanExtensionConditionScreenListTypeEnum;
import net.minidev.ovh.api.telephony.OvhOvhPabxDialplanExtensionConditionTime;
import net.minidev.ovh.api.telephony.OvhOvhPabxDialplanExtensionConditionTimeWeekDayEnum;
import net.minidev.ovh.api.telephony.OvhOvhPabxDialplanExtensionRule;
import net.minidev.ovh.api.telephony.OvhOvhPabxDialplanExtensionRuleActionEnum;
import net.minidev.ovh.api.telephony.OvhOvhPabxDialplanNumberPresentationEnum;
import net.minidev.ovh.api.telephony.OvhOvhPabxHunting;
import net.minidev.ovh.api.telephony.OvhOvhPabxHuntingAgent;
import net.minidev.ovh.api.telephony.OvhOvhPabxHuntingAgentLiveStatus;
import net.minidev.ovh.api.telephony.OvhOvhPabxHuntingAgentQueue;
import net.minidev.ovh.api.telephony.OvhOvhPabxHuntingAgentStatusEnum;
import net.minidev.ovh.api.telephony.OvhOvhPabxHuntingQueue;
import net.minidev.ovh.api.telephony.OvhOvhPabxHuntingQueueLiveCalls;
import net.minidev.ovh.api.telephony.OvhOvhPabxHuntingQueueLiveStatistics;
import net.minidev.ovh.api.telephony.OvhOvhPabxHuntingQueueRecordDisablingDigitEnum;
import net.minidev.ovh.api.telephony.OvhOvhPabxHuntingQueueRecordDisablingLanguageEnum;
import net.minidev.ovh.api.telephony.OvhOvhPabxHuntingQueueStrategyEnum;
import net.minidev.ovh.api.telephony.OvhOvhPabxIvrMenuEntryActionEnum;
import net.minidev.ovh.api.telephony.OvhOvhPabxMenu;
import net.minidev.ovh.api.telephony.OvhOvhPabxMenuEntry;
import net.minidev.ovh.api.telephony.OvhOvhPabxQueueActionEnum;
import net.minidev.ovh.api.telephony.OvhOvhPabxRecord;
import net.minidev.ovh.api.telephony.OvhOvhPabxSound;
import net.minidev.ovh.api.telephony.OvhOvhPabxTts;
import net.minidev.ovh.api.telephony.OvhOvhPabxTtsVoiceEnum;
import net.minidev.ovh.api.telephony.OvhOvhPabxWhisperingModeEnum;
import net.minidev.ovh.api.telephony.OvhPcsFile;
import net.minidev.ovh.api.telephony.OvhPhone;
import net.minidev.ovh.api.telephony.OvhPhonebook;
import net.minidev.ovh.api.telephony.OvhPhonebookContact;
import net.minidev.ovh.api.telephony.OvhPhonebookMaster;
import net.minidev.ovh.api.telephony.OvhPortability;
import net.minidev.ovh.api.telephony.OvhPortabilityStep;
import net.minidev.ovh.api.telephony.OvhPreviousVoiceConsumption;
import net.minidev.ovh.api.telephony.OvhRateCodeInformation;
import net.minidev.ovh.api.telephony.OvhRedirect;
import net.minidev.ovh.api.telephony.OvhRegistrationInformations;
import net.minidev.ovh.api.telephony.OvhRepaymentConsumption;
import net.minidev.ovh.api.telephony.OvhResetPhoneInfo;
import net.minidev.ovh.api.telephony.OvhRma;
import net.minidev.ovh.api.telephony.OvhRmaPublicTypeEnum;
import net.minidev.ovh.api.telephony.OvhRmaReturn;
import net.minidev.ovh.api.telephony.OvhRsva;
import net.minidev.ovh.api.telephony.OvhScheduler;
import net.minidev.ovh.api.telephony.OvhSchedulerCategoryEnum;
import net.minidev.ovh.api.telephony.OvhSchedulerEvent;
import net.minidev.ovh.api.telephony.OvhScreen;
import net.minidev.ovh.api.telephony.OvhScreenList;
import net.minidev.ovh.api.telephony.OvhScreenListNatureEnum;
import net.minidev.ovh.api.telephony.OvhScreenListTypeEnum;
import net.minidev.ovh.api.telephony.OvhServiceVoicemailAudioFormatEnum;
import net.minidev.ovh.api.telephony.OvhSipDomainProductTypeEnum;
import net.minidev.ovh.api.telephony.OvhSpecificNumber;
import net.minidev.ovh.api.telephony.OvhStatisticsTimeframeEnum;
import net.minidev.ovh.api.telephony.OvhTask;
import net.minidev.ovh.api.telephony.OvhTaskStatusEnum;
import net.minidev.ovh.api.telephony.OvhTelephonyGenericService;
import net.minidev.ovh.api.telephony.OvhTelephonySearchService;
import net.minidev.ovh.api.telephony.OvhTelephonyService;
import net.minidev.ovh.api.telephony.OvhTerminationReasonEnum;
import net.minidev.ovh.api.telephony.OvhTimeCondition;
import net.minidev.ovh.api.telephony.OvhTimeConditionOptions;
import net.minidev.ovh.api.telephony.OvhTimeConditionsDayEnum;
import net.minidev.ovh.api.telephony.OvhTimeConditionsPolicyEnum;
import net.minidev.ovh.api.telephony.OvhTimestampAndValue;
import net.minidev.ovh.api.telephony.OvhTokenExpirationEnum;
import net.minidev.ovh.api.telephony.OvhTones;
import net.minidev.ovh.api.telephony.OvhTonesTypeEnum;
import net.minidev.ovh.api.telephony.OvhTrafficExtract;
import net.minidev.ovh.api.telephony.OvhTypeEnum;
import net.minidev.ovh.api.telephony.OvhVoiceConsumption;
import net.minidev.ovh.api.telephony.OvhVoiceConsumptionDestinationTypeEnum;
import net.minidev.ovh.api.telephony.OvhVoiceConsumptionPlanTypeEnum;
import net.minidev.ovh.api.telephony.OvhVoiceConsumptionWayTypeEnum;
import net.minidev.ovh.api.telephony.OvhVoicefaxRoutingEnum;
import net.minidev.ovh.api.telephony.OvhVoicemail;
import net.minidev.ovh.api.telephony.OvhVoicemailGreetings;
import net.minidev.ovh.api.telephony.OvhVoicemailMessageFolderDirectoryEnum;
import net.minidev.ovh.api.telephony.OvhVoicemailMessageFolderGreetingEnum;
import net.minidev.ovh.api.telephony.OvhVoicemailMessages;
import net.minidev.ovh.api.telephony.OvhVoicemailNumbers;
import net.minidev.ovh.api.telephony.OvhVoicemailProperties;
import net.minidev.ovh.api.telephony.OvhVxml;
import net.minidev.ovh.api.telephony.OvhVxmlProperties;
import net.minidev.ovh.core.ApiOvhBase;
import net.minidev.ovh.core.ApiOvhCore;
/**
 * BasePath:https://eu.api.ovh.com/1.0
 * ResourcePath:/telephony
 * version:1.0
 */
public class ApiOvhTelephony extends ApiOvhBase {
	public ApiOvhTelephony(ApiOvhCore core) {
		super(core);
	}
	/**
	 * Get all available SIP domains by country
	 *
	 * REST: GET /telephony/availableDefaultSipDomains
	 * @param type [required] Product type
	 */
	public ArrayList availableDefaultSipDomains_GET(OvhSipDomainProductTypeEnum type) throws IOException {
		String qPath = "/telephony/availableDefaultSipDomains";
		StringBuilder sb = path(qPath);
		query(sb, "type", type);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t1);
	}
	private static TypeReference> t1 = new TypeReference>() {};
	/**
	 * List available services
	 *
	 * REST: GET /telephony
	 */
	public ArrayList GET() throws IOException {
		String qPath = "/telephony";
		StringBuilder sb = path(qPath);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	private static TypeReference> t2 = new TypeReference>() {};
	/**
	 * Get current order ids
	 *
	 * REST: GET /telephony/currentOrderIds
	 */
	public ArrayList currentOrderIds_GET() throws IOException {
		String qPath = "/telephony/currentOrderIds";
		StringBuilder sb = path(qPath);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	private static TypeReference> t3 = new TypeReference>() {};
	/**
	 * Get all available geographic zone with some details, from a country
	 *
	 * REST: GET /telephony/number/detailedZones
	 * @param country [required] The country
	 * @param axiom [required] Enter a part of a city name or a zip for specific zne returns
	 */
	public ArrayList number_detailedZones_GET(String axiom, OvhNumberCountryEnum country) throws IOException {
		String qPath = "/telephony/number/detailedZones";
		StringBuilder sb = path(qPath);
		query(sb, "axiom", axiom);
		query(sb, "country", country);
		String resp = execN(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t4);
	}
	private static TypeReference> t4 = new TypeReference>() {};
	/**
	 * Get all available specific number from a country
	 *
	 * REST: GET /telephony/number/specificNumbers
	 * @param country [required] The country
	 * @param zone [required] The zone (geographic number)
	 * @param range [required] The range (special number)
	 * @param type [required] The type of number
	 */
	public ArrayList number_specificNumbers_GET(OvhNumberCountryEnum country, String range, OvhNumberTypeEnum type, String zone) throws IOException {
		String qPath = "/telephony/number/specificNumbers";
		StringBuilder sb = path(qPath);
		query(sb, "country", country);
		query(sb, "range", range);
		query(sb, "type", type);
		query(sb, "zone", zone);
		String resp = execN(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t5);
	}
	private static TypeReference> t5 = new TypeReference>() {};
	/**
	 * Get all available geographic zone from a country
	 *
	 * REST: GET /telephony/number/zones
	 * @param country [required] The country
	 * @param axiom [required] Enter a part of a city name or a zip for specific zne returns
	 */
	public ArrayList number_zones_GET(String axiom, OvhNumberCountryEnum country) throws IOException {
		String qPath = "/telephony/number/zones";
		StringBuilder sb = path(qPath);
		query(sb, "axiom", axiom);
		query(sb, "country", country);
		String resp = execN(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Get all available special range from a country
	 *
	 * REST: GET /telephony/number/ranges
	 * @param country [required] The country
	 */
	public ArrayList number_ranges_GET(OvhNumberCountryEnum country) throws IOException {
		String qPath = "/telephony/number/ranges";
		StringBuilder sb = path(qPath);
		query(sb, "country", country);
		String resp = execN(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Get all zip codes compatible for a number
	 *
	 * REST: GET /telephony/directories/availableZipCodes
	 * @param country [required] The country of the city
	 * @param number [required] The number (can be a range terminated by XXXX)
	 */
	public ArrayList directories_availableZipCodes_GET(OvhNumberCountryEnum country, String number) throws IOException {
		String qPath = "/telephony/directories/availableZipCodes";
		StringBuilder sb = path(qPath);
		query(sb, "country", country);
		query(sb, "number", number);
		String resp = execN(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Get city informations from a zip code
	 *
	 * REST: GET /telephony/directories/cities
	 * @param zipCode [required] The zip code of the city
	 * @param country [required] The country of the city
	 */
	public ArrayList directories_cities_GET(OvhNumberCountryEnum country, String zipCode) throws IOException {
		String qPath = "/telephony/directories/cities";
		StringBuilder sb = path(qPath);
		query(sb, "country", country);
		query(sb, "zipCode", zipCode);
		String resp = execN(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t6);
	}
	private static TypeReference> t6 = new TypeReference>() {};
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public OvhBillingAccount billingAccount_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhBillingAccount.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public void billingAccount_PUT(String billingAccount, OvhBillingAccount body) throws IOException {
		String qPath = "/telephony/{billingAccount}";
		StringBuilder sb = path(qPath, billingAccount);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Ask for a billing account termination.
	 *
	 * REST: DELETE /telephony/{billingAccount}
	 * @param reason [required] Termination reason
	 * @param details [required] Termination reason details
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public void billingAccount_DELETE(String billingAccount, String details, OvhTerminationReasonEnum reason) throws IOException {
		String qPath = "/telephony/{billingAccount}";
		StringBuilder sb = path(qPath, billingAccount);
		query(sb, "details", details);
		query(sb, "reason", reason);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Previous tollfree bill
	 *
	 * REST: GET /telephony/{billingAccount}/historyTollfreeConsumption
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_historyTollfreeConsumption_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/historyTollfreeConsumption";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t7);
	}
	private static TypeReference> t7 = new TypeReference>() {};
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/historyTollfreeConsumption/{date}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param date [required] date of the bill
	 */
	public OvhHistoryTollfreeConsumption billingAccount_historyTollfreeConsumption_date_GET(String billingAccount, java.util.Date date) throws IOException {
		String qPath = "/telephony/{billingAccount}/historyTollfreeConsumption/{date}";
		StringBuilder sb = path(qPath, billingAccount, date);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhHistoryTollfreeConsumption.class);
	}
	/**
	 * Get the csv document
	 *
	 * REST: GET /telephony/{billingAccount}/historyTollfreeConsumption/{date}/document
	 * @param billingAccount [required] The name of your billingAccount
	 * @param date [required] date of the bill
	 */
	public OvhPcsFile billingAccount_historyTollfreeConsumption_date_document_GET(String billingAccount, java.util.Date date) throws IOException {
		String qPath = "/telephony/{billingAccount}/historyTollfreeConsumption/{date}/document";
		StringBuilder sb = path(qPath, billingAccount, date);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPcsFile.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/timeCondition/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhGenericScreen billingAccount_timeCondition_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/timeCondition/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhGenericScreen.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/timeCondition/{serviceName}/options
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTimeConditionOptions billingAccount_timeCondition_serviceName_options_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/timeCondition/{serviceName}/options";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhTimeConditionOptions.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/timeCondition/{serviceName}/options
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_timeCondition_serviceName_options_PUT(String billingAccount, String serviceName, OvhTimeConditionOptions body) throws IOException {
		String qPath = "/telephony/{billingAccount}/timeCondition/{serviceName}/options";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Rules for time conditions for this service
	 *
	 * REST: GET /telephony/{billingAccount}/timeCondition/{serviceName}/condition
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_timeCondition_serviceName_condition_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/timeCondition/{serviceName}/condition";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Create a new time condition rule
	 *
	 * REST: POST /telephony/{billingAccount}/timeCondition/{serviceName}/condition
	 * @param hourEnd [required] The hour where the time condition ends (format : hhmm)
	 * @param policy [required] The policy
	 * @param day [required] The day of the time condition
	 * @param hourBegin [required] The hour where the time condition begins (format : hhmm)
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTimeCondition billingAccount_timeCondition_serviceName_condition_POST(String billingAccount, String serviceName, String hourEnd, OvhTimeConditionsPolicyEnum policy, OvhTimeConditionsDayEnum day, String hourBegin) throws IOException {
		String qPath = "/telephony/{billingAccount}/timeCondition/{serviceName}/condition";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "hourEnd", hourEnd);
		addBody(o, "policy", policy);
		addBody(o, "day", day);
		addBody(o, "hourBegin", hourBegin);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTimeCondition.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/timeCondition/{serviceName}/condition/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTimeCondition billingAccount_timeCondition_serviceName_condition_id_GET(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/timeCondition/{serviceName}/condition/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhTimeCondition.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/timeCondition/{serviceName}/condition/{id}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_timeCondition_serviceName_condition_id_PUT(String billingAccount, String serviceName, Long id, OvhTimeCondition body) throws IOException {
		String qPath = "/telephony/{billingAccount}/timeCondition/{serviceName}/condition/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Delete the given screen list
	 *
	 * REST: DELETE /telephony/{billingAccount}/timeCondition/{serviceName}/condition/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_timeCondition_serviceName_condition_id_DELETE(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/timeCondition/{serviceName}/condition/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Time conditions compatible numbers associated with this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/timeCondition
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_timeCondition_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/timeCondition";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Abbreviated numbers for the billing account
	 *
	 * REST: GET /telephony/{billingAccount}/abbreviatedNumber
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_abbreviatedNumber_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/abbreviatedNumber";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Create a new abbreviated number for the billing account
	 *
	 * REST: POST /telephony/{billingAccount}/abbreviatedNumber
	 * @param destinationNumber [required] The destination of the abbreviated number
	 * @param abbreviatedNumber [required] The abbreviated number which must start with "7" and must have a length of 3 or 4 digits
	 * @param name [required]
	 * @param surname [required]
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public OvhAbbreviatedNumberGroup billingAccount_abbreviatedNumber_POST(String billingAccount, String destinationNumber, Long abbreviatedNumber, String name, String surname) throws IOException {
		String qPath = "/telephony/{billingAccount}/abbreviatedNumber";
		StringBuilder sb = path(qPath, billingAccount);
		HashMapo = new HashMap();
		addBody(o, "destinationNumber", destinationNumber);
		addBody(o, "abbreviatedNumber", abbreviatedNumber);
		addBody(o, "name", name);
		addBody(o, "surname", surname);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhAbbreviatedNumberGroup.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/abbreviatedNumber/{abbreviatedNumber}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param abbreviatedNumber [required] The abbreviated number which must start with "7" and must have a length of 3 or 4 digits
	 */
	public OvhAbbreviatedNumberGroup billingAccount_abbreviatedNumber_abbreviatedNumber_GET(String billingAccount, Long abbreviatedNumber) throws IOException {
		String qPath = "/telephony/{billingAccount}/abbreviatedNumber/{abbreviatedNumber}";
		StringBuilder sb = path(qPath, billingAccount, abbreviatedNumber);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhAbbreviatedNumberGroup.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/abbreviatedNumber/{abbreviatedNumber}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param abbreviatedNumber [required] The abbreviated number which must start with "7" and must have a length of 3 or 4 digits
	 */
	public void billingAccount_abbreviatedNumber_abbreviatedNumber_PUT(String billingAccount, Long abbreviatedNumber, OvhAbbreviatedNumberGroup body) throws IOException {
		String qPath = "/telephony/{billingAccount}/abbreviatedNumber/{abbreviatedNumber}";
		StringBuilder sb = path(qPath, billingAccount, abbreviatedNumber);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Delete the given abbreviated number
	 *
	 * REST: DELETE /telephony/{billingAccount}/abbreviatedNumber/{abbreviatedNumber}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param abbreviatedNumber [required] The abbreviated number which must start with "7" and must have a length of 3 or 4 digits
	 */
	public void billingAccount_abbreviatedNumber_abbreviatedNumber_DELETE(String billingAccount, Long abbreviatedNumber) throws IOException {
		String qPath = "/telephony/{billingAccount}/abbreviatedNumber/{abbreviatedNumber}";
		StringBuilder sb = path(qPath, billingAccount, abbreviatedNumber);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/voicemail/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhVoicemail billingAccount_voicemail_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhVoicemail.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/voicemail/{serviceName}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_voicemail_serviceName_PUT(String billingAccount, String serviceName, OvhVoicemail body) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Voicemail directory messages
	 *
	 * REST: GET /telephony/{billingAccount}/voicemail/{serviceName}/directories
	 * @param dir [required] Filter the value of dir property (=)
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_voicemail_serviceName_directories_GET(String billingAccount, String serviceName, OvhVoicemailMessageFolderDirectoryEnum dir) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/directories";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "dir", dir);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/voicemail/{serviceName}/directories/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhVoicemailMessages billingAccount_voicemail_serviceName_directories_id_GET(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/directories/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhVoicemailMessages.class);
	}
	/**
	 * Delete the given voicemail message
	 *
	 * REST: DELETE /telephony/{billingAccount}/voicemail/{serviceName}/directories/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_voicemail_serviceName_directories_id_DELETE(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/directories/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Move the message to another directory
	 *
	 * REST: POST /telephony/{billingAccount}/voicemail/{serviceName}/directories/{id}/move
	 * @param dir [required] Greeting voicemail directory
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_voicemail_serviceName_directories_id_move_POST(String billingAccount, String serviceName, Long id, OvhVoicemailMessageFolderDirectoryEnum dir) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/directories/{id}/move";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		HashMapo = new HashMap();
		addBody(o, "dir", dir);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Get a url to download the sound file
	 *
	 * REST: GET /telephony/{billingAccount}/voicemail/{serviceName}/directories/{id}/download
	 * @param format [required] File format wanted
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhPcsFile billingAccount_voicemail_serviceName_directories_id_download_GET(String billingAccount, String serviceName, Long id, OvhServiceVoicemailAudioFormatEnum format) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/directories/{id}/download";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		query(sb, "format", format);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPcsFile.class);
	}
	/**
	 * Change the voicemail on a new version to manager greetings, directories and extra settings.
	 *
	 * REST: POST /telephony/{billingAccount}/voicemail/{serviceName}/migrateOnNewVersion
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_voicemail_serviceName_migrateOnNewVersion_POST(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/migrateOnNewVersion";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "POST", sb.toString(), null);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/voicemail/{serviceName}/settings
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhVoicemailProperties billingAccount_voicemail_serviceName_settings_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/settings";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhVoicemailProperties.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/voicemail/{serviceName}/settings
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_voicemail_serviceName_settings_PUT(String billingAccount, String serviceName, OvhVoicemailProperties body) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/settings";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Disable/Enable voicemail. Available only if the line has fax capabilities
	 *
	 * REST: POST /telephony/{billingAccount}/voicemail/{serviceName}/settings/changeRouting
	 * @param routing [required] Activate or Desactivate voicemail on the line
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_voicemail_serviceName_settings_changeRouting_POST(String billingAccount, String serviceName, OvhVoicefaxRoutingEnum routing) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/settings/changeRouting";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "routing", routing);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Get number for internal and external voicemail
	 *
	 * REST: GET /telephony/{billingAccount}/voicemail/{serviceName}/settings/voicemailNumbers
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhVoicemailNumbers billingAccount_voicemail_serviceName_settings_voicemailNumbers_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/settings/voicemailNumbers";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhVoicemailNumbers.class);
	}
	/**
	 * Change the voicemail password. It must be 4 digit
	 *
	 * REST: POST /telephony/{billingAccount}/voicemail/{serviceName}/settings/changePassword
	 * @param password [required] The password
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_voicemail_serviceName_settings_changePassword_POST(String billingAccount, String serviceName, String password) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/settings/changePassword";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "password", password);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Get the status of the voicemail. Available only if the line has fax capabilities
	 *
	 * REST: GET /telephony/{billingAccount}/voicemail/{serviceName}/settings/routing
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhVoicefaxRoutingEnum billingAccount_voicemail_serviceName_settings_routing_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/settings/routing";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhVoicefaxRoutingEnum.class);
	}
	/**
	 * Voicemail greeting message properties
	 *
	 * REST: GET /telephony/{billingAccount}/voicemail/{serviceName}/greetings
	 * @param dir [required] Filter the value of dir property (=)
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_voicemail_serviceName_greetings_GET(String billingAccount, String serviceName, OvhVoicemailMessageFolderGreetingEnum dir) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/greetings";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "dir", dir);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Upload a new sound for a specific greeting. Return a task id.
	 *
	 * REST: POST /telephony/{billingAccount}/voicemail/{serviceName}/greetings
	 * @param documentId [required] Get the /me/document uuid generated
	 * @param dir [required] Greeting voicemail directory
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public Long billingAccount_voicemail_serviceName_greetings_POST(String billingAccount, String serviceName, String documentId, OvhVoicemailMessageFolderGreetingEnum dir) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/greetings";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "documentId", documentId);
		addBody(o, "dir", dir);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, Long.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/voicemail/{serviceName}/greetings/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhVoicemailGreetings billingAccount_voicemail_serviceName_greetings_id_GET(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/greetings/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhVoicemailGreetings.class);
	}
	/**
	 * Delete the customized greeting
	 *
	 * REST: DELETE /telephony/{billingAccount}/voicemail/{serviceName}/greetings/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_voicemail_serviceName_greetings_id_DELETE(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/greetings/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Move the message to another directory
	 *
	 * REST: POST /telephony/{billingAccount}/voicemail/{serviceName}/greetings/{id}/move
	 * @param dir [required] Greeting voicemail directory
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_voicemail_serviceName_greetings_id_move_POST(String billingAccount, String serviceName, Long id, OvhVoicemailMessageFolderGreetingEnum dir) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/greetings/{id}/move";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		HashMapo = new HashMap();
		addBody(o, "dir", dir);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Get a url to download the sound file
	 *
	 * REST: GET /telephony/{billingAccount}/voicemail/{serviceName}/greetings/{id}/download
	 * @param format [required] File format wanted
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhPcsFile billingAccount_voicemail_serviceName_greetings_id_download_GET(String billingAccount, String serviceName, Long id, OvhServiceVoicemailAudioFormatEnum format) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail/{serviceName}/greetings/{id}/download";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		query(sb, "format", format);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPcsFile.class);
	}
	/**
	 * Voicemails associated with this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/voicemail
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_voicemail_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/voicemail";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/easyPabx/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhEasyPabx billingAccount_easyPabx_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyPabx/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhEasyPabx.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/easyPabx/{serviceName}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_easyPabx_serviceName_PUT(String billingAccount, String serviceName, OvhEasyPabx body) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyPabx/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/easyPabx/{serviceName}/hunting
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhEasyPabxHunting billingAccount_easyPabx_serviceName_hunting_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyPabx/{serviceName}/hunting";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhEasyPabxHunting.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/easyPabx/{serviceName}/hunting
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_easyPabx_serviceName_hunting_PUT(String billingAccount, String serviceName, OvhEasyPabxHunting body) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyPabx/{serviceName}/hunting";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Hunting agents
	 *
	 * REST: GET /telephony/{billingAccount}/easyPabx/{serviceName}/hunting/agent
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_easyPabx_serviceName_hunting_agent_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyPabx/{serviceName}/hunting/agent";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Create a new agent
	 *
	 * REST: POST /telephony/{billingAccount}/easyPabx/{serviceName}/hunting/agent
	 * @param agentNumber [required] The phone number of the agent
	 * @param position [required] The position in the hunting
	 * @param logged [required] True if the agent is logged
	 * @param noReplyTimer [required] The maxium ringing time
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhEasyMiniPabxHuntingAgent billingAccount_easyPabx_serviceName_hunting_agent_POST(String billingAccount, String serviceName, String agentNumber, Long position, Boolean logged, Long noReplyTimer) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyPabx/{serviceName}/hunting/agent";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "agentNumber", agentNumber);
		addBody(o, "position", position);
		addBody(o, "logged", logged);
		addBody(o, "noReplyTimer", noReplyTimer);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhEasyMiniPabxHuntingAgent.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/easyPabx/{serviceName}/hunting/agent/{agentNumber}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param agentNumber [required] The phone number of the agent
	 */
	public OvhEasyMiniPabxHuntingAgent billingAccount_easyPabx_serviceName_hunting_agent_agentNumber_GET(String billingAccount, String serviceName, String agentNumber) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyPabx/{serviceName}/hunting/agent/{agentNumber}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, agentNumber);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhEasyMiniPabxHuntingAgent.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/easyPabx/{serviceName}/hunting/agent/{agentNumber}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param agentNumber [required] The phone number of the agent
	 */
	public void billingAccount_easyPabx_serviceName_hunting_agent_agentNumber_PUT(String billingAccount, String serviceName, String agentNumber, OvhEasyMiniPabxHuntingAgent body) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyPabx/{serviceName}/hunting/agent/{agentNumber}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, agentNumber);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Delete the agent
	 *
	 * REST: DELETE /telephony/{billingAccount}/easyPabx/{serviceName}/hunting/agent/{agentNumber}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param agentNumber [required] The phone number of the agent
	 */
	public void billingAccount_easyPabx_serviceName_hunting_agent_agentNumber_DELETE(String billingAccount, String serviceName, String agentNumber) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyPabx/{serviceName}/hunting/agent/{agentNumber}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, agentNumber);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/easyPabx/{serviceName}/hunting/tones
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTones billingAccount_easyPabx_serviceName_hunting_tones_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyPabx/{serviceName}/hunting/tones";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhTones.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/easyPabx/{serviceName}/hunting/tones
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_easyPabx_serviceName_hunting_tones_PUT(String billingAccount, String serviceName, OvhTones body) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyPabx/{serviceName}/hunting/tones";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Upload new tone file
	 *
	 * REST: POST /telephony/{billingAccount}/easyPabx/{serviceName}/hunting/tones/toneUpload
	 * @param url [required]
	 * @param type [required]
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTask billingAccount_easyPabx_serviceName_hunting_tones_toneUpload_POST(String billingAccount, String serviceName, String url, OvhTonesTypeEnum type) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyPabx/{serviceName}/hunting/tones/toneUpload";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "url", url);
		addBody(o, "type", type);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * EasyPabx associated with this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/easyPabx
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_easyPabx_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyPabx";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Give all amounts availables for your billing account
	 *
	 * REST: GET /telephony/{billingAccount}/amountSecurityDeposit
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_amountSecurityDeposit_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/amountSecurityDeposit";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t8);
	}
	private static TypeReference> t8 = new TypeReference>() {};
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhLine billingAccount_line_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhLine.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/line/{serviceName}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_line_serviceName_PUT(String billingAccount, String serviceName, OvhLine body) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Remove extra simultaneous lines
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/removeSimultaneousLines
	 * @param quantityRemove [required] The quantity of extra simultaneous lines to remove
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_line_serviceName_removeSimultaneousLines_POST(String billingAccount, String serviceName, Long quantityRemove) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/removeSimultaneousLines";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "quantityRemove", quantityRemove);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/options
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhLineOptions billingAccount_line_serviceName_options_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/options";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhLineOptions.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/line/{serviceName}/options
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_line_serviceName_options_PUT(String billingAccount, String serviceName, OvhLineOptions body) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/options";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Get the default codecs for this line if none are set
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/options/defaultCodecs
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public String billingAccount_line_serviceName_options_defaultCodecs_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/options/defaultCodecs";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, String.class);
	}
	/**
	 * List of codecs combinaisons available for this line
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/options/availableCodecs
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_options_availableCodecs_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/options/availableCodecs";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Return public offer property
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/offer
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhLineOffer billingAccount_line_serviceName_offer_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/offer";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhLineOffer.class);
	}
	/**
	 * Get statistics of the current line
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/statistics
	 * @param timeframe [required]
	 * @param type [required]
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhUnitAndValues billingAccount_line_serviceName_statistics_GET(String billingAccount, String serviceName, OvhStatisticsTimeframeEnum timeframe, OvhLineStatisticsTypeEnum type) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/statistics";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "timeframe", timeframe);
		query(sb, "type", type);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t9);
	}
	private static TypeReference> t9 = new TypeReference>() {};
	/**
	 * List the phones with Sip slot available
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phoneCanBeAssociable
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @deprecated
	 */
	public ArrayList billingAccount_line_serviceName_phoneCanBeAssociable_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phoneCanBeAssociable";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t10);
	}
	private static TypeReference> t10 = new TypeReference>() {};
	/**
	 * List phones with available slots where this line can be attached
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/listAssociablePhones
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_listAssociablePhones_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/listAssociablePhones";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t11);
	}
	private static TypeReference> t11 = new TypeReference>() {};
	/**
	 * Abbreviated numbers for the line
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/abbreviatedNumber
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_abbreviatedNumber_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/abbreviatedNumber";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Create a new abbreviated number for the line
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/abbreviatedNumber
	 * @param destinationNumber [required] The destination of the abbreviated number
	 * @param abbreviatedNumber [required] The abbreviated number which must start with "2" and must have a length of 3 or 4 digits
	 * @param name [required]
	 * @param surname [required]
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhAbbreviatedNumber billingAccount_line_serviceName_abbreviatedNumber_POST(String billingAccount, String serviceName, String destinationNumber, Long abbreviatedNumber, String name, String surname) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/abbreviatedNumber";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "destinationNumber", destinationNumber);
		addBody(o, "abbreviatedNumber", abbreviatedNumber);
		addBody(o, "name", name);
		addBody(o, "surname", surname);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhAbbreviatedNumber.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/abbreviatedNumber/{abbreviatedNumber}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param abbreviatedNumber [required] The abbreviated number which must start with "2" and must have a length of 3 or 4 digits
	 */
	public OvhAbbreviatedNumber billingAccount_line_serviceName_abbreviatedNumber_abbreviatedNumber_GET(String billingAccount, String serviceName, Long abbreviatedNumber) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/abbreviatedNumber/{abbreviatedNumber}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, abbreviatedNumber);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhAbbreviatedNumber.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/line/{serviceName}/abbreviatedNumber/{abbreviatedNumber}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param abbreviatedNumber [required] The abbreviated number which must start with "2" and must have a length of 3 or 4 digits
	 */
	public void billingAccount_line_serviceName_abbreviatedNumber_abbreviatedNumber_PUT(String billingAccount, String serviceName, Long abbreviatedNumber, OvhAbbreviatedNumber body) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/abbreviatedNumber/{abbreviatedNumber}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, abbreviatedNumber);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Delete the given abbreviated number
	 *
	 * REST: DELETE /telephony/{billingAccount}/line/{serviceName}/abbreviatedNumber/{abbreviatedNumber}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param abbreviatedNumber [required] The abbreviated number which must start with "2" and must have a length of 3 or 4 digits
	 */
	public void billingAccount_line_serviceName_abbreviatedNumber_abbreviatedNumber_DELETE(String billingAccount, String serviceName, Long abbreviatedNumber) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/abbreviatedNumber/{abbreviatedNumber}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, abbreviatedNumber);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * User which can use click 2 call on the line
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/click2CallUser
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_click2CallUser_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/click2CallUser";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Create a new user for click 2 call
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/click2CallUser
	 * @param password [required] The user password
	 * @param login [required] Name of the contact
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public Long billingAccount_line_serviceName_click2CallUser_POST(String billingAccount, String serviceName, String password, String login) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/click2CallUser";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "password", password);
		addBody(o, "login", login);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, Long.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/click2CallUser/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhClick2CallUser billingAccount_line_serviceName_click2CallUser_id_GET(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/click2CallUser/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhClick2CallUser.class);
	}
	/**
	 * Delete a click 2 call user
	 *
	 * REST: DELETE /telephony/{billingAccount}/line/{serviceName}/click2CallUser/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_line_serviceName_click2CallUser_id_DELETE(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/click2CallUser/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Make a phone call from the current line
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/click2CallUser/{id}/click2Call
	 * @param callingNumber [required]
	 * @param calledNumber [required]
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_line_serviceName_click2CallUser_id_click2Call_POST(String billingAccount, String serviceName, Long id, String callingNumber, String calledNumber) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/click2CallUser/{id}/click2Call";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		HashMapo = new HashMap();
		addBody(o, "callingNumber", callingNumber);
		addBody(o, "calledNumber", calledNumber);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Change the password of the click2call user
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/click2CallUser/{id}/changePassword
	 * @param password [required] The password
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_line_serviceName_click2CallUser_id_changePassword_POST(String billingAccount, String serviceName, Long id, String password) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/click2CallUser/{id}/changePassword";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		HashMapo = new HashMap();
		addBody(o, "password", password);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Listing of last ips registry
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/ips
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_ips_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/ips";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t12);
	}
	private static TypeReference> t12 = new TypeReference>() {};
	/**
	 * Automatic Calls made by Calls Generator on this line
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/automaticCall
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_automaticCall_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/automaticCall";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Make an automatic phone call. Return generated call identifier
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/automaticCall
	 * @param playbackAudioFileDialplan [required] Name of the audioFile (if needed) with extention. This audio file must have been upload previously
	 * @param calledNumber [required] Number to call
	 * @param callingNumber [required] Optional, number where the call come from
	 * @param bridgeNumberDialplan [required] Number to call if transfer in dialplan selected
	 * @param ttsTextDialplan [required] Text to read if TTS on dialplan selected
	 * @param isAnonymous [required] For anonymous call
	 * @param dialplan [required] Dialplan used for the call
	 * @param timeout [required] Timeout (in seconds). Default is 20 seconds
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public String billingAccount_line_serviceName_automaticCall_POST(String billingAccount, String serviceName, String playbackAudioFileDialplan, String calledNumber, String callingNumber, String bridgeNumberDialplan, String ttsTextDialplan, Boolean isAnonymous, OvhCallsGeneratorDialplanEnum dialplan, Long timeout) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/automaticCall";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "playbackAudioFileDialplan", playbackAudioFileDialplan);
		addBody(o, "calledNumber", calledNumber);
		addBody(o, "callingNumber", callingNumber);
		addBody(o, "bridgeNumberDialplan", bridgeNumberDialplan);
		addBody(o, "ttsTextDialplan", ttsTextDialplan);
		addBody(o, "isAnonymous", isAnonymous);
		addBody(o, "dialplan", dialplan);
		addBody(o, "timeout", timeout);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, String.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/automaticCall/{identifier}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param identifier [required] Generated call identifier
	 */
	public OvhCallsGenerated billingAccount_line_serviceName_automaticCall_identifier_GET(String billingAccount, String serviceName, String identifier) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/automaticCall/{identifier}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, identifier);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhCallsGenerated.class);
	}
	/**
	 * Unblock the line. It will remove any incoming and outboing block made earlier
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/unblock
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_line_serviceName_unblock_POST(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/unblock";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "POST", sb.toString(), null);
	}
	/**
	 * Associate a device to the current line with the device mac address
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/associateDevice
	 * @param macAddress [required] The mac address of the device you want to associate to the line (format: AABBCCDDEEFF)
	 * @param ipAddress [required] The public phone IP address allowed to get phone's configuration
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_line_serviceName_associateDevice_POST(String billingAccount, String serviceName, String macAddress, String ipAddress) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/associateDevice";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "macAddress", macAddress);
		addBody(o, "ipAddress", ipAddress);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Cancel a scheduled conversion to number
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/cancelConvertToNumber
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_line_serviceName_cancelConvertToNumber_POST(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/cancelConvertToNumber";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "POST", sb.toString(), null);
	}
	/**
	 * The traffic extracts (SIP only) of your line
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/trafficExtracts
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_trafficExtracts_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/trafficExtracts";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Launch a traffic extract on your line
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/trafficExtracts
	 * @param dateStart [required] The start date of the traffic extract
	 * @param dateEnd [required] The end date of the traffic extract
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTrafficExtract billingAccount_line_serviceName_trafficExtracts_POST(String billingAccount, String serviceName, Date dateStart, Date dateEnd) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/trafficExtracts";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "dateStart", dateStart);
		addBody(o, "dateEnd", dateEnd);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTrafficExtract.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/trafficExtracts/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTrafficExtract billingAccount_line_serviceName_trafficExtracts_id_GET(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/trafficExtracts/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhTrafficExtract.class);
	}
	/**
	 * Delete a traffic extract
	 *
	 * REST: DELETE /telephony/{billingAccount}/line/{serviceName}/trafficExtracts/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_line_serviceName_trafficExtracts_id_DELETE(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/trafficExtracts/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * List the informations about the last registrations (i.e. IP, port, User-Agent...)
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/lastRegistrations
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_lastRegistrations_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/lastRegistrations";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t13);
	}
	private static TypeReference> t13 = new TypeReference>() {};
	/**
	 * The current calls of your line
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/calls
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_calls_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/calls";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/calls/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhOvhPabxHuntingQueueLiveCalls billingAccount_line_serviceName_calls_id_GET(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/calls/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhOvhPabxHuntingQueueLiveCalls.class);
	}
	/**
	 * Hangup a call
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/calls/{id}/hangup
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTask billingAccount_line_serviceName_calls_id_hangup_POST(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/calls/{id}/hangup";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "POST", sb.toString(), null);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Eavesdrop on a call
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/calls/{id}/eavesdrop
	 * @param number [required] Phone number that will be called and bridged in the communication
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTask billingAccount_line_serviceName_calls_id_eavesdrop_POST(String billingAccount, String serviceName, Long id, String number) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/calls/{id}/eavesdrop";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		HashMapo = new HashMap();
		addBody(o, "number", number);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Transfer an answered call
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/calls/{id}/transfer
	 * @param number [required] Phone number to whom the communication will be transfered
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTask billingAccount_line_serviceName_calls_id_transfer_POST(String billingAccount, String serviceName, Long id, String number) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/calls/{id}/transfer";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		HashMapo = new HashMap();
		addBody(o, "number", number);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Toogle hold on call
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/calls/{id}/hold
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTask billingAccount_line_serviceName_calls_id_hold_POST(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/calls/{id}/hold";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "POST", sb.toString(), null);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Whisper on a call
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/calls/{id}/whisper
	 * @param whisperingMode [required] Whispering mode
	 * @param number [required] Phone number that will be called and bridged in the communication
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTask billingAccount_line_serviceName_calls_id_whisper_POST(String billingAccount, String serviceName, Long id, OvhOvhPabxWhisperingModeEnum whisperingMode, String number) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/calls/{id}/whisper";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		HashMapo = new HashMap();
		addBody(o, "whisperingMode", whisperingMode);
		addBody(o, "number", number);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Intercept a non answered call
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/calls/{id}/intercept
	 * @param number [required] Phone number that will be called and that will intercept the communication
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTask billingAccount_line_serviceName_calls_id_intercept_POST(String billingAccount, String serviceName, Long id, String number) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/calls/{id}/intercept";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		HashMapo = new HashMap();
		addBody(o, "number", number);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Make a phone call from the current line
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/click2Call
	 * @param callingNumber [required]
	 * @param calledNumber [required]
	 * @param intercom [required] Activate the calling number in intercom mode automatically (pick up and speaker automatic activation).
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_line_serviceName_click2Call_POST(String billingAccount, String serviceName, String callingNumber, String calledNumber, Boolean intercom) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/click2Call";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "callingNumber", callingNumber);
		addBody(o, "calledNumber", calledNumber);
		addBody(o, "intercom", intercom);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * The recordings of your line outgoing calls
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/records
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_records_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/records";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/records/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhOvhPabxRecord billingAccount_line_serviceName_records_id_GET(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/records/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhOvhPabxRecord.class);
	}
	/**
	 * Delete the given record
	 *
	 * REST: DELETE /telephony/{billingAccount}/line/{serviceName}/records/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_line_serviceName_records_id_DELETE(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/records/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Schedule a conversion to number
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/convertToNumber
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhOfferTask billingAccount_line_serviceName_convertToNumber_POST(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/convertToNumber";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "POST", sb.toString(), null);
		return convertTo(resp, OvhOfferTask.class);
	}
	/**
	 * Change the SIP account password. It must be more than 7 and less than 21 alpha and numerical characters.
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/changePassword
	 * @param password [required] The password
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_line_serviceName_changePassword_POST(String billingAccount, String serviceName, String password) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/changePassword";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "password", password);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phone
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhPhone billingAccount_line_serviceName_phone_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPhone.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/line/{serviceName}/phone
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_line_serviceName_phone_PUT(String billingAccount, String serviceName, OvhPhone body) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Does the phone manages phonebooks?
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phone/supportsPhonebook
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public Boolean billingAccount_line_serviceName_phone_supportsPhonebook_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/supportsPhonebook";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, Boolean.class);
	}
	/**
	 * Create a task to reboot the phone
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/phone/reboot
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTask billingAccount_line_serviceName_phone_reboot_POST(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/reboot";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "POST", sb.toString(), null);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Return phonebooks associated
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phone/phonebook
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_phone_phonebook_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/phonebook";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Add a phonebook. Return the bookKey.
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/phone/phonebook
	 * @param name [required] Name of the wanted phonebook
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public String billingAccount_line_serviceName_phone_phonebook_POST(String billingAccount, String serviceName, String name) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/phonebook";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "name", name);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, String.class);
	}
	/**
	 * Phonebook contacts
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public ArrayList billingAccount_line_serviceName_phone_phonebook_bookKey_phonebookContact_GET(String billingAccount, String serviceName, String bookKey) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact";
		StringBuilder sb = path(qPath, billingAccount, serviceName, bookKey);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Create a phonebook contact. Return identifier of the phonebook contact.
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact
	 * @param homeMobile [required] Home mobile phone number of the contact
	 * @param workMobile [required] Mobile phone office number of the contact
	 * @param group [required] Group name of the phonebook
	 * @param name [required] Name of the contact
	 * @param homePhone [required] Home landline phone number of the contact
	 * @param workPhone [required] Landline phone office number of the contact
	 * @param surname [required] Contact surname
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public Long billingAccount_line_serviceName_phone_phonebook_bookKey_phonebookContact_POST(String billingAccount, String serviceName, String bookKey, String homeMobile, String workMobile, String group, String name, String homePhone, String workPhone, String surname) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact";
		StringBuilder sb = path(qPath, billingAccount, serviceName, bookKey);
		HashMapo = new HashMap();
		addBody(o, "homeMobile", homeMobile);
		addBody(o, "workMobile", workMobile);
		addBody(o, "group", group);
		addBody(o, "name", name);
		addBody(o, "homePhone", homePhone);
		addBody(o, "workPhone", workPhone);
		addBody(o, "surname", surname);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, Long.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param bookKey [required] Identifier of the phonebook
	 * @param id [required] Contact identifier
	 */
	public OvhPhonebookContact billingAccount_line_serviceName_phone_phonebook_bookKey_phonebookContact_id_GET(String billingAccount, String serviceName, String bookKey, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, bookKey, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPhonebookContact.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param bookKey [required] Identifier of the phonebook
	 * @param id [required] Contact identifier
	 */
	public void billingAccount_line_serviceName_phone_phonebook_bookKey_phonebookContact_id_PUT(String billingAccount, String serviceName, String bookKey, Long id, OvhPhonebookContact body) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, bookKey, id);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Delete a phonebook contact
	 *
	 * REST: DELETE /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param bookKey [required] Identifier of the phonebook
	 * @param id [required] Contact identifier
	 */
	public void billingAccount_line_serviceName_phone_phonebook_bookKey_phonebookContact_id_DELETE(String billingAccount, String serviceName, String bookKey, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, bookKey, id);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public OvhPhonebook billingAccount_line_serviceName_phone_phonebook_bookKey_GET(String billingAccount, String serviceName, String bookKey) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, bookKey);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPhonebook.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public void billingAccount_line_serviceName_phone_phonebook_bookKey_PUT(String billingAccount, String serviceName, String bookKey, OvhPhonebook body) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, bookKey);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Delete a phonebook
	 *
	 * REST: DELETE /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public void billingAccount_line_serviceName_phone_phonebook_bookKey_DELETE(String billingAccount, String serviceName, String bookKey) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, bookKey);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Export the phonebook's contacts
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/export
	 * @param format [required] Format of the file
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public OvhPcsFile billingAccount_line_serviceName_phone_phonebook_bookKey_export_GET(String billingAccount, String serviceName, String bookKey, OvhContactsExportFormatsEnum format) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/export";
		StringBuilder sb = path(qPath, billingAccount, serviceName, bookKey);
		query(sb, "format", format);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPcsFile.class);
	}
	/**
	 * Import a contacts file. Supported formats are Excel (.xls and .xlsx) and CSV
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/import
	 * @param documentId [required] ID of the /me/document file you want to import
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public OvhTask billingAccount_line_serviceName_phone_phonebook_bookKey_import_POST(String billingAccount, String serviceName, String bookKey, String documentId) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/import";
		StringBuilder sb = path(qPath, billingAccount, serviceName, bookKey);
		HashMapo = new HashMap();
		addBody(o, "documentId", documentId);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Reinitialize the phone configuration
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/phone/resetConfig
	 * @param ip [required] The public ip phone allowed for reset
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhResetPhoneInfo billingAccount_line_serviceName_phone_resetConfig_POST(String billingAccount, String serviceName, String ip) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/resetConfig";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "ip", ip);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhResetPhoneInfo.class);
	}
	/**
	 * Create a task to refresh the screen of the MGCP phone
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/phone/refreshScreen
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTask billingAccount_line_serviceName_phone_refreshScreen_POST(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/refreshScreen";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "POST", sb.toString(), null);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Plug & Phone function keys
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phone/functionKey
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_phone_functionKey_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/functionKey";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param keyNum [required] The number of the function key
	 */
	public OvhFunctionKey billingAccount_line_serviceName_phone_functionKey_keyNum_GET(String billingAccount, String serviceName, Long keyNum) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, keyNum);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhFunctionKey.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param keyNum [required] The number of the function key
	 */
	public void billingAccount_line_serviceName_phone_functionKey_keyNum_PUT(String billingAccount, String serviceName, Long keyNum, OvhFunctionKey body) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, keyNum);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * List the available functions for the key
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}/availableFunction
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param keyNum [required] The number of the function key
	 */
	public ArrayList billingAccount_line_serviceName_phone_functionKey_keyNum_availableFunction_GET(String billingAccount, String serviceName, Long keyNum) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}/availableFunction";
		StringBuilder sb = path(qPath, billingAccount, serviceName, keyNum);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * List of available exchange merchandise brand
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phone/merchandiseAvailable
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_phone_merchandiseAvailable_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/merchandiseAvailable";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t14);
	}
	private static TypeReference> t14 = new TypeReference>() {};
	/**
	 * Edit configuration of the phone remotely by provisioning
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/phone/changePhoneConfiguration
	 * @param newConfigurations [required] Name value pairs of provisioning options
	 * @param autoReboot [required] Automatically reboot phone when applying the configuration
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_line_serviceName_phone_changePhoneConfiguration_POST(String billingAccount, String serviceName, OvhSafeKeyValue[] newConfigurations, Boolean autoReboot) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/changePhoneConfiguration";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "newConfigurations", newConfigurations);
		addBody(o, "autoReboot", autoReboot);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Return Merchandise Authorisation associated
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phone/rma
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_phone_rma_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/rma";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Create a specific rma
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/phone/rma
	 * @param shippingContactId [required] Shipping contact information id from /me entry point
	 * @param newMerchandise [required] New merchandise brand in case of exchange
	 * @param mondialRelayId [required] Use /supply/mondialRelay entry point to specify a relay point and ignore shipping contact address information entry.
	 * @param type [required] Typology process of merchandise return
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhRmaReturn billingAccount_line_serviceName_phone_rma_POST(String billingAccount, String serviceName, Long shippingContactId, String newMerchandise, String mondialRelayId, OvhRmaPublicTypeEnum type) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/rma";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "shippingContactId", shippingContactId);
		addBody(o, "newMerchandise", newMerchandise);
		addBody(o, "mondialRelayId", mondialRelayId);
		addBody(o, "type", type);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhRmaReturn.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Return merchandise authorisation identifier
	 */
	public OvhRma billingAccount_line_serviceName_phone_rma_id_GET(String billingAccount, String serviceName, String id) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhRma.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Return merchandise authorisation identifier
	 */
	public void billingAccount_line_serviceName_phone_rma_id_PUT(String billingAccount, String serviceName, String id, OvhRma body) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Cancel the rma
	 *
	 * REST: DELETE /telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Return merchandise authorisation identifier
	 */
	public void billingAccount_line_serviceName_phone_rma_id_DELETE(String billingAccount, String serviceName, String id) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Dissociate a device from the current line with the device mac address
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/dissociateDevice
	 * @param macAddress [required] The mac address of the device you want to dissociate from the line (format: AABBCCDDEEFF)
	 * @param ipAddress [required] The public phone IP address allowed to get phone's configuration
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_line_serviceName_dissociateDevice_POST(String billingAccount, String serviceName, String macAddress, String ipAddress) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/dissociateDevice";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "macAddress", macAddress);
		addBody(o, "ipAddress", ipAddress);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Listing of domains Sip availables
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/availableSipDomains
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_line_serviceName_availableSipDomains_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/availableSipDomains";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Block the line. By default it will block incoming and outgoing calls (except for emergency numbers)
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/block
	 * @param mode [required] The block mode : outgoing, incoming, both (default: both)
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_line_serviceName_block_POST(String billingAccount, String serviceName, OvhLineBlockingMode mode) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/block";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "mode", mode);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Get the maximum available simultaneous lines for this line
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/maximumAvailableSimultaneousLines
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public Long billingAccount_line_serviceName_maximumAvailableSimultaneousLines_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/maximumAvailableSimultaneousLines";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, Long.class);
	}
	/**
	 * Ability to manage SIP password on this service
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/canChangePassword
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public Boolean billingAccount_line_serviceName_canChangePassword_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/canChangePassword";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, Boolean.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/line/{serviceName}/tones
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTones billingAccount_line_serviceName_tones_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/tones";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhTones.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/line/{serviceName}/tones
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_line_serviceName_tones_PUT(String billingAccount, String serviceName, OvhTones body) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/tones";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Upload new tone file
	 *
	 * REST: POST /telephony/{billingAccount}/line/{serviceName}/tones/toneUpload
	 * @param url [required]
	 * @param type [required]
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTask billingAccount_line_serviceName_tones_toneUpload_POST(String billingAccount, String serviceName, String url, OvhTonesTypeEnum type) throws IOException {
		String qPath = "/telephony/{billingAccount}/line/{serviceName}/tones/toneUpload";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "url", url);
		addBody(o, "type", type);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Lines associated with this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/line
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_line_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/line";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Return phonebooks associated to this group
	 *
	 * REST: GET /telephony/{billingAccount}/phonebook
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_phonebook_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/phonebook";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Add a phonebook on group. Return the bookKey.
	 *
	 * REST: POST /telephony/{billingAccount}/phonebook
	 * @param name [required] Name of the wanted phonebook
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public String billingAccount_phonebook_POST(String billingAccount, String name) throws IOException {
		String qPath = "/telephony/{billingAccount}/phonebook";
		StringBuilder sb = path(qPath, billingAccount);
		HashMapo = new HashMap();
		addBody(o, "name", name);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, String.class);
	}
	/**
	 * Phonebook contacts
	 *
	 * REST: GET /telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact
	 * @param billingAccount [required] The name of your billingAccount
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public ArrayList billingAccount_phonebook_bookKey_phonebookContact_GET(String billingAccount, String bookKey) throws IOException {
		String qPath = "/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact";
		StringBuilder sb = path(qPath, billingAccount, bookKey);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Create a phonebook contact. Return identifier of the phonebook contact.
	 *
	 * REST: POST /telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact
	 * @param homeMobile [required] Home mobile phone number of the contact
	 * @param workMobile [required] Mobile phone office number of the contact
	 * @param group [required] Group name of the phonebook
	 * @param name [required] Name of the contact
	 * @param homePhone [required] Home landline phone number of the contact
	 * @param workPhone [required] Landline phone office number of the contact
	 * @param surname [required] Contact surname
	 * @param billingAccount [required] The name of your billingAccount
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public Long billingAccount_phonebook_bookKey_phonebookContact_POST(String billingAccount, String bookKey, String homeMobile, String workMobile, String group, String name, String homePhone, String workPhone, String surname) throws IOException {
		String qPath = "/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact";
		StringBuilder sb = path(qPath, billingAccount, bookKey);
		HashMapo = new HashMap();
		addBody(o, "homeMobile", homeMobile);
		addBody(o, "workMobile", workMobile);
		addBody(o, "group", group);
		addBody(o, "name", name);
		addBody(o, "homePhone", homePhone);
		addBody(o, "workPhone", workPhone);
		addBody(o, "surname", surname);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, Long.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param bookKey [required] Identifier of the phonebook
	 * @param id [required] Contact identifier
	 */
	public OvhPhonebookContact billingAccount_phonebook_bookKey_phonebookContact_id_GET(String billingAccount, String bookKey, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}";
		StringBuilder sb = path(qPath, billingAccount, bookKey, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPhonebookContact.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param bookKey [required] Identifier of the phonebook
	 * @param id [required] Contact identifier
	 */
	public void billingAccount_phonebook_bookKey_phonebookContact_id_PUT(String billingAccount, String bookKey, Long id, OvhPhonebookContact body) throws IOException {
		String qPath = "/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}";
		StringBuilder sb = path(qPath, billingAccount, bookKey, id);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Delete a phonebook contact
	 *
	 * REST: DELETE /telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param bookKey [required] Identifier of the phonebook
	 * @param id [required] Contact identifier
	 */
	public void billingAccount_phonebook_bookKey_phonebookContact_id_DELETE(String billingAccount, String bookKey, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}";
		StringBuilder sb = path(qPath, billingAccount, bookKey, id);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/phonebook/{bookKey}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public OvhPhonebookMaster billingAccount_phonebook_bookKey_GET(String billingAccount, String bookKey) throws IOException {
		String qPath = "/telephony/{billingAccount}/phonebook/{bookKey}";
		StringBuilder sb = path(qPath, billingAccount, bookKey);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPhonebookMaster.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/phonebook/{bookKey}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public void billingAccount_phonebook_bookKey_PUT(String billingAccount, String bookKey, OvhPhonebookMaster body) throws IOException {
		String qPath = "/telephony/{billingAccount}/phonebook/{bookKey}";
		StringBuilder sb = path(qPath, billingAccount, bookKey);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Delete a phonebook
	 *
	 * REST: DELETE /telephony/{billingAccount}/phonebook/{bookKey}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public void billingAccount_phonebook_bookKey_DELETE(String billingAccount, String bookKey) throws IOException {
		String qPath = "/telephony/{billingAccount}/phonebook/{bookKey}";
		StringBuilder sb = path(qPath, billingAccount, bookKey);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Export the phonebook's contacts
	 *
	 * REST: GET /telephony/{billingAccount}/phonebook/{bookKey}/export
	 * @param format [required] Format of the file
	 * @param billingAccount [required] The name of your billingAccount
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public OvhPcsFile billingAccount_phonebook_bookKey_export_GET(String billingAccount, String bookKey, OvhContactsExportFormatsEnum format) throws IOException {
		String qPath = "/telephony/{billingAccount}/phonebook/{bookKey}/export";
		StringBuilder sb = path(qPath, billingAccount, bookKey);
		query(sb, "format", format);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPcsFile.class);
	}
	/**
	 * Import a contacts file. Supported formats are Excel (.xls and .xlsx) and CSV
	 *
	 * REST: POST /telephony/{billingAccount}/phonebook/{bookKey}/import
	 * @param documentId [required] ID of the /me/document file you want to import
	 * @param billingAccount [required] The name of your billingAccount
	 * @param bookKey [required] Identifier of the phonebook
	 */
	public OvhTask billingAccount_phonebook_bookKey_import_POST(String billingAccount, String bookKey, String documentId) throws IOException {
		String qPath = "/telephony/{billingAccount}/phonebook/{bookKey}/import";
		StringBuilder sb = path(qPath, billingAccount, bookKey);
		HashMapo = new HashMap();
		addBody(o, "documentId", documentId);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTelephonyService billingAccount_service_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhTelephonyService.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/service/{serviceName}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_service_serviceName_PUT(String billingAccount, String serviceName, OvhTelephonyService body) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Ask for a service termination.
	 *
	 * REST: DELETE /telephony/{billingAccount}/service/{serviceName}
	 * @param reason [required] Termination reason
	 * @param details [required] Termination reason details
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_service_serviceName_DELETE(String billingAccount, String serviceName, String details, OvhTerminationReasonEnum reason) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "details", details);
		query(sb, "reason", reason);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Call delivery records.
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/voiceConsumption
	 * @param planType [required] Filter the value of planType property (=)
	 * @param destinationType [required] Filter the value of destinationType property (=)
	 * @param creationDatetime_to [required] Filter the value of creationDatetime property (<=)
	 * @param creationDatetime_from [required] Filter the value of creationDatetime property (>=)
	 * @param wayType [required] Filter the value of wayType property (=)
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_service_serviceName_voiceConsumption_GET(String billingAccount, String serviceName, Date creationDatetime_from, Date creationDatetime_to, OvhVoiceConsumptionDestinationTypeEnum destinationType, OvhVoiceConsumptionPlanTypeEnum planType, OvhVoiceConsumptionWayTypeEnum wayType) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/voiceConsumption";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "creationDatetime.from", creationDatetime_from);
		query(sb, "creationDatetime.to", creationDatetime_to);
		query(sb, "destinationType", destinationType);
		query(sb, "planType", planType);
		query(sb, "wayType", wayType);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/voiceConsumption/{consumptionId}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param consumptionId [required]
	 */
	public OvhVoiceConsumption billingAccount_service_serviceName_voiceConsumption_consumptionId_GET(String billingAccount, String serviceName, Long consumptionId) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/voiceConsumption/{consumptionId}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, consumptionId);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhVoiceConsumption.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/voiceConsumption/{consumptionId}/callDiagnostics
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param consumptionId [required]
	 */
	public OvhCallDiagnostics billingAccount_service_serviceName_voiceConsumption_consumptionId_callDiagnostics_GET(String billingAccount, String serviceName, Long consumptionId) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/voiceConsumption/{consumptionId}/callDiagnostics";
		StringBuilder sb = path(qPath, billingAccount, serviceName, consumptionId);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhCallDiagnostics.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/offerChange
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhOfferChange billingAccount_service_serviceName_offerChange_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/offerChange";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhOfferChange.class);
	}
	/**
	 * Add a new offer change
	 *
	 * REST: POST /telephony/{billingAccount}/service/{serviceName}/offerChange
	 * @param offer [required] The future offer
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_service_serviceName_offerChange_POST(String billingAccount, String serviceName, String offer) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/offerChange";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "offer", offer);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Delete the replacement offer scheduling
	 *
	 * REST: DELETE /telephony/{billingAccount}/service/{serviceName}/offerChange
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_service_serviceName_offerChange_DELETE(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/offerChange";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Call delivery records of the previous month.
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/previousVoiceConsumption
	 * @param planType [required] Filter the value of planType property (=)
	 * @param destinationType [required] Filter the value of destinationType property (=)
	 * @param creationDatetime_to [required] Filter the value of creationDatetime property (<=)
	 * @param creationDatetime_from [required] Filter the value of creationDatetime property (>=)
	 * @param wayType [required] Filter the value of wayType property (=)
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_service_serviceName_previousVoiceConsumption_GET(String billingAccount, String serviceName, Date creationDatetime_from, Date creationDatetime_to, OvhVoiceConsumptionDestinationTypeEnum destinationType, OvhVoiceConsumptionPlanTypeEnum planType, OvhVoiceConsumptionWayTypeEnum wayType) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/previousVoiceConsumption";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "creationDatetime.from", creationDatetime_from);
		query(sb, "creationDatetime.to", creationDatetime_to);
		query(sb, "destinationType", destinationType);
		query(sb, "planType", planType);
		query(sb, "wayType", wayType);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/previousVoiceConsumption/{consumptionId}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param consumptionId [required]
	 */
	public OvhPreviousVoiceConsumption billingAccount_service_serviceName_previousVoiceConsumption_consumptionId_GET(String billingAccount, String serviceName, Long consumptionId) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/previousVoiceConsumption/{consumptionId}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, consumptionId);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPreviousVoiceConsumption.class);
	}
	/**
	 * Cancel the service termination
	 *
	 * REST: POST /telephony/{billingAccount}/service/{serviceName}/cancelTermination
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_service_serviceName_cancelTermination_POST(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/cancelTermination";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "POST", sb.toString(), null);
	}
	/**
	 * Operations on a telephony service
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/task
	 * @param serviceType [required] Filter the value of serviceType property (=)
	 * @param status [required] Filter the value of status property (=)
	 * @param action [required] Filter the value of action property (=)
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_service_serviceName_task_GET(String billingAccount, String serviceName, String action, String serviceType, OvhTaskStatusEnum status) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/task";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "action", action);
		query(sb, "serviceType", serviceType);
		query(sb, "status", status);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/task/{taskId}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param taskId [required]
	 */
	public OvhTask billingAccount_service_serviceName_task_taskId_GET(String billingAccount, String serviceName, Long taskId) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/task/{taskId}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, taskId);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Call which could be repayable
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/repaymentConsumption
	 * @param creationDatetime_to [required] Filter the value of creationDatetime property (<=)
	 * @param creationDatetime_from [required] Filter the value of creationDatetime property (>=)
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_service_serviceName_repaymentConsumption_GET(String billingAccount, String serviceName, Date creationDatetime_from, Date creationDatetime_to) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/repaymentConsumption";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "creationDatetime.from", creationDatetime_from);
		query(sb, "creationDatetime.to", creationDatetime_to);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/repaymentConsumption/{consumptionId}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param consumptionId [required]
	 */
	public OvhRepaymentConsumption billingAccount_service_serviceName_repaymentConsumption_consumptionId_GET(String billingAccount, String serviceName, Long consumptionId) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/repaymentConsumption/{consumptionId}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, consumptionId);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhRepaymentConsumption.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/directory
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhDirectoryInfo billingAccount_service_serviceName_directory_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/directory";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhDirectoryInfo.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/service/{serviceName}/directory
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_service_serviceName_directory_PUT(String billingAccount, String serviceName, OvhDirectoryInfo body) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/directory";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Get all the way types availables
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/directory/getWayTypes
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_service_serviceName_directory_getWayTypes_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/directory/getWayTypes";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t15);
	}
	private static TypeReference> t15 = new TypeReference>() {};
	/**
	 * Get directory service code from an APE code ( principal activity of the firm code )
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/directory/getDirectoryServiceCode
	 * @param apeCode [required]
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_service_serviceName_directory_getDirectoryServiceCode_GET(String billingAccount, String serviceName, String apeCode) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/directory/getDirectoryServiceCode";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "apeCode", apeCode);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t16);
	}
	private static TypeReference> t16 = new TypeReference>() {};
	/**
	 * Get company entreprise informations by providing entreprise number
	 *
	 * REST: POST /telephony/{billingAccount}/service/{serviceName}/directory/fetchEntrepriseInformations
	 * @param entrepriseNumber [required] Entreprise number to fetch informations from
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhEntrepriseNumberInformationsTask billingAccount_service_serviceName_directory_fetchEntrepriseInformations_POST(String billingAccount, String serviceName, String entrepriseNumber) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/directory/fetchEntrepriseInformations";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "entrepriseNumber", entrepriseNumber);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhEntrepriseNumberInformationsTask.class);
	}
	/**
	 * Fax delivery records.
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/faxConsumption
	 * @param creationDatetime_to [required] Filter the value of creationDatetime property (<=)
	 * @param creationDatetime_from [required] Filter the value of creationDatetime property (>=)
	 * @param wayType [required] Filter the value of wayType property (=)
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_service_serviceName_faxConsumption_GET(String billingAccount, String serviceName, Date creationDatetime_from, Date creationDatetime_to, OvhFaxConsumptionWayTypeEnum wayType) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/faxConsumption";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "creationDatetime.from", creationDatetime_from);
		query(sb, "creationDatetime.to", creationDatetime_to);
		query(sb, "wayType", wayType);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/faxConsumption/{consumptionId}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param consumptionId [required]
	 */
	public OvhFaxConsumption billingAccount_service_serviceName_faxConsumption_consumptionId_GET(String billingAccount, String serviceName, Long consumptionId) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/faxConsumption/{consumptionId}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, consumptionId);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhFaxConsumption.class);
	}
	/**
	 * Operations on a telephony service's offer
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/offerTask
	 * @param status [required] Filter the value of status property (=)
	 * @param action [required] Filter the value of action property (=)
	 * @param type [required] Filter the value of type property (=)
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_service_serviceName_offerTask_GET(String billingAccount, String serviceName, OvhOfferTaskActionEnum action, OvhTaskStatusEnum status, OvhOfferTaskTypeEnum type) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/offerTask";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "action", action);
		query(sb, "status", status);
		query(sb, "type", type);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/offerTask/{taskId}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param taskId [required]
	 */
	public OvhOfferTask billingAccount_service_serviceName_offerTask_taskId_GET(String billingAccount, String serviceName, Long taskId) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/offerTask/{taskId}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, taskId);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhOfferTask.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/eventToken
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhEventToken billingAccount_service_serviceName_eventToken_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/eventToken";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhEventToken.class);
	}
	/**
	 * Create a new token
	 *
	 * REST: POST /telephony/{billingAccount}/service/{serviceName}/eventToken
	 * @param expiration [required] Time to live in seconds for the token
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public String billingAccount_service_serviceName_eventToken_POST(String billingAccount, String serviceName, OvhTokenExpirationEnum expiration) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/eventToken";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "expiration", expiration);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, String.class);
	}
	/**
	 * Delete the given token
	 *
	 * REST: DELETE /telephony/{billingAccount}/service/{serviceName}/eventToken
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_service_serviceName_eventToken_DELETE(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/eventToken";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Move a service of billing account. Source and destination nics should be the same.
	 *
	 * REST: POST /telephony/{billingAccount}/service/{serviceName}/changeOfBillingAccount
	 * @param billingAccountDestination [required] Billing account destination target
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_service_serviceName_changeOfBillingAccount_POST(String billingAccount, String serviceName, String billingAccountDestination) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/changeOfBillingAccount";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "billingAccountDestination", billingAccountDestination);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Get Relevant informations of the service detected from the MOS or the signal leg in SIP/MGCP protocol.
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/diagnosticReports
	 * @param dayInterval [required] The date index interval
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_service_serviceName_diagnosticReports_GET(String billingAccount, String serviceName, OvhDiagnosticReportIndexEnum dayInterval) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/diagnosticReports";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "dayInterval", dayInterval);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t17);
	}
	private static TypeReference> t17 = new TypeReference>() {};
	/**
	 * List all available offer changes compatibilities
	 *
	 * REST: GET /telephony/{billingAccount}/service/{serviceName}/offerChanges
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_service_serviceName_offerChanges_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/service/{serviceName}/offerChanges";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t18);
	}
	private static TypeReference> t18 = new TypeReference>() {};
	/**
	 * Services associated with this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/service
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_service_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/service";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Used to overwrite current billing account feature by the billing account site
	 *
	 * REST: POST /telephony/{billingAccount}/billingAccountSite
	 * @param billingAccountSite [required] Billing account site (master billing account)
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public void billingAccount_billingAccountSite_POST(String billingAccount, String billingAccountSite) throws IOException {
		String qPath = "/telephony/{billingAccount}/billingAccountSite";
		StringBuilder sb = path(qPath, billingAccount);
		HashMapo = new HashMap();
		addBody(o, "billingAccountSite", billingAccountSite);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Current billing account site (billing account features are overwritten by the site)
	 *
	 * REST: GET /telephony/{billingAccount}/billingAccountSite
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public String billingAccount_billingAccountSite_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/billingAccountSite";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, String.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/scheduler/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhScheduler billingAccount_scheduler_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/scheduler/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhScheduler.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/scheduler/{serviceName}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_scheduler_serviceName_PUT(String billingAccount, String serviceName, OvhScheduler body) throws IOException {
		String qPath = "/telephony/{billingAccount}/scheduler/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Add scheduler events in ICS format
	 *
	 * REST: POST /telephony/{billingAccount}/scheduler/{serviceName}/importIcsCalendar
	 * @param url [required] The URL of your ICS formated calendar
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTask billingAccount_scheduler_serviceName_importIcsCalendar_POST(String billingAccount, String serviceName, String url) throws IOException {
		String qPath = "/telephony/{billingAccount}/scheduler/{serviceName}/importIcsCalendar";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "url", url);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Custom events scheduled
	 *
	 * REST: GET /telephony/{billingAccount}/scheduler/{serviceName}/events
	 * @param dateEnd_from [required] Filter the value of dateEnd property (>=)
	 * @param dateStart_to [required] Filter the value of dateStart property (<=)
	 * @param dateEnd_to [required] Filter the value of dateEnd property (<=)
	 * @param dateStart_from [required] Filter the value of dateStart property (>=)
	 * @param categories [required] Filter the value of categories property (=)
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_scheduler_serviceName_events_GET(String billingAccount, String serviceName, OvhSchedulerCategoryEnum categories, Date dateEnd_from, Date dateEnd_to, Date dateStart_from, Date dateStart_to) throws IOException {
		String qPath = "/telephony/{billingAccount}/scheduler/{serviceName}/events";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "categories", categories);
		query(sb, "dateEnd.from", dateEnd_from);
		query(sb, "dateEnd.to", dateEnd_to);
		query(sb, "dateStart.from", dateStart_from);
		query(sb, "dateStart.to", dateStart_to);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Add a scheduler event
	 *
	 * REST: POST /telephony/{billingAccount}/scheduler/{serviceName}/events
	 * @param uid [required] The unique ICS event identifier
	 * @param dateStart [required] The beginning date of the event
	 * @param category [required] The category of the event
	 * @param dateEnd [required] The ending date of the event
	 * @param title [required] The title of the event
	 * @param description [required] The descritpion of the event
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_scheduler_serviceName_events_POST(String billingAccount, String serviceName, String uid, Date dateStart, OvhSchedulerCategoryEnum category, Date dateEnd, String title, String description) throws IOException {
		String qPath = "/telephony/{billingAccount}/scheduler/{serviceName}/events";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "uid", uid);
		addBody(o, "dateStart", dateStart);
		addBody(o, "category", category);
		addBody(o, "dateEnd", dateEnd);
		addBody(o, "title", title);
		addBody(o, "description", description);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/scheduler/{serviceName}/events/{uid}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param uid [required] The unique ICS event identifier
	 */
	public OvhSchedulerEvent billingAccount_scheduler_serviceName_events_uid_GET(String billingAccount, String serviceName, String uid) throws IOException {
		String qPath = "/telephony/{billingAccount}/scheduler/{serviceName}/events/{uid}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, uid);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhSchedulerEvent.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/scheduler/{serviceName}/events/{uid}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param uid [required] The unique ICS event identifier
	 */
	public void billingAccount_scheduler_serviceName_events_uid_PUT(String billingAccount, String serviceName, String uid, OvhSchedulerEvent body) throws IOException {
		String qPath = "/telephony/{billingAccount}/scheduler/{serviceName}/events/{uid}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, uid);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Delete the given scheduler event
	 *
	 * REST: DELETE /telephony/{billingAccount}/scheduler/{serviceName}/events/{uid}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param uid [required] The unique ICS event identifier
	 */
	public void billingAccount_scheduler_serviceName_events_uid_DELETE(String billingAccount, String serviceName, String uid) throws IOException {
		String qPath = "/telephony/{billingAccount}/scheduler/{serviceName}/events/{uid}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, uid);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Scheduled events
	 *
	 * REST: GET /telephony/{billingAccount}/scheduler
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_scheduler_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/scheduler";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/serviceInfos
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public OvhService billingAccount_serviceInfos_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/serviceInfos";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhService.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/serviceInfos
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public void billingAccount_serviceInfos_PUT(String billingAccount, OvhService body) throws IOException {
		String qPath = "/telephony/{billingAccount}/serviceInfos";
		StringBuilder sb = path(qPath, billingAccount);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Transfer security deposit between two billing accounts
	 *
	 * REST: POST /telephony/{billingAccount}/transferSecurityDeposit
	 * @param amount [required] The amount, in euros, you want to transfer
	 * @param billingAccountDestination [required] The destination billing account
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public void billingAccount_transferSecurityDeposit_POST(String billingAccount, Long amount, String billingAccountDestination) throws IOException {
		String qPath = "/telephony/{billingAccount}/transferSecurityDeposit";
		StringBuilder sb = path(qPath, billingAccount);
		HashMapo = new HashMap();
		addBody(o, "amount", amount);
		addBody(o, "billingAccountDestination", billingAccountDestination);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/number/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required] Name of the service
	 */
	public OvhNumber billingAccount_number_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/number/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhNumber.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/number/{serviceName}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required] Name of the service
	 */
	public void billingAccount_number_serviceName_PUT(String billingAccount, String serviceName, OvhNumber body) throws IOException {
		String qPath = "/telephony/{billingAccount}/number/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Get the available line offers to schedule a conversion to line
	 *
	 * REST: GET /telephony/{billingAccount}/number/{serviceName}/convertToLineAvailableOffers
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required] Name of the service
	 */
	public OvhLineOffersAndContracts billingAccount_number_serviceName_convertToLineAvailableOffers_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/number/{serviceName}/convertToLineAvailableOffers";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhLineOffersAndContracts.class);
	}
	/**
	 * Schedule a conversion to line
	 *
	 * REST: POST /telephony/{billingAccount}/number/{serviceName}/convertToLine
	 * @param offer [required] The future offer of the converted number
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required] Name of the service
	 */
	public OvhOfferTask billingAccount_number_serviceName_convertToLine_POST(String billingAccount, String serviceName, String offer) throws IOException {
		String qPath = "/telephony/{billingAccount}/number/{serviceName}/convertToLine";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "offer", offer);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhOfferTask.class);
	}
	/**
	 * Cancel a scheduled conversion to line
	 *
	 * REST: POST /telephony/{billingAccount}/number/{serviceName}/cancelConvertToLine
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required] Name of the service
	 */
	public void billingAccount_number_serviceName_cancelConvertToLine_POST(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/number/{serviceName}/cancelConvertToLine";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "POST", sb.toString(), null);
	}
	/**
	 * Change the feature type of the phone number
	 *
	 * REST: POST /telephony/{billingAccount}/number/{serviceName}/changeFeatureType
	 * @param featureType [required] The new feature of the number
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required] Name of the service
	 */
	public OvhTask billingAccount_number_serviceName_changeFeatureType_POST(String billingAccount, String serviceName, OvhTypeEnum featureType) throws IOException {
		String qPath = "/telephony/{billingAccount}/number/{serviceName}/changeFeatureType";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "featureType", featureType);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Additional numbers associated with this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/number
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_number_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/number";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Launch a contact change procedure
	 *
	 * REST: POST /telephony/{billingAccount}/changeContact
	 * @param contactAdmin The contact to set as admin contact
	 * @param contactTech The contact to set as tech contact
	 * @param contactBilling The contact to set as billing contact
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_changeContact_POST(String billingAccount, String contactAdmin, String contactTech, String contactBilling) throws IOException {
		String qPath = "/telephony/{billingAccount}/changeContact";
		StringBuilder sb = path(qPath, billingAccount);
		HashMapo = new HashMap();
		addBody(o, "contactAdmin", contactAdmin);
		addBody(o, "contactTech", contactTech);
		addBody(o, "contactBilling", contactBilling);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, t3);
	}
	/**
	 * Check if security deposit transfer is possible between two billing accounts
	 *
	 * REST: POST /telephony/{billingAccount}/canTransferSecurityDeposit
	 * @param billingAccountDestination [required] The destination billing account
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public Boolean billingAccount_canTransferSecurityDeposit_POST(String billingAccount, String billingAccountDestination) throws IOException {
		String qPath = "/telephony/{billingAccount}/canTransferSecurityDeposit";
		StringBuilder sb = path(qPath, billingAccount);
		HashMapo = new HashMap();
		addBody(o, "billingAccountDestination", billingAccountDestination);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, Boolean.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/eventToken
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public OvhEventToken billingAccount_eventToken_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/eventToken";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhEventToken.class);
	}
	/**
	 * Create a new token
	 *
	 * REST: POST /telephony/{billingAccount}/eventToken
	 * @param expiration [required] Time to live in seconds for the token
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public String billingAccount_eventToken_POST(String billingAccount, OvhTokenExpirationEnum expiration) throws IOException {
		String qPath = "/telephony/{billingAccount}/eventToken";
		StringBuilder sb = path(qPath, billingAccount);
		HashMapo = new HashMap();
		addBody(o, "expiration", expiration);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, String.class);
	}
	/**
	 * Delete the given token
	 *
	 * REST: DELETE /telephony/{billingAccount}/eventToken
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public void billingAccount_eventToken_DELETE(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/eventToken";
		StringBuilder sb = path(qPath, billingAccount);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Current number portabilities for this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/portability
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_portability_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/portability";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/portability/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param id [required] The ID of the portability
	 */
	public OvhPortability billingAccount_portability_id_GET(String billingAccount, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/portability/{id}";
		StringBuilder sb = path(qPath, billingAccount, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPortability.class);
	}
	/**
	 * Indicates whether or not the portability date can be changed
	 *
	 * REST: GET /telephony/{billingAccount}/portability/{id}/dateCanBeChanged
	 * @param billingAccount [required] The name of your billingAccount
	 * @param id [required] The ID of the portability
	 */
	public Boolean billingAccount_portability_id_dateCanBeChanged_GET(String billingAccount, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/portability/{id}/dateCanBeChanged";
		StringBuilder sb = path(qPath, billingAccount, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, Boolean.class);
	}
	/**
	 * Indicates the current status of the portability, with a list of steps
	 *
	 * REST: GET /telephony/{billingAccount}/portability/{id}/status
	 * @param billingAccount [required] The name of your billingAccount
	 * @param id [required] The ID of the portability
	 */
	public ArrayList billingAccount_portability_id_status_GET(String billingAccount, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/portability/{id}/status";
		StringBuilder sb = path(qPath, billingAccount, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t19);
	}
	private static TypeReference> t19 = new TypeReference>() {};
	/**
	 * Indicates whether or not the portability can be cancelled
	 *
	 * REST: GET /telephony/{billingAccount}/portability/{id}/canBeCancelled
	 * @param billingAccount [required] The name of your billingAccount
	 * @param id [required] The ID of the portability
	 */
	public Boolean billingAccount_portability_id_canBeCancelled_GET(String billingAccount, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/portability/{id}/canBeCancelled";
		StringBuilder sb = path(qPath, billingAccount, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, Boolean.class);
	}
	/**
	 * Ask to execute the portability
	 *
	 * REST: POST /telephony/{billingAccount}/portability/{id}/execute
	 * @param billingAccount [required] The name of your billingAccount
	 * @param id [required] The ID of the portability
	 */
	public void billingAccount_portability_id_execute_POST(String billingAccount, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/portability/{id}/execute";
		StringBuilder sb = path(qPath, billingAccount, id);
		exec(qPath, "POST", sb.toString(), null);
	}
	/**
	 * Ask to change the portability date
	 *
	 * REST: POST /telephony/{billingAccount}/portability/{id}/changeDate
	 * @param date [required] The proposed portability due date
	 * @param billingAccount [required] The name of your billingAccount
	 * @param id [required] The ID of the portability
	 */
	public void billingAccount_portability_id_changeDate_POST(String billingAccount, Long id, Date date) throws IOException {
		String qPath = "/telephony/{billingAccount}/portability/{id}/changeDate";
		StringBuilder sb = path(qPath, billingAccount, id);
		HashMapo = new HashMap();
		addBody(o, "date", date);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Indicates whether or not the portability can be executed
	 *
	 * REST: GET /telephony/{billingAccount}/portability/{id}/canBeExecuted
	 * @param billingAccount [required] The name of your billingAccount
	 * @param id [required] The ID of the portability
	 */
	public Boolean billingAccount_portability_id_canBeExecuted_GET(String billingAccount, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/portability/{id}/canBeExecuted";
		StringBuilder sb = path(qPath, billingAccount, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, Boolean.class);
	}
	/**
	 * Ask to cancel the portability
	 *
	 * REST: POST /telephony/{billingAccount}/portability/{id}/cancel
	 * @param reason [required] The cancellation reason
	 * @param billingAccount [required] The name of your billingAccount
	 * @param id [required] The ID of the portability
	 */
	public void billingAccount_portability_id_cancel_POST(String billingAccount, Long id, String reason) throws IOException {
		String qPath = "/telephony/{billingAccount}/portability/{id}/cancel";
		StringBuilder sb = path(qPath, billingAccount, id);
		HashMapo = new HashMap();
		addBody(o, "reason", reason);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Previous repayment bill
	 *
	 * REST: GET /telephony/{billingAccount}/historyRepaymentConsumption
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_historyRepaymentConsumption_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/historyRepaymentConsumption";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t7);
	}
	/**
	 * Ask for a new repayment
	 *
	 * REST: POST /telephony/{billingAccount}/historyRepaymentConsumption
	 * @param billingNumber [required] The number of the bill
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public OvhHistoryRepaymentConsumption billingAccount_historyRepaymentConsumption_POST(String billingAccount, String billingNumber) throws IOException {
		String qPath = "/telephony/{billingAccount}/historyRepaymentConsumption";
		StringBuilder sb = path(qPath, billingAccount);
		HashMapo = new HashMap();
		addBody(o, "billingNumber", billingNumber);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhHistoryRepaymentConsumption.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/historyRepaymentConsumption/{date}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param date [required] date of the bill
	 */
	public OvhHistoryRepaymentConsumption billingAccount_historyRepaymentConsumption_date_GET(String billingAccount, java.util.Date date) throws IOException {
		String qPath = "/telephony/{billingAccount}/historyRepaymentConsumption/{date}";
		StringBuilder sb = path(qPath, billingAccount, date);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhHistoryRepaymentConsumption.class);
	}
	/**
	 * Get the csv document
	 *
	 * REST: GET /telephony/{billingAccount}/historyRepaymentConsumption/{date}/document
	 * @param billingAccount [required] The name of your billingAccount
	 * @param date [required] date of the bill
	 */
	public OvhPcsFile billingAccount_historyRepaymentConsumption_date_document_GET(String billingAccount, java.util.Date date) throws IOException {
		String qPath = "/telephony/{billingAccount}/historyRepaymentConsumption/{date}/document";
		StringBuilder sb = path(qPath, billingAccount, date);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPcsFile.class);
	}
	/**
	 * Outplan notifications configured for this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/outplanNotification
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_outplanNotification_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/outplanNotification";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Add an outplan notification on the billing account
	 *
	 * REST: POST /telephony/{billingAccount}/outplanNotification
	 * @param block [required] The blocking type of the associate lines
	 * @param percentage [required] The notification percentage of maximum outplan
	 * @param notifyEmail [required] Override the nichandle email for this notification
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public OvhConsumptionThreshold billingAccount_outplanNotification_POST(String billingAccount, OvhOutplanNotificationBlockEnum block, Double percentage, String notifyEmail) throws IOException {
		String qPath = "/telephony/{billingAccount}/outplanNotification";
		StringBuilder sb = path(qPath, billingAccount);
		HashMapo = new HashMap();
		addBody(o, "block", block);
		addBody(o, "percentage", percentage);
		addBody(o, "notifyEmail", notifyEmail);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhConsumptionThreshold.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/outplanNotification/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param id [required] Id of the object
	 */
	public OvhConsumptionThreshold billingAccount_outplanNotification_id_GET(String billingAccount, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/outplanNotification/{id}";
		StringBuilder sb = path(qPath, billingAccount, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhConsumptionThreshold.class);
	}
	/**
	 * Delete an outplan notification
	 *
	 * REST: DELETE /telephony/{billingAccount}/outplanNotification/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param id [required] Id of the object
	 */
	public void billingAccount_outplanNotification_id_DELETE(String billingAccount, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/outplanNotification/{id}";
		StringBuilder sb = path(qPath, billingAccount, id);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/vxml/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhVxml billingAccount_vxml_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/vxml/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhVxml.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/vxml/{serviceName}/settings
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhVxmlProperties billingAccount_vxml_serviceName_settings_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/vxml/{serviceName}/settings";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhVxmlProperties.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/vxml/{serviceName}/settings
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_vxml_serviceName_settings_PUT(String billingAccount, String serviceName, OvhVxmlProperties body) throws IOException {
		String qPath = "/telephony/{billingAccount}/vxml/{serviceName}/settings";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Vxml numbers associated with this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/vxml
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_vxml_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/vxml";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/redirect/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhRedirect billingAccount_redirect_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/redirect/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhRedirect.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/redirect/{serviceName}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_redirect_serviceName_PUT(String billingAccount, String serviceName, OvhRedirect body) throws IOException {
		String qPath = "/telephony/{billingAccount}/redirect/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Change the destination of the redirect
	 *
	 * REST: POST /telephony/{billingAccount}/redirect/{serviceName}/changeDestination
	 * @param destination [required] The destination
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTask billingAccount_redirect_serviceName_changeDestination_POST(String billingAccount, String serviceName, String destination) throws IOException {
		String qPath = "/telephony/{billingAccount}/redirect/{serviceName}/changeDestination";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "destination", destination);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Redirects associated with this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/redirect
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_redirect_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/redirect";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/rsva/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhRsva billingAccount_rsva_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/rsva/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhRsva.class);
	}
	/**
	 * New scheduled rate code related to this sva
	 *
	 * REST: GET /telephony/{billingAccount}/rsva/{serviceName}/scheduledRateCode
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhDetailedRateCodeInformation billingAccount_rsva_serviceName_scheduledRateCode_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/rsva/{serviceName}/scheduledRateCode";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhDetailedRateCodeInformation.class);
	}
	/**
	 * Schedule a new rate code for this sva
	 *
	 * REST: POST /telephony/{billingAccount}/rsva/{serviceName}/scheduleRateCode
	 * @param rateCode [required] The specified rate code
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhDetailedRateCodeInformation billingAccount_rsva_serviceName_scheduleRateCode_POST(String billingAccount, String serviceName, String rateCode) throws IOException {
		String qPath = "/telephony/{billingAccount}/rsva/{serviceName}/scheduleRateCode";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "rateCode", rateCode);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhDetailedRateCodeInformation.class);
	}
	/**
	 * Compatible rate codes related to this value added service
	 *
	 * REST: GET /telephony/{billingAccount}/rsva/{serviceName}/allowedRateCodes
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_rsva_serviceName_allowedRateCodes_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/rsva/{serviceName}/allowedRateCodes";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t20);
	}
	private static TypeReference> t20 = new TypeReference>() {};
	/**
	 * Current rate code related to this sva
	 *
	 * REST: GET /telephony/{billingAccount}/rsva/{serviceName}/currentRateCode
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhDetailedRateCodeInformation billingAccount_rsva_serviceName_currentRateCode_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/rsva/{serviceName}/currentRateCode";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhDetailedRateCodeInformation.class);
	}
	/**
	 * Cancel a scheduled rate code update
	 *
	 * REST: POST /telephony/{billingAccount}/rsva/{serviceName}/cancelScheduledRateCode
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_rsva_serviceName_cancelScheduledRateCode_POST(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/rsva/{serviceName}/cancelScheduledRateCode";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "POST", sb.toString(), null);
	}
	/**
	 * Service concerned by the french RSVA reform
	 *
	 * REST: GET /telephony/{billingAccount}/rsva
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_rsva_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/rsva";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/fax/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhFax billingAccount_fax_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhFax.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/fax/{serviceName}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_fax_serviceName_PUT(String billingAccount, String serviceName, OvhFax body) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/fax/{serviceName}/screenLists
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhFaxScreen billingAccount_fax_serviceName_screenLists_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/screenLists";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhFaxScreen.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/fax/{serviceName}/screenLists
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_fax_serviceName_screenLists_PUT(String billingAccount, String serviceName, OvhFaxScreen body) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/screenLists";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Create a new fax ScreenLists
	 *
	 * REST: POST /telephony/{billingAccount}/fax/{serviceName}/screenLists
	 * @param filteringList [required] Which list is active (blackist, whitelist or none)
	 * @param blacklistedTSI [required] List of logins (TSI or ID) not allowed to send a fax
	 * @param whitelistedNumbers [required] List of numbers allowed to send a fax
	 * @param whitelistedTSI [required] List of logins (TSI or ID) allowed to send a fax
	 * @param blacklistedNumbers [required] List of numbers not allowed to send a fax
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhFaxScreen billingAccount_fax_serviceName_screenLists_POST(String billingAccount, String serviceName, OvhFaxScreenListTypeEnum filteringList, String[] blacklistedTSI, String[] whitelistedNumbers, String[] whitelistedTSI, String[] blacklistedNumbers) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/screenLists";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "filteringList", filteringList);
		addBody(o, "blacklistedTSI", blacklistedTSI);
		addBody(o, "whitelistedNumbers", whitelistedNumbers);
		addBody(o, "whitelistedTSI", whitelistedTSI);
		addBody(o, "blacklistedNumbers", blacklistedNumbers);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhFaxScreen.class);
	}
	/**
	 * Delete all fax screenLists
	 *
	 * REST: DELETE /telephony/{billingAccount}/fax/{serviceName}/screenLists
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_fax_serviceName_screenLists_DELETE(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/screenLists";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Reset a specifical fax screenList
	 *
	 * REST: POST /telephony/{billingAccount}/fax/{serviceName}/screenLists/reset
	 * @param blacklistedTSI [required] List of black login (TSI or ID)
	 * @param whitelistedNumbers [required] List of white numbers
	 * @param whitelistedTSI [required] List of white login (TSI or ID)
	 * @param blacklistedNumbers [required] List of black numbers
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_fax_serviceName_screenLists_reset_POST(String billingAccount, String serviceName, Boolean blacklistedTSI, Boolean whitelistedNumbers, Boolean whitelistedTSI, Boolean blacklistedNumbers) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/screenLists/reset";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "blacklistedTSI", blacklistedTSI);
		addBody(o, "whitelistedNumbers", whitelistedNumbers);
		addBody(o, "whitelistedTSI", whitelistedTSI);
		addBody(o, "blacklistedNumbers", blacklistedNumbers);
		exec(qPath, "POST", sb.toString(), o);
	}
	/**
	 * Fax campaigns of the associate fax
	 *
	 * REST: GET /telephony/{billingAccount}/fax/{serviceName}/campaigns
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_fax_serviceName_campaigns_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/campaigns";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Create a new fax campaign
	 *
	 * REST: POST /telephony/{billingAccount}/fax/{serviceName}/campaigns
	 * @param recipientsType [required] Method to set the campaign recipient
	 * @param documentId [required] The id of the /me/document pdf you want to send
	 * @param name [required] The name of the fax campaign
	 * @param recipientsDocId [required] If recipientsType is set to document, the id of the document containing the recipients phone numbers
	 * @param faxQuality [required] The quality of the fax you want to send
	 * @param recipientsList [required] If recipientsType is set to list, the list of recipients phone numbers
	 * @param sendDate [required] Sending date of the campaign (when sendType is scheduled)
	 * @param sendType [required] Sending type of the campaign
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhFaxCampaign billingAccount_fax_serviceName_campaigns_POST(String billingAccount, String serviceName, OvhFaxCampaignRecipientsTypeEnum recipientsType, String documentId, String name, String recipientsDocId, OvhFaxQualityEnum faxQuality, String[] recipientsList, Date sendDate, OvhFaxCampaignSendTypeEnum sendType) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/campaigns";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "recipientsType", recipientsType);
		addBody(o, "documentId", documentId);
		addBody(o, "name", name);
		addBody(o, "recipientsDocId", recipientsDocId);
		addBody(o, "faxQuality", faxQuality);
		addBody(o, "recipientsList", recipientsList);
		addBody(o, "sendDate", sendDate);
		addBody(o, "sendType", sendType);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhFaxCampaign.class);
	}
	/**
	 * Detail of the fax recipients by status
	 *
	 * REST: GET /telephony/{billingAccount}/fax/{serviceName}/campaigns/{id}/detail
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhFaxCampaignDetail billingAccount_fax_serviceName_campaigns_id_detail_GET(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/campaigns/{id}/detail";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhFaxCampaignDetail.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/fax/{serviceName}/campaigns/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhFaxCampaign billingAccount_fax_serviceName_campaigns_id_GET(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/campaigns/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhFaxCampaign.class);
	}
	/**
	 * Delete a fax campaign
	 *
	 * REST: DELETE /telephony/{billingAccount}/fax/{serviceName}/campaigns/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_fax_serviceName_campaigns_id_DELETE(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/campaigns/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Stop a fax campaign
	 *
	 * REST: POST /telephony/{billingAccount}/fax/{serviceName}/campaigns/{id}/stop
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_fax_serviceName_campaigns_id_stop_POST(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/campaigns/{id}/stop";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "POST", sb.toString(), null);
	}
	/**
	 * Start a fax campaign
	 *
	 * REST: POST /telephony/{billingAccount}/fax/{serviceName}/campaigns/{id}/start
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_fax_serviceName_campaigns_id_start_POST(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/campaigns/{id}/start";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "POST", sb.toString(), null);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/fax/{serviceName}/settings
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhFaxProperties billingAccount_fax_serviceName_settings_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/settings";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhFaxProperties.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/fax/{serviceName}/settings
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_fax_serviceName_settings_PUT(String billingAccount, String serviceName, OvhFaxProperties body) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/settings";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Generates a new password for your fax account
	 *
	 * REST: POST /telephony/{billingAccount}/fax/{serviceName}/settings/changePassword
	 * @param password [required] The password, if not specified, a random password will be generated
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public String billingAccount_fax_serviceName_settings_changePassword_POST(String billingAccount, String serviceName, String password) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/settings/changePassword";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "password", password);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, String.class);
	}
	/**
	 * Send a fax
	 *
	 * REST: POST /telephony/{billingAccount}/fax/{serviceName}/settings/sendFax
	 * @param pdfUrl [required] Url of the pdf document you want to send
	 * @param dateSchedule [required] If you want to schedule your fax later, you can specify a date
	 * @param recipients [required] List of recipients of your fax
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTask billingAccount_fax_serviceName_settings_sendFax_POST(String billingAccount, String serviceName, String pdfUrl, Date dateSchedule, String[] recipients) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax/{serviceName}/settings/sendFax";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "pdfUrl", pdfUrl);
		addBody(o, "dateSchedule", dateSchedule);
		addBody(o, "recipients", recipients);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Faxes associated with this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/fax
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_fax_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/fax";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/conference/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhConference billingAccount_conference_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhConference.class);
	}
	/**
	 * Lock the conference room
	 *
	 * REST: POST /telephony/{billingAccount}/conference/{serviceName}/unlock
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTask billingAccount_conference_serviceName_unlock_POST(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/unlock";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "POST", sb.toString(), null);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Lock the conference room
	 *
	 * REST: POST /telephony/{billingAccount}/conference/{serviceName}/lock
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTask billingAccount_conference_serviceName_lock_POST(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/lock";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "POST", sb.toString(), null);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Change the sound played at the beginning of the conference
	 *
	 * REST: POST /telephony/{billingAccount}/conference/{serviceName}/announceUpload
	 * @param documentId [required] ID of the /me/document file you want to import
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTask billingAccount_conference_serviceName_announceUpload_POST(String billingAccount, String serviceName, String documentId) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/announceUpload";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "documentId", documentId);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Get realtime conference informations
	 *
	 * REST: GET /telephony/{billingAccount}/conference/{serviceName}/informations
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhConferenceInformations billingAccount_conference_serviceName_informations_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/informations";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhConferenceInformations.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/conference/{serviceName}/settings
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhConferenceProperties billingAccount_conference_serviceName_settings_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/settings";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhConferenceProperties.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/conference/{serviceName}/settings
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_conference_serviceName_settings_PUT(String billingAccount, String serviceName, OvhConferenceProperties body) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/settings";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Current participants of the associate conference
	 *
	 * REST: GET /telephony/{billingAccount}/conference/{serviceName}/participants
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_conference_serviceName_participants_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/participants";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Change a participant level of audio transmission
	 *
	 * REST: POST /telephony/{billingAccount}/conference/{serviceName}/participants/{id}/energy
	 * @param value [required] The value of energy level
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTask billingAccount_conference_serviceName_participants_id_energy_POST(String billingAccount, String serviceName, Long id, Long value) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/participants/{id}/energy";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		HashMapo = new HashMap();
		addBody(o, "value", value);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/conference/{serviceName}/participants/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhConferenceParticipants billingAccount_conference_serviceName_participants_id_GET(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/participants/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhConferenceParticipants.class);
	}
	/**
	 * Unmute a participant in your conference room
	 *
	 * REST: POST /telephony/{billingAccount}/conference/{serviceName}/participants/{id}/unmute
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTask billingAccount_conference_serviceName_participants_id_unmute_POST(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/participants/{id}/unmute";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "POST", sb.toString(), null);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Mute a participant in your conference room
	 *
	 * REST: POST /telephony/{billingAccount}/conference/{serviceName}/participants/{id}/mute
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTask billingAccount_conference_serviceName_participants_id_mute_POST(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/participants/{id}/mute";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "POST", sb.toString(), null);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Eject a participant from your conference room
	 *
	 * REST: POST /telephony/{billingAccount}/conference/{serviceName}/participants/{id}/kick
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTask billingAccount_conference_serviceName_participants_id_kick_POST(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/participants/{id}/kick";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "POST", sb.toString(), null);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Make a participant deaf in your conference room
	 *
	 * REST: POST /telephony/{billingAccount}/conference/{serviceName}/participants/{id}/deaf
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTask billingAccount_conference_serviceName_participants_id_deaf_POST(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/participants/{id}/deaf";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "POST", sb.toString(), null);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Make a participant undeaf your conference room
	 *
	 * REST: POST /telephony/{billingAccount}/conference/{serviceName}/participants/{id}/undeaf
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhTask billingAccount_conference_serviceName_participants_id_undeaf_POST(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/participants/{id}/undeaf";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "POST", sb.toString(), null);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * List your past conferences for this number
	 *
	 * REST: GET /telephony/{billingAccount}/conference/{serviceName}/histories
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_conference_serviceName_histories_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/histories";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/conference/{serviceName}/histories/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhConferenceHistory billingAccount_conference_serviceName_histories_id_GET(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/histories/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhConferenceHistory.class);
	}
	/**
	 * List your conference web access
	 *
	 * REST: GET /telephony/{billingAccount}/conference/{serviceName}/webAccess
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_conference_serviceName_webAccess_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/webAccess";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Add a public web access to your conference
	 *
	 * REST: POST /telephony/{billingAccount}/conference/{serviceName}/webAccess
	 * @param type [required] The type of the conference web access : read or write
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhConferenceWebAccess billingAccount_conference_serviceName_webAccess_POST(String billingAccount, String serviceName, OvhConferenceWebAccessTypeEnum type) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/webAccess";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "type", type);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhConferenceWebAccess.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/conference/{serviceName}/webAccess/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public OvhConferenceWebAccess billingAccount_conference_serviceName_webAccess_id_GET(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/webAccess/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhConferenceWebAccess.class);
	}
	/**
	 * Delete a public web access to your conference
	 *
	 * REST: DELETE /telephony/{billingAccount}/conference/{serviceName}/webAccess/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required] Id of the object
	 */
	public void billingAccount_conference_serviceName_webAccess_id_DELETE(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference/{serviceName}/webAccess/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Conferences associated with this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/conference
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_conference_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/conference";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/miniPabx/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhMiniPabx billingAccount_miniPabx_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/miniPabx/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhMiniPabx.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/miniPabx/{serviceName}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_miniPabx_serviceName_PUT(String billingAccount, String serviceName, OvhMiniPabx body) throws IOException {
		String qPath = "/telephony/{billingAccount}/miniPabx/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/miniPabx/{serviceName}/hunting
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhMiniPabxHunting billingAccount_miniPabx_serviceName_hunting_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/miniPabx/{serviceName}/hunting";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhMiniPabxHunting.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/miniPabx/{serviceName}/hunting
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_miniPabx_serviceName_hunting_PUT(String billingAccount, String serviceName, OvhMiniPabxHunting body) throws IOException {
		String qPath = "/telephony/{billingAccount}/miniPabx/{serviceName}/hunting";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Hunting agents
	 *
	 * REST: GET /telephony/{billingAccount}/miniPabx/{serviceName}/hunting/agent
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_miniPabx_serviceName_hunting_agent_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/miniPabx/{serviceName}/hunting/agent";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Create a new agent
	 *
	 * REST: POST /telephony/{billingAccount}/miniPabx/{serviceName}/hunting/agent
	 * @param agentNumber [required] The phone number of the agent
	 * @param position [required] The position in the hunting
	 * @param logged [required] True if the agent is logged
	 * @param noReplyTimer [required] The maxium ringing time
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhEasyMiniPabxHuntingAgent billingAccount_miniPabx_serviceName_hunting_agent_POST(String billingAccount, String serviceName, String agentNumber, Long position, Boolean logged, Long noReplyTimer) throws IOException {
		String qPath = "/telephony/{billingAccount}/miniPabx/{serviceName}/hunting/agent";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "agentNumber", agentNumber);
		addBody(o, "position", position);
		addBody(o, "logged", logged);
		addBody(o, "noReplyTimer", noReplyTimer);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhEasyMiniPabxHuntingAgent.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/miniPabx/{serviceName}/hunting/agent/{agentNumber}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param agentNumber [required] The phone number of the agent
	 */
	public OvhEasyMiniPabxHuntingAgent billingAccount_miniPabx_serviceName_hunting_agent_agentNumber_GET(String billingAccount, String serviceName, String agentNumber) throws IOException {
		String qPath = "/telephony/{billingAccount}/miniPabx/{serviceName}/hunting/agent/{agentNumber}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, agentNumber);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhEasyMiniPabxHuntingAgent.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/miniPabx/{serviceName}/hunting/agent/{agentNumber}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param agentNumber [required] The phone number of the agent
	 */
	public void billingAccount_miniPabx_serviceName_hunting_agent_agentNumber_PUT(String billingAccount, String serviceName, String agentNumber, OvhEasyMiniPabxHuntingAgent body) throws IOException {
		String qPath = "/telephony/{billingAccount}/miniPabx/{serviceName}/hunting/agent/{agentNumber}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, agentNumber);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Delete the agent
	 *
	 * REST: DELETE /telephony/{billingAccount}/miniPabx/{serviceName}/hunting/agent/{agentNumber}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param agentNumber [required] The phone number of the agent
	 */
	public void billingAccount_miniPabx_serviceName_hunting_agent_agentNumber_DELETE(String billingAccount, String serviceName, String agentNumber) throws IOException {
		String qPath = "/telephony/{billingAccount}/miniPabx/{serviceName}/hunting/agent/{agentNumber}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, agentNumber);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/miniPabx/{serviceName}/tones
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTones billingAccount_miniPabx_serviceName_tones_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/miniPabx/{serviceName}/tones";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhTones.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/miniPabx/{serviceName}/tones
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_miniPabx_serviceName_tones_PUT(String billingAccount, String serviceName, OvhTones body) throws IOException {
		String qPath = "/telephony/{billingAccount}/miniPabx/{serviceName}/tones";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Upload new tone file
	 *
	 * REST: POST /telephony/{billingAccount}/miniPabx/{serviceName}/tones/toneUpload
	 * @param url [required]
	 * @param type [required]
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTask billingAccount_miniPabx_serviceName_tones_toneUpload_POST(String billingAccount, String serviceName, String url, OvhTonesTypeEnum type) throws IOException {
		String qPath = "/telephony/{billingAccount}/miniPabx/{serviceName}/tones/toneUpload";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "url", url);
		addBody(o, "type", type);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Miniabx associated with this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/miniPabx
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_miniPabx_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/miniPabx";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t2);
	}
	/**
	 * Get the allowed creditThreshold for this billing account
	 *
	 * REST: GET /telephony/{billingAccount}/allowedCreditThreshold
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_allowedCreditThreshold_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/allowedCreditThreshold";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t8);
	}
	/**
	 * Previous billed consumptions
	 *
	 * REST: GET /telephony/{billingAccount}/historyConsumption
	 * @param billingAccount [required] The name of your billingAccount
	 */
	public ArrayList billingAccount_historyConsumption_GET(String billingAccount) throws IOException {
		String qPath = "/telephony/{billingAccount}/historyConsumption";
		StringBuilder sb = path(qPath, billingAccount);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t7);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/historyConsumption/{date}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param date [required]
	 */
	public OvhHistoryConsumption billingAccount_historyConsumption_date_GET(String billingAccount, java.util.Date date) throws IOException {
		String qPath = "/telephony/{billingAccount}/historyConsumption/{date}";
		StringBuilder sb = path(qPath, billingAccount, date);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhHistoryConsumption.class);
	}
	/**
	 * Previous billed consumption files
	 *
	 * REST: GET /telephony/{billingAccount}/historyConsumption/{date}/file
	 * @param extension [required] Document suffix
	 * @param billingAccount [required] The name of your billingAccount
	 * @param date [required]
	 */
	public OvhPcsFile billingAccount_historyConsumption_date_file_GET(String billingAccount, java.util.Date date, OvhBillDocument extension) throws IOException {
		String qPath = "/telephony/{billingAccount}/historyConsumption/{date}/file";
		StringBuilder sb = path(qPath, billingAccount, date);
		query(sb, "extension", extension);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhPcsFile.class);
	}
	/**
	 * Upload new sound file
	 *
	 * REST: POST /telephony/{billingAccount}/easyHunting/{serviceName}/soundUpload
	 * @param name [required]
	 * @param url [required]
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhTask billingAccount_easyHunting_serviceName_soundUpload_POST(String billingAccount, String serviceName, String name, String url) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/soundUpload";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "name", name);
		addBody(o, "url", url);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhTask.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/easyHunting/{serviceName}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhEasyHunting billingAccount_easyHunting_serviceName_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhEasyHunting.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/easyHunting/{serviceName}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_easyHunting_serviceName_PUT(String billingAccount, String serviceName, OvhEasyHunting body) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Records associated with this PABX
	 *
	 * REST: GET /telephony/{billingAccount}/easyHunting/{serviceName}/records
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_easyHunting_serviceName_records_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/records";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/easyHunting/{serviceName}/records/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required]
	 */
	public OvhOvhPabxRecord billingAccount_easyHunting_serviceName_records_id_GET(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/records/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhOvhPabxRecord.class);
	}
	/**
	 * Delete the given record
	 *
	 * REST: DELETE /telephony/{billingAccount}/easyHunting/{serviceName}/records/{id}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param id [required]
	 */
	public void billingAccount_easyHunting_serviceName_records_id_DELETE(String billingAccount, String serviceName, Long id) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/records/{id}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, id);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhEasyHuntingScreenListsConditionsSettings billingAccount_easyHunting_serviceName_screenListConditions_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhEasyHuntingScreenListsConditionsSettings.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_easyHunting_serviceName_screenListConditions_PUT(String billingAccount, String serviceName, OvhEasyHuntingScreenListsConditionsSettings body) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Screen lists conditions checked when a call is received
	 *
	 * REST: GET /telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions/conditions
	 * @param screenListType [required] Filter the value of screenListType property (=)
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_easyHunting_serviceName_screenListConditions_conditions_GET(String billingAccount, String serviceName, OvhOvhPabxDialplanExtensionConditionScreenListTypeEnum screenListType) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions/conditions";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		query(sb, "screenListType", screenListType);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Create a new screenlist condition for an extension
	 *
	 * REST: POST /telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions/conditions
	 * @param destinationNumber [required] Add a screenlist based on the destination number
	 * @param callerIdNumber [required] Add a screenlist based on the presented caller number
	 * @param screenListType [required] Type of screenlist
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhEasyHuntingScreenListsConditions billingAccount_easyHunting_serviceName_screenListConditions_conditions_POST(String billingAccount, String serviceName, String destinationNumber, String callerIdNumber, OvhOvhPabxDialplanExtensionConditionScreenListTypeEnum screenListType) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions/conditions";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMapo = new HashMap();
		addBody(o, "destinationNumber", destinationNumber);
		addBody(o, "callerIdNumber", callerIdNumber);
		addBody(o, "screenListType", screenListType);
		String resp = exec(qPath, "POST", sb.toString(), o);
		return convertTo(resp, OvhEasyHuntingScreenListsConditions.class);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions/conditions/{conditionId}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param conditionId [required]
	 */
	public OvhEasyHuntingScreenListsConditions billingAccount_easyHunting_serviceName_screenListConditions_conditions_conditionId_GET(String billingAccount, String serviceName, Long conditionId) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions/conditions/{conditionId}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, conditionId);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhEasyHuntingScreenListsConditions.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions/conditions/{conditionId}
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param conditionId [required]
	 */
	public void billingAccount_easyHunting_serviceName_screenListConditions_conditions_conditionId_PUT(String billingAccount, String serviceName, Long conditionId, OvhEasyHuntingScreenListsConditions body) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions/conditions/{conditionId}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, conditionId);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Delete the given condition
	 *
	 * REST: DELETE /telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions/conditions/{conditionId}
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 * @param conditionId [required]
	 */
	public void billingAccount_easyHunting_serviceName_screenListConditions_conditions_conditionId_DELETE(String billingAccount, String serviceName, Long conditionId) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/screenListConditions/conditions/{conditionId}";
		StringBuilder sb = path(qPath, billingAccount, serviceName, conditionId);
		exec(qPath, "DELETE", sb.toString(), null);
	}
	/**
	 * Get this object properties
	 *
	 * REST: GET /telephony/{billingAccount}/easyHunting/{serviceName}/hunting
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhOvhPabxHunting billingAccount_easyHunting_serviceName_hunting_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/hunting";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, OvhOvhPabxHunting.class);
	}
	/**
	 * Alter this object properties
	 *
	 * REST: PUT /telephony/{billingAccount}/easyHunting/{serviceName}/hunting
	 * @param body [required] New object properties
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public void billingAccount_easyHunting_serviceName_hunting_PUT(String billingAccount, String serviceName, OvhOvhPabxHunting body) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/hunting";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		exec(qPath, "PUT", sb.toString(), body);
	}
	/**
	 * Calls agents
	 *
	 * REST: GET /telephony/{billingAccount}/easyHunting/{serviceName}/hunting/agent
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public ArrayList billingAccount_easyHunting_serviceName_hunting_agent_GET(String billingAccount, String serviceName) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/hunting/agent";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		String resp = exec(qPath, "GET", sb.toString(), null);
		return convertTo(resp, t3);
	}
	/**
	 * Create a new agent
	 *
	 * REST: POST /telephony/{billingAccount}/easyHunting/{serviceName}/hunting/agent
	 * @param wrapUpTime [required] The wrap up time (in seconds) after the calls
	 * @param number [required] The number of the agent
	 * @param simultaneousLines [required] The maximum of simultaneous calls that the agent will receive from the hunting
	 * @param status [required] The current status of the agent
	 * @param timeout [required] The waiting timeout (in seconds) before hangup for an assigned called
	 * @param billingAccount [required] The name of your billingAccount
	 * @param serviceName [required]
	 */
	public OvhOvhPabxHuntingAgent billingAccount_easyHunting_serviceName_hunting_agent_POST(String billingAccount, String serviceName, Long wrapUpTime, String number, Long simultaneousLines, OvhOvhPabxHuntingAgentStatusEnum status, Long timeout) throws IOException {
		String qPath = "/telephony/{billingAccount}/easyHunting/{serviceName}/hunting/agent";
		StringBuilder sb = path(qPath, billingAccount, serviceName);
		HashMap