4.1.1

    * Fixes to work with Click v5

    * Re-adds `--no-public` option to only provision private interfaces with servers via `slcli server create`

    * Removes non-functional `--vlan-public` and `--vlan-private` from `slcli server create`

    * VSManager.wait_for_ready will now behave as it is documented to behave.

4.1.0

    * Adds a shell which provides a shell interface for `slcli`. This is available by using `slcli shell`

    * `slcli vs create` and `slcli server create` will now prompt for missing required options

    * Fixes `slcli firewall add` command

    * Handles case where `slcli vs detail` and `slcli server detail` was causing an error when trying to display the creator

    * Fixes VSManager.verify_create_instance() with tags (and, in turn, `slcli vs create --test` with tags)

    * Fixes `vs resume` command

    * Updates hardware ordering to deal with location-specific prices

    * Fixes several description errors in the CLI

    * Running `vs edit` without a tag option will no longer remove all tags

    * Adds editing of hardware tags

4.0.4

    * Fixes bug with pulling the userData property for the virtual server detail

    * Fixes a class of bugs invloving unicode from the API

4.0.3

    * Fixes bug with `slcli vs ready` command

    * Fixes bug with `slcli loadbal service-add` command

    * Fixes bug with `slcli vlan list` with vlans that don't have a datacenter

    * Improves validation of virtual server and hardware create commands

4.0.2

    * Fixes a bug that breaks user confirmation prompts

    * Fixes general issue with sorting on certain row types in the CLI

    * Fixes image capture for Windows guests


4.0.1

    * Fixes bug in `sl setup` command not properly defaulting to current values.

    * Fixes bug where turning off compression headers would still send compression headers.

    * Reverts to using ids over global identifiers for `sl vs list` and `sl server list`.


4.0.0

    * Because there are many changes between version 3 and version 4, it is strongly recommend to pin the version of the SoftLayer python bindings as soon as you can in order to prevent unintentional breakage when upgrading. To keep yourself on version 3, you can use this directive: softlayer>=3,<4. That can be used with pip (pip install softlayer>=3,<4), requirements in your setup.py and/or in your requirements.txt file.

    * CLI: The command is renamed from `sl` to `slcli` to avoid package conflicts.

    * CLI: Global options now need to be specified right after the `slcli` command. For example, you would now use `slcli --format=raw list` over `slcli vs list --format=raw`. This is a change for the following options:
        * --format
        * -c or --config
        * --debug
        * --proxy
        * -y or --really
        * --version

    * API: The hardware manager has a significant update to how place_order() works. It will now only support the fast server provisioning package which has presets for options like CPU, Memory and disk.

    * API: The client transport is now pluggable. If you want to add extra logging or accounting, you can now subclass or wrap softlayer.transports.XmlRpcTransport in order to do so. A good example of that is done with softlayer.transports.TimingTransport.

    * API: Removed deprecated SoftLayer.CCIManager.

    * API: Adds virtual server rescue command to SoftLayer.VSManager

    * API+CLI: Adds ability to import virtual images from a given URI. The API only supports importing from a swift account using 'swift://'. For more details, see http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest_Block_Device_Template_Group/createFromExternalSource.

    * CLI: A `--fixtures` global flag was added to pull from fixture data instead of the API. This is useful for discovery, demonstration and testing purposes.

    * CLI: A `--verbose` or `-v` flag was added to eventually replace `--debug`. To make a command more verbose, simply add more `-v` flags. For example `sl -vvv vs list` will be the most verbose and show everything down to request/response tracing.

    * CLI: Significant changes were done to the CLI argument parsing. Docopt was dropped in favor of click. Therefore, some subtle differences which aren't documented here may exist.

    * CLI: Credentials can now be requested using `sl vs credentials <identifier>`, `sl hardware credentials <identifier>` and `sl nas credentials <identifier>` for virtual servers, hardware servers and NAS accounts respectively.

    * CLI: Adds virtual server rescue command, `sl vs rescue <identifier>`


3.3.0

    * CLI+API: Load balancer support

    * CLI: More detail added to the `sl image detail` and `sl image list` commands

    * CLI: Adds command to import DNS entries from BIND zone files

    * CLI+API: Adds support for booting into rescue images for virtual servers and hardware

    * API: Adds ability to order virtual and hardare servers from a quote to the ordering manager

    * CLI: Fixes bug with `sl server list-chassis` and `sl server list-chassis`

    * API: Restructure of the way custom authentication can be plugged in the API client

    * Several other bug fixes

3.2.0

    * CLI+API: Added firewall manager and CLI module

    * CLI+API: Added iscsi manager and CLI module

    * API: Added ability to create multiple virtual servers at once to VSManager

    * API: Added OrderingManager. Remove hard-coded price IDs

    * Fixed several small bugs

3.1.0

    * CLI+API: Added CDN manager and CLI module

    * CLI+API: Added ticket manager and CLI module

    * CLI+API: Added image manager and improves image CLI module

    * CLI+API: Added the ability to specify a proxy URL for API bindings and the CLI

    * API: six is now used to provide support for Python 2 and Python 3 with the same source

    * CLI+API: Added ability to resize a virtual machine

    * CLI+API: Implemented product name changes in accordance with SoftLayer's new product names. Existing managers should continue to work as before. Minor CLI changes were necessary.

    * CLI+API: Added firewall manager and CLI module

    * CLI+API: Added load balancer manager and CLI module

    * Many bug fixes and minor suggested improvements


3.0.2

    * CLI+API: Simplified object mask reformatting and added support for more complex masks.

    * CLI: Fixed the sl bmc create --network argument.

    * CLI+API: Improved output of the message queue feature and fixed some minor bugs.

    * CLI: Fixed an error when using --test and ordering a non-private subnet.

    * API: Fix to prevent double counting results in summary_by_datacenter().

    * CLI+API: Added IPMI IP address to hardware details.

    * CLI: Added support for ordering multiple disks when creating a CCI.

    * API: Added flag to disable compression on HTTP requests.

    * CLI: Added CIDR information to subnet displays.

3.0.1

    * CLI: Fixed an error message about pricing information that appeared when ordering a new private subnet.

    * CLI+API: Added ability to specify SSH keys when reloading CCIs and servers.

3.0.0

    * Many bug fixes and consistency improvements

    * API: Removes old API client interfaces which have been deprecated in the v2. See link for more details: https://softlayer-api-python-client.readthedocs.org/en/latest/api/client/#backwards-compatibility

    * CLI+API: Improved dedicated server ordering. Adds power management for hardware servers: power-on, power-off, power-cycle, reboot

    * CLI+API: Adds a networking manager and adds several network-related CLI modules. This includes the ability to:

        * list, create, cancel and assign global IPs

        * list, create, cancel and detail subnets. Also has the ability to lookup details about an IP address with 'sl subnet lookup'

        * list, detail VLANs

        * show and edit RWhois data

    * CLI+API: Adds SoftLayer Message Queue Service bindings (as a manager) and a CLI counterpart. With this you can interact with existing message queue accounts

    * CLI+API: Ability to manage SSH Keys with a manager and a CLI module

    * CLI+API: Adds the ability to create CCIs with the following options: metadata, post-install script, SSH key

    * CLI: Adds templating for creating CCIs and hardware nodes which can be used to create more CCIs and hardware with the same settings

    * CLI+API: Adds the ability to create hardware servers with a default SSH key

    * CLI: Adds a --debug option to print out debugging information. --debug=3 is the highest log level which prints full HTTP request/responses including the body

    * CLI: The commands in the main help are now organized into categories


2.3.0

    * Several bug fixes and improvements

    * Removed Python 2.5 support. Some stuff MIGHT work with 2.5 but it is no longer tested

    * API: Refactored managers into their own module to not clutter the top level

    * CLI+API: Added much more hardware support: Filters for hardware listing, dedicated server/bare metal cloud ordering, hardware cancellation

    * CLI+API: Added DNS Zone filtering (server side)

    * CLI+API: Added Post Install script support for CCIs and hardware

    * CLI: Added Message queue functionality

    * CLI: Added --debug option to CLI commands

    * API: Added more logging

    * API: Added token-based auth so you can use the API bindings with your username/password if you want. (It's still highly recommended to use your API key instead of your password)


2.2.0

    * Consistency changes/bug fixes

    * Added sphinx documentation. See it here: https://softlayer-api-python-client.readthedocs.org

    * CCI: Adds Support for Additional Disks

    * CCI: Adds a way to block until transactions are done on a CCI

    * CLI: For most CCI commands, you can specify id, hostname, private ip or public ip as <identifier>

    * CLI: Adds the ability to filter list results for CCIs

    * API: for large result sets, requests can now be chunked into smaller batches on the server side. Using service.iter_call('getObjects', ...) or service.getObjects(..., iter=True) will return a generator regardless of the results returned. offset and limit can be passed in like normal. An additional named parameter of 'chunk' is used to limit the number of items coming back in a single request, defaults to 100
