// Copyright 2016 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package allocator

import "time"

// Instance describes a service instance.
type Instance struct {
     Handle string
     MountName string
     BlessingNames []string
     CreationTime time.Time
     Replicas int32
}

type Allocator interface {
	// Create creates a new instance of the service.
	// It returns a handle for the new instance.
	Create() (handle string | error)

	// Destroy destroys the instance with the given handle.
	Destroy(handle string) error

	// List returns a list of all the instances owned by the caller.
	List() (instances []Instance | error)
}
