    # File lib/fog/aws/models/compute/volume.rb, line 39
            def save
              raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
              requires :availability_zone
              requires_one :size, :snapshot_id

              data = connection.create_volume(availability_zone, size, snapshot_id).body
              new_attributes = data.reject {|key,value| key == 'requestId'}
              merge_attributes(new_attributes)

              if tags = self.tags
                # expect eventual consistency
                Fog.wait_for { self.reload rescue nil }
                for key, value in (self.tags = tags)
                  connection.tags.create(
                    :key          => key,
                    :resource_id  => self.identity,
                    :value        => value
                  )
                end
              end

              if @server
                self.server = @server
              end
              true
            end