# urbanairship changelog

## 7.2.0

- Adds new fields to the SMS class for enhanced opt-in management:
  - `opted_out`: Optional datetime for tracking when users opt out of SMS messages
  - `opt_in_mode`: Optional string ("classic" or "double") for opt-in mode configuration
  - `properties`: Optional dict for event properties used with double opt-in
- Updates SMS payload structure to properly handle different API contexts:
  - Registration payloads exclude opt_in_mode, properties, and opted_out
  - Update payloads include opted_out but exclude opt_in_mode and properties
  - Create-and-send audience includes all fields including ua_opted_out

## 7.1.1

- Fixes a bug where the EmailAttachment class was not properly encoding file data.

## 7.1.0

- Adds file_data argument to the EmailAttachment class for passing stringified file data.

## 7.0.0

- Adds package type annotations
- Adds ability to specify a custom base url when creating client
- Updates various dependencies and build process
- Removes deprecated client classes and create functions. See documentation for new approach.

## 6.3.0

- Adds Support for OAuth2 Authentication
- Adds new client classes for BasicAuth, BearerTokenAuth, and OAuth
- Deprecates the Airship client class in favor of the new client classes

## 6.2.0

- Adds Support for iOS Live Activity and Android Live Update
- Adds new class `ConnectionFailure`
- Adds `bypass_holdout_groups` parameter for push options

## 6.1.0

- Adds Support for Tag Lists using the `urbanairship.TagList` class

## 6.0.0

- Removes support for Python 2. New minimum Python versions is 3.6
- Removes support for location APIs
- Removes LocationFinder class
- Removes location-based audience selectors: location, recent_date, absolute_date
- Adds `token` property to `urbanairship.Airship` to support bearer token API authentication
- Adds optional `retries` property to urbanairship.Airship to specify number of times to retry failed API requests
- Adds CustomEvent class for sending custom events
- Adds SmsCustomResponse class
- Adds type annotations for function and method signatures

## 5.7.0

- Adds Custom Event Reports
- Adds Experiments Overview and Variant Reports
- Adds Scheduled Experiment Listing
- Adds Web Response Reports
- Adds opt_in_mode and properties to Email class
- Adds email attachments support in the EmailAttachment class
- Adds mms audience override
- Adds shorten_links support to sms and mms sends
- Adds support for SMS keyword interactions in the KeywordInteraction class
- Adds update method to Email class
- Adds update method to Sms class
- Adds support for push validation
- Adds email association and disassociation to NamedUser class
- Adds Named User uninstall, attributes, and update methods
- Adds message_center_delete class method to Push class
- Adds schedule_exclusion
- Adds recurring_schedule and ScheduledPush.recurring
- Adds pause and resume methods to ScheduledPush for recurring schedules
- Adds validate method to ScheduledPush
- Adds support for push and scheduled push localization
- Adds SubscriptionList class for subscribing and unsubscribing audiences
- Adds subscription_list and static_list audience selectors
- Adds AttributeList class with methods for create, upload, get_errors, and list
- Adds download class method to StaticList class

---

## 5.6.0

- Adds iOS platform options for: interruption_level, relevance_score, and target_content_id
- Adds amazon platform options for: notification_tag, notification_channel, icon, icon_color
- Adds audience selectors for date_attribute, text_attribute, and number_attribute
- Adds attributes, device_attributes, named_user_id, commercial_opted_in, commercial_opted_out, transactional_opted_in, transactional_opted_out to channel look up and listing.
- Adds support for setting attributes on channel ids and named user ids
- Adds support for removing attributes from channel ids and named user ids
- Deprecates location-based audience selectors: location, recent_date, absolute_date. These will be removed in version 6.0
- Deprecates class LocationFinder. This will be removed in version 6.0
- Deprecates support for Python 2. Support will be removed in version 6.0

---

## 5.5.1

- Adds app key to user agent string

---

## 5.5.0

- Adds Tag Groups to audience object.

---

## 5.4.1

- Fixes an issue where segment creation function was throwing an error after creating the segment.

---

## 5.4.0

- Adds request and response timeout parameter to main Airship class.

---

## 5.3.3

- Fixes an issue where Experiments Validate payload was not being built properly.

---

## 5.3.2

- Fixes an issue where Experiments Validate endpoint URL was not being built properly.

---

## 5.3.1

- Fixes an issue where SegmentsList URL was not being built properly.

---

## 5.3.0

- Added support for Experiments (a/b testing)
- Added support for Airship's European Union Cloud Site based projects
- Added ability to pass a channel_id parameter to start channel listing at a given channel_id
- Modified the documentation for Pipeline objects to reflect proper parameters

---

## 5.2.0

- Added Create and Send support for SMS, Email and Open Channels
- Added support for scheduled Create and Send
- Added support for Create and Send to inline templates
- Deprecated device type 'all'. This type will be removed in version 6.0.0
- Removed support for python 3.4.x
- Added support for python 3.7.x

---

## 5.1.1

- Updated Pipeline's timing object for delay to handle seconds

---

## 5.1.0

- Added support for a scheduled push to a personalization template

---

## 5.0.1

- NOTE: This is in support of a breaking change to the email registration API.
  Version 5.0.0 will not be able to register email channel ids.
  Please upgrade.
- Added new commercial and transactional opt-in and opt-out date fields for
  registration.
- Removed opt_in_level field for email registration.

---

## 5.0.0

- Added support for Push Time Send Optimization
- Added support for iOS 12 overrides
- Added support for push to Sms
- Added support for Sms channel registration, opt-out and uninstall
- Added support for Sms channel lookup
- Added support for email channel registration
- Added support for email channel uninstall
- Added support for email channel tag add, remove and set
- Added validation for key and secrets
- Added tests for error responses
- Removed support for Python 3.3.x
- Removed previously deprecated Tag, ListTag, BatchTag and DeleteTag objects

---

## 4.0.1

- Added conditional test to core.py to fix scheduled url issue

---

## 4.0.0

- Added Automation API support
- Updated Open Channel tag actions
- Removed Feedback API
- Renamed response_statistics.py to reports.py

---

## 3.1.0

- Added support for Campaigns
- Added support for uninstalling an Open Channel

---

## 3.0.1

- Fixed Web Notify require_interaction field name

---

## 3.0.0

- Added support for Open Channels
  - Create and update open channels
  - Push to open channels
  - Open channel platform overrides
- Templates API support
- Added Android platform overrides for Android O
- Added new platform overrides for Web Notify
- Added new properties to the ChannelInfo object
- Fix to actually use ChannelInfo and DeviceInfo objects for listing devices,
  including Python datetimes for date/time fields
- Significant usage changes to channel/device listing, lookup, and feedback
- Fix to handle non-JSON responses gracefully
- Fix Travis yml to remove Python 2.6 check (support removed in 2.0.0)
- Various docs fixes and updates
- Added templates for pull requests and issues, contribution information
- Now supporting and testing for Python 3.5 and 3.6 compatibility

---

## 2.0.0

- Added support for Web Notify
  - Web platform override
  - Push to channel
- Added support for web device type
- Added support for optional iOS 10 extra:
  - Collapse ID
- Removed Blackberry and MPNS support
- Added logging enhancement

---

## 1.0.0

- Added support for In-App Messaging.
- Added support for optional iOS 10 extras including:
  - Mutable content
  - Subtitle
  - Media attachment

---

## 0.8.1

- Added missing module to the required dependencies.
- Updated README information for version 8.

---

## 0.8.0

- Added support for reports including:
  - Individual push response
  - Devices
  - Push
  - Response report
  - Response listing
  - App opens
  - Time in app
  - Opt-in
  - Opt-out
- Added support for channel tags
- Deprecated previous tags functionality including:
  - Tag
  - TagList
  - DeleteTag
  - BatchTag
- Added support for static lists
- Fixed issue with handling missing/mis-formatted date-times in device lookups
- Removed per push detail report functionality, as those APIs are no longer recommended.

---

## 0.7.4

- Fix missing reports module in package

---

## 0.7.3

- Added support for named user API
  - Associate a channel id with a named user
  - Disassociate a channel id with a named user
  - Look up information for a named user
  - Add, remove, and set tags to a named user
- Added support for per-push reporting
  - Lookup analytics details for push IDs
  - Lookup time series data for a push ID with precision and range
- Added support for Android wearable key
- Added support for Apple Watch title and category keys

---

## 0.7.2

- Added support for segments API
  - List all segments
  - Lookup single segment information
  - Create new segment
  - Modify existing segment
  - Delete an existing segment
- Added support for Channel Uninstall API
- Added support for interactive notifications
- Added support for the category field
- Added support for icons and options parameters for the rich push object

---

## 0.7.1

- Version bump for packaging fix

---

## 0.7.0

- Added Python 3 compatibility
- Removed support for v1 endpoints:
  - /push/batch/
  - /push/broadcast/
  - /airmail/send/
  - /airmail/send/broadcast
- Removed device token registration
- Moved support from v1 to v3 for:
  - Sending to device tokens and apids
  - Device token and apid lookup and listing
  - Blackberry pin lookup
- Added support for sending to channels
- Added channels lookup and listing
- Added support for amazon device type
- Added push to local time
- Added actions
- Added support for the tag api:
  - Tag listing
  - Adding and removing devices from tags
  - Deleting tags
  - Tag batch modification
- Added support for expiry/TTL
- Improved date parsing in feedback response
- Updated docs

---

## 0.6.3

- added extras to Rich Push message creation
- removed deprecated last_seen location argument
- fixed bug that didn't allow iOS alerts to be dictionaries

---

## 0.6.2

- added CHANGELOG
- fixed doc typo
- aligned version tag and release
- no code changes from 0.6.1
