docs: def order_block_volume(self, storage_type, location, size, os_type,
                             iops=None, tier_level=None, snapshot_size=None,
                             service_offering='storage_as_a_service',
                             hourly_billing_flag=False):
          """Places an order for a block volume.
  
          :param storage_type: 'performance' or 'endurance'
          :param location: Datacenter in which to order iSCSI volume
          :param size: Size of the desired volume, in GB
          :param os_type: OS Type to use for volume alignment, see help for list
          :param iops: Number of IOPs for a "Performance" order
          :param tier_level: Tier level to use for an "Endurance" order
          :param snapshot_size: The size of optional snapshot space,
              if snapshot space should also be ordered (None if not ordered)
          :param service_offering: Requested offering package to use in the order
              ('storage_as_a_service', 'enterprise', or 'performance')
          :param hourly_billing_flag: Billing type, monthly (False)
              or hourly (True), default to monthly.
          """
          order = storage_utils.prepare_volume_order_object(
              self, storage_type, location, size, iops, tier_level,
              snapshot_size, service_offering, 'block', hourly_billing_flag
          )
  
          order['osFormatType'] = {'keyName': os_type}
  
          return self.client.call('Product_Order', 'placeOrder', order)