# File lib/fog/bluebox/models/compute/server.rb, line 92
        def save
          raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
          requires :flavor_id, :image_id, :location_id
          options = {}

          if identity.nil?  # new record
            raise(ArgumentError, "password or public_key is required for this operation") if !password && !public_key
            options['ssh_public_key'] = public_key if public_key
            options['password'] = password if @password
          end

          if @lb_backends
            options['lb_backends'] = lb_backends
          elsif @lb_services
            options['lb_services'] = lb_services
          elsif @lb_applications
            options['lb_applications'] = lb_applications
          end
          
          options['username'] = username
          options['hostname'] = hostname if @hostname
          data = connection.create_block(flavor_id, image_id, location_id, options)
          merge_attributes(data.body)
          true
        end