# Create a new persistent server i.e. use a bootable volume instead of an image
#
# ==== Parameters
# * name<~String> - Name of server
# * flavor_id<~Integer> - Id of flavor for server
# * block_device_mapping<~Array>: Use bootable volumes to create persistent instances
# * <~Hash>:
# * 'volume_size'<~String> - Size of the volume. Ignored, and automatically picked up from the volume
# * 'volume_id'<~String> - Id of the bootable volume to use
# * 'delete_on_termination'<~String> - Setting this to '1' (True) means that the volume gets deleted when the instance is killed. Set it to '0' to preserve the volume.
# * 'device_name'<~String> - Block device name e.g. "vda"
# * options<~Hash>:
# * 'metadata'<~Hash> - Up to 5 key value pairs containing 255 bytes of info
# * 'min_count'<~Integer> - Number of servers to create. Defaults to 1.
# * 'max_count'<~Integer> - Max. number of servers to create. Defaults to being equal to min_count.
# * 'key_name'<~String> - Name of keypair to be used
# * 'security_groups'<~Array> - one or more security groups to be used
# * 'personality'<~Array>: Up to 5 files to customize server
# * 'file'<~Hash>:
# * 'contents'<~String> - Contents of file (10kb total of contents)
# * 'path'<~String> - Path to file (255 bytes total of path strings)
# * 'accessIPv4'<~String> - IPv4 IP address
# * 'accessIPv6'<~String> - IPv6 IP address
#
# ==== Returns
# * response<~Excon::Response>:
# * body<~Hash>:
# * 'server'<~Hash>:
# * 'addresses'<~Hash>:
# * 'private'<~Array> - private and public fixed and floating ip addresses
# * 'flavor'<~Hash>
# * 'id'<~String> - id of the flavor
# * 'links'<~Array> - array of flavor links
# * 'id'<~Integer> - id of server
# * 'links'<~Array> - array of server links
# * 'hostId'<~String>
# * 'metadata'<~Hash> - metadata
# * 'name'<~String> - name of server
# * 'accessIPv4'<~String> - IPv4 ip address
# * 'accessIPv6'<~String> - IPv6 ip address
# * 'progress'<~Integer> - progress through current status
# * 'status'<~String> - current server status
# * 'created'<~String> - created date time stamp
# * 'updated'<~String> - updated date time stamp
# * 'user_id'<~String> - user id
# * 'tenant_id'<~String> - tenant id
# * 'uuid'<~String> - uuid of the server
# * 'config_drive'<~String> - config drive
# * 'security_groups'<~Array of Hash>
# * 'id'<~Integer> - id of the security group
# * 'name'<~String> - name of the security group
# * 'links'<~Array> - array of security group links
# * 'key_name'<~String> - name of the keypair
# * 'adminPass'<~String> - admin password for server