code: def order_duplicate_volume(self, origin_volume_id, origin_snapshot_id=None,
                                 duplicate_size=None, duplicate_iops=None,
                                 duplicate_tier_level=None,
                                 duplicate_snapshot_size=None,
                                 hourly_billing_flag=False):
          
  
          block_mask = 'id,billingItem[location,hourlyFlag],snapshotCapacityGb,'\
                       'storageType[keyName],capacityGb,originalVolumeSize,'\
                       'provisionedIops,storageTierLevel,osType[keyName],'\
                       'staasVersion,hasEncryptionAtRest'
          origin_volume = self.get_block_volume_details(origin_volume_id,
                                                        mask=block_mask)
  
          if isinstance(utils.lookup(origin_volume, 'osType', 'keyName'), str):
              os_type = origin_volume['osType']['keyName']
          else:
              raise exceptions.SoftLayerError(
                  "Cannot find origin volume's os-type")
  
          order = storage_utils.prepare_duplicate_order_object(
              self, origin_volume, duplicate_iops, duplicate_tier_level,
              duplicate_size, duplicate_snapshot_size, 'block',
              hourly_billing_flag
          )
  
          order['osFormatType'] = {'keyName': os_type}
  
          if origin_snapshot_id is not None:
              order['duplicateOriginSnapshotId'] = origin_snapshot_id
  
          return self.client.call('Product_Order', 'placeOrder', order)
docs: Places an order for a duplicate block volume.
  
          :param origin_volume_id: The ID of the origin volume to be duplicated
          :param origin_snapshot_id: Origin snapshot ID to use for duplication
          :param duplicate_size: Size/capacity for the duplicate volume
          :param duplicate_iops: The IOPS per GB for the duplicate volume
          :param duplicate_tier_level: Tier level for the duplicate volume
          :param duplicate_snapshot_size: Snapshot space size for the duplicate
          :param hourly_billing_flag: Billing type, monthly (False)
              or hourly (True), default to monthly.
          :return: Returns a SoftLayer_Container_Product_Order_Receipt