/// <summary>
 /// Get transaction/service pair information This method returns the description for the transaction type, service type and the ts pairs.
 /// </summary>
 /// <exception cref="avalara.comms.rest.v2.Client.ApiException">Thrown when fails to make API call</exception>
 /// <returns>List&lt;TSPairData&gt;</returns>
 public List <TSPairData> ApiV2AfcTspairsGet()
 {
     avalara.comms.rest.v2.Client.ApiResponse <List <TSPairData> > localVarResponse = ApiV2AfcTspairsGetWithHttpInfo();
     return(localVarResponse.Data);
 }
 /// <summary>
 /// Get the tax information (description and category) for a tax type ID This method returns the description for the specified tax type ID. If tax type * is supplied it will return all tax types.
 /// </summary>
 /// <exception cref="avalara.comms.rest.v2.Client.ApiException">Thrown when fails to make API call</exception>
 /// <param name="taxType">Tax type ID for the tax type.</param>
 /// <returns>List&lt;TaxTypeData&gt;</returns>
 public List <TaxTypeData> ApiV2AfcTaxtypeTaxTypeGet(string taxType)
 {
     avalara.comms.rest.v2.Client.ApiResponse <List <TaxTypeData> > localVarResponse = ApiV2AfcTaxtypeTaxTypeGetWithHttpInfo(taxType);
     return(localVarResponse.Data);
 }
        /// <summary>
        /// Get the tax information (description and category) for a tax type ID This method returns the description for the specified tax type ID. If tax type * is supplied it will return all tax types.
        /// </summary>
        /// <exception cref="avalara.comms.rest.v2.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="taxType">Tax type ID for the tax type.</param>
        /// <returns>Task of List&lt;TaxTypeData&gt;</returns>
        public async System.Threading.Tasks.Task <List <TaxTypeData> > ApiV2AfcTaxtypeTaxTypeGetAsync(string taxType)
        {
            avalara.comms.rest.v2.Client.ApiResponse <List <TaxTypeData> > localVarResponse = await ApiV2AfcTaxtypeTaxTypeGetAsyncWithHttpInfo(taxType);

            return(localVarResponse.Data);
        }
 /// <summary>
 /// Retrieves server time, service build version and engine version
 /// </summary>
 /// <exception cref="avalara.comms.rest.v2.Client.ApiException">Thrown when fails to make API call</exception>
 /// <returns>ServiceInfo</returns>
 public ServiceInfo ApiV2AfcServiceinfoGet()
 {
     avalara.comms.rest.v2.Client.ApiResponse <ServiceInfo> localVarResponse = ApiV2AfcServiceinfoGetWithHttpInfo();
     return(localVarResponse.Data);
 }
        /// <summary>
        /// Retrieves server time, service build version and engine version
        /// </summary>
        /// <exception cref="avalara.comms.rest.v2.Client.ApiException">Thrown when fails to make API call</exception>
        /// <returns>Task of ServiceInfo</returns>
        public async System.Threading.Tasks.Task <ServiceInfo> ApiV2AfcServiceinfoGetAsync()
        {
            avalara.comms.rest.v2.Client.ApiResponse <ServiceInfo> localVarResponse = await ApiV2AfcServiceinfoGetAsyncWithHttpInfo();

            return(localVarResponse.Data);
        }
 /// <summary>
 /// Get primary location data associated with a PCode Request will return primary jurisdiction associated with the PCode
 /// </summary>
 /// <exception cref="avalara.comms.rest.v2.Client.ApiException">Thrown when fails to make API call</exception>
 /// <param name="pCode"></param>
 /// <returns>PCodeLookupResult</returns>
 public PCodeLookupResult ApiV2AfcPrimaryPCodeGet(int pCode)
 {
     avalara.comms.rest.v2.Client.ApiResponse <PCodeLookupResult> localVarResponse = ApiV2AfcPrimaryPCodeGetWithHttpInfo(pCode);
     return(localVarResponse.Data);
 }
        /// <summary>
        /// Get primary location data associated with a PCode Request will return primary jurisdiction associated with the PCode
        /// </summary>
        /// <exception cref="avalara.comms.rest.v2.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="pCode"></param>
        /// <returns>Task of PCodeLookupResult</returns>
        public async System.Threading.Tasks.Task <PCodeLookupResult> ApiV2AfcPrimaryPCodeGetAsync(int pCode)
        {
            avalara.comms.rest.v2.Client.ApiResponse <PCodeLookupResult> localVarResponse = await ApiV2AfcPrimaryPCodeGetAsyncWithHttpInfo(pCode);

            return(localVarResponse.Data);
        }
        /// <summary>
        /// Get transaction/service pair information This method returns the description for the transaction type, service type and the ts pairs.
        /// </summary>
        /// <exception cref="avalara.comms.rest.v2.Client.ApiException">Thrown when fails to make API call</exception>
        /// <returns>Task of List&lt;TSPairData&gt;</returns>
        public async System.Threading.Tasks.Task <List <TSPairData> > ApiV2AfcTspairsGetAsync()
        {
            avalara.comms.rest.v2.Client.ApiResponse <List <TSPairData> > localVarResponse = await ApiV2AfcTspairsGetAsyncWithHttpInfo();

            return(localVarResponse.Data);
        }
        /// <summary>
        /// Commits or un-commits a document code.
        /// </summary>
        /// <exception cref="avalara.comms.rest.v2.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="commitRequest">CommitRequest object containing document code and optional field data to override in reports. (optional)</param>
        /// <returns>Task of CommitResponse</returns>
        public async System.Threading.Tasks.Task <CommitResponse> ApiV2AfcCommitPostAsync(CommitRequest commitRequest = default(CommitRequest))
        {
            avalara.comms.rest.v2.Client.ApiResponse <CommitResponse> localVarResponse = await ApiV2AfcCommitPostAsyncWithHttpInfo(commitRequest);

            return(localVarResponse.Data);
        }
 /// <summary>
 /// Commits or un-commits a document code.
 /// </summary>
 /// <exception cref="avalara.comms.rest.v2.Client.ApiException">Thrown when fails to make API call</exception>
 /// <param name="commitRequest">CommitRequest object containing document code and optional field data to override in reports. (optional)</param>
 /// <returns>CommitResponse</returns>
 public CommitResponse ApiV2AfcCommitPost(CommitRequest commitRequest = default(CommitRequest))
 {
     avalara.comms.rest.v2.Client.ApiResponse <CommitResponse> localVarResponse = ApiV2AfcCommitPostWithHttpInfo(commitRequest);
     return(localVarResponse.Data);
 }
        /// <summary>
        /// Retrieves one or more profiles with associated settings and configurable items
        /// </summary>
        /// <exception cref="avalara.comms.rest.v2.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="requestedClientId">Client id associated with profile(s) to be fetched  Null value will use client id submitting the request or default client id as applicable. (optional)</param>
        /// <param name="requestedProfileId">Configuration profile id to be fetched  Use 0 to indicate all profiles  Null value will use profile id from request or 0 if not set. (optional)</param>
        /// <param name="itemType">Item Type  Examples:    Configuration, Bundle, Exclusion, Override, All (optional)</param>
        /// <returns>Task of TaxCalculationSettingsResponse</returns>
        public async System.Threading.Tasks.Task <TaxCalculationSettingsResponse> ApiV2ProfilesGetProfilesGetAsync(int?requestedClientId = default(int?), int?requestedProfileId = default(int?), TaxCalculationSettingTypes itemType = default(TaxCalculationSettingTypes))
        {
            avalara.comms.rest.v2.Client.ApiResponse <TaxCalculationSettingsResponse> localVarResponse = await ApiV2ProfilesGetProfilesGetAsyncWithHttpInfo(requestedClientId, requestedProfileId, itemType);

            return(localVarResponse.Data);
        }
 /// <summary>
 /// Retrieves one or more profiles with associated settings and configurable items
 /// </summary>
 /// <exception cref="avalara.comms.rest.v2.Client.ApiException">Thrown when fails to make API call</exception>
 /// <param name="requestedClientId">Client id associated with profile(s) to be fetched  Null value will use client id submitting the request or default client id as applicable. (optional)</param>
 /// <param name="requestedProfileId">Configuration profile id to be fetched  Use 0 to indicate all profiles  Null value will use profile id from request or 0 if not set. (optional)</param>
 /// <param name="itemType">Item Type  Examples:    Configuration, Bundle, Exclusion, Override, All (optional)</param>
 /// <returns>TaxCalculationSettingsResponse</returns>
 public TaxCalculationSettingsResponse ApiV2ProfilesGetProfilesGet(int?requestedClientId = default(int?), int?requestedProfileId = default(int?), TaxCalculationSettingTypes itemType = default(TaxCalculationSettingTypes))
 {
     avalara.comms.rest.v2.Client.ApiResponse <TaxCalculationSettingsResponse> localVarResponse = ApiV2ProfilesGetProfilesGetWithHttpInfo(requestedClientId, requestedProfileId, itemType);
     return(localVarResponse.Data);
 }