module AvaTax
class Client
module DataSources
# Create and store new datasources for the respective companies.
#
# Create one or more datasource objects.
#
# ### Security Policies
#
# * This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
# * This API depends on the following active services:*Required* (all): AvaTaxPro, BasicReturns.
# Swagger Name: AvaTaxClient
# @param companyId [Integer] The id of the company you which to create the datasources
# @param model [DataSourceModel[]]
# @return [DataSourceModel[]]
def create_data_sources(companyId, model) path = "/api/v2/companies/#{companyId}/datasources"
post(path, model, {}, AvaTax::VERSION) end
# Delete a datasource by datasource id for a company.
#
# Marks the existing datasource for a company as deleted.
#
# ### Security Policies
#
# * This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
# * This API depends on the following active services:*Required* (all): AvaTaxPro, BasicReturns.
# Swagger Name: AvaTaxClient
# @param companyId [Integer] The id of the company the datasource belongs to.
# @param id [Integer] The id of the datasource you wish to delete.
# @return [ErrorDetail[]]
def delete_data_source(companyId, id) path = "/api/v2/companies/#{companyId}/datasources/#{id}"
delete(path, {}, AvaTax::VERSION) end
# Get data source by data source id
#
# Retrieve the data source by its unique ID number.
#
# ### Security Policies
#
# * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
# * This API depends on the following active services:*Required* (all): AvaTaxPro, BasicReturns.
# Swagger Name: AvaTaxClient
# @param companyId [Integer]
# @param id [Integer] data source id
# @return [Object]
def get_data_source_by_id(companyId, id) path = "/api/v2/companies/#{companyId}/datasources/#{id}"
get(path, {}, AvaTax::VERSION) end
# Retrieve all datasources for this company
#
# Gets multiple datasource objects for a given company.
#
# ### Security Policies
#
# * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
# * This API depends on the following active services:*Required* (all): AvaTaxPro, BasicReturns.
# Swagger Name: AvaTaxClient
# @param companyId [Integer] The id of the company you wish to retrieve the datasources.
# @param filter [String] A filter statement to identify specific records to retrieve. For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).
*Not filterable:* isEnabled, isSynced, isAuthorized, name, externalState
# @param top [Integer] If nonzero, return no more than this number of results. Used with `$skip` to provide pagination for large datasets. Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records.
# @param skip [Integer] If nonzero, skip this number of results before returning data. Used with `$top` to provide pagination for large datasets.
# @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
# @return [FetchResult]
def list_data_sources(companyId, options={}) path = "/api/v2/companies/#{companyId}/datasources"
get(path, options, AvaTax::VERSION) end
# Retrieve all datasources
#
# Get multiple datasource objects across all companies.
#
# Search for specific objects using the criteria in the `$filter` parameter; full documentation is available on [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/) .
# Paginate your results using the `$top`, `$skip`, and `$orderby` parameters.
#
# ### Security Policies
#
# * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, ECMAccountUser, ECMCompanyUser, FirmAdmin, FirmUser, ProStoresOperator, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser, TreasuryAdmin, TreasuryUser.
# * This API depends on the following active services:*Required* (all): AvaTaxPro, BasicReturns.
# Swagger Name: AvaTaxClient
# @param filter [String] A filter statement to identify specific records to retrieve. For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).
*Not filterable:* isEnabled, isSynced, isAuthorized, name, externalState
# @param top [Integer] If nonzero, return no more than this number of results. Used with `$skip` to provide pagination for large datasets. Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records.
# @param skip [Integer] If nonzero, skip this number of results before returning data. Used with `$top` to provide pagination for large datasets.
# @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
# @return [FetchResult]
def query_data_sources(options={}) path = "/api/v2/datasources"
get(path, options, AvaTax::VERSION) end
# Update a datasource identified by id for a company
#
# Updates a datasource for a company.
#
# ### Security Policies
#
# * This API requires one of the following user roles: AccountAdmin, BatchServiceAdmin, CompanyAdmin, CSPTester, FirmAdmin, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
# * This API depends on the following active services:*Required* (all): AvaTaxPro, BasicReturns.
# Swagger Name: AvaTaxClient
# @param companyId [Integer] The id of the company the datasource belongs to.
# @param id [Integer] The id of the datasource you wish to delete.
# @param model [Object]
# @return [Object]
def update_data_source(companyId, id, model) path = "/api/v2/companies/#{companyId}/datasources/#{id}"
put(path, model, {}, AvaTax::VERSION) end
end
end
end