def save
requires :datacenter_id, :name, :cores, :ram
properties = {}
properties[:name] = name if name
properties[:cores] = cores if cores
properties[:ram] = ram if ram
properties[:availabilityZone] = availability_zone if availability_zone
properties[:bootVolume] = boot_volume if boot_volume
properties[:bootCdrom] = boot_cdrom if boot_cdrom
properties[:cpuFamily] = cpu_family if cpu_family
entities = {}
entities[:volumes] = get_volumes(volumes) if volumes
entities[:nics] = get_nics(nics) if nics
data = service.create_server(datacenter_id, properties, entities)
merge_attributes(flatten(data.body))
true
end