1.7
---

- Add ``editable`` parameter to :meth:`atomx.Atomx.report`.
- Add ``dsp`` reporting scope.
- Add ``daterange`` parameter to :meth:`atomx.Atomx.report`.
- When accessing a model attribute, attributes that are atomx models will now
  automatically returned as :class:`atomx.models.AtomxModel` instead of
  leaving them as `dict`.
- :meth:`atomx.models.AtomxModel.reload` takes kwargs parameter
- :meth:`atomx.Atomx.delete` can take a `atomx.models` instance as argument
- Add new models:

  * :class:`atomx.models.Dsp`
  * :class:`atomx.models.Ssp`
  * :class:`atomx.models.SspSuspicious`
  * :class:`atomx.models.SspResultType`


1.6
---

- :meth:`atomx.Atomx.login` takes ``totp`` parameter for users that have 2-factor auth enabled.
- :meth:`atomx.Atomx.search` takes ``index`` parameter to only search specific models.
- Add support to remove models from the API. See :meth:`atomx.models.AtomxModel.delete`.
- Add :meth:`atomx.Atomx.remove`.
- Add ``save`` parameter to :meth:`atomx.Atomx.report`.
- Add new models:

  * :class:`atomx.models.App`
  * :class:`atomx.models.Appstore`
  * :class:`atomx.models.City`
  * :class:`atomx.models.Dma`
  * :class:`atomx.models.PriceModel`
  * :class:`atomx.models.Timezone`
  * :class:`atomx.models.Zipcode`


1.5
---

- :meth:`atomx.Atomx.report` takes ``name`` parameter to name reports
- remove ``network`` scope in :meth:`atomx.Atomx.report` and add
  ``network_managed``, ``network_buy``, ``network_sell``
- Add new models:

  * :class:`atomx.models.AccountManager` (alias for `User`)
  * :class:`atomx.models.CampaignDebugReason`
  * :class:`atomx.models.CreativeAttribute`
  * :class:`atomx.models.PlacementType`
  * :class:`atomx.models.Visibility`

- Add :meth:`atomx.models.Report.save` to edit ``name`` and ``emails``
  of a :class:`atomx.models.Report`
- :meth:`atomx.Atomx.get` also accepts a model class or instance as resource argument.
  E.g.: ``atomx_api.get(atomx.models.Advertiser)`` or ``atomx_api.get(atomx.models.Advertiser(42))``
- Add :mod:`pickle` support for :mod:`atomx.models`.
- Save HTTP headers in :attr:`atomx.Atomx.last_response`.
- Add history support. :meth:`atomx.models.AtomxModel.history`.
- Use api version 3::

  * Fast reporting. No more polling if reports are ready.
  * Use authentication token in HTTP header instead of cookies.
  * Model and attribute changes


1.4
---

- Change default API version to `v2`
- If :meth:`atomx.Atomx.post` returns a list, auto-convert list of objects
  to a list of :mod:`atomx.models` models. (Useful for `POST` to the `/domains` endpoint)
- Add :class:`atomx.models.ScheduledReport`
- :meth:`atomx.Atomx.report` accepts ``when`` and ``interval`` to create a
  :class:`atomx.models.ScheduledReport`


1.3
---

- Add :meth:`atomx.Atomx.delete` to send a ``HTTP DELETE`` request to the api
- :meth:`atomx.Atomx.get` and :meth:`atomx.Atomx.delete` accept non-keyword arguments
  that are used to compute the final resource path
- Add `emails` parameter to :meth:`atomx.Atomx.report`
- Model attributes that are dates get automatically converted to a python :mod:`datetime`
- When saving a model, dates, sets and decimals get automatically converted
  to there json counterpart
- Add `save_response` parameter to :class:`atomx.Atomx` to save the response meta data
  of the last api call


1.2
---

- You can now remove model attributes with `del`
- Add :meth:`atomx.models.Report.csv` property that returns the report content as a list
- Save logged in user as `user` property to :class:`atomx.Atomx`
- Add network reports
- Try to determine report scope from user access rights if no scope was specified


1.1
---

- Fix: setup.py not working under some environments (`open` used wrong codec)
- Add SellerProfile model
- Add `offset` parameter to :meth:`atomx.models.Report.get`


1.0
---

- First release
