93 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package containers
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"time"
 | 
						|
 | 
						|
	"github.com/gogo/protobuf/types"
 | 
						|
)
 | 
						|
 | 
						|
// Container represents the set of data pinned by a container. Unless otherwise
 | 
						|
// noted, the resources here are considered in use by the container.
 | 
						|
//
 | 
						|
// The resources specified in this object are used to create tasks from the container.
 | 
						|
type Container struct {
 | 
						|
	// ID uniquely identifies the container in a nameapace.
 | 
						|
	//
 | 
						|
	// This property is required and cannot be changed after creation.
 | 
						|
	ID string
 | 
						|
 | 
						|
	// Labels provide metadata extension for a contaienr.
 | 
						|
	//
 | 
						|
	// These are optional and fully mutable.
 | 
						|
	Labels map[string]string
 | 
						|
 | 
						|
	// Image specifies the image reference used for a container.
 | 
						|
	//
 | 
						|
	// This property is optional but immutable.
 | 
						|
	Image string
 | 
						|
 | 
						|
	// Runtime specifies which runtime should be used when launching container
 | 
						|
	// tasks.
 | 
						|
	//
 | 
						|
	// This property is required and immutable.
 | 
						|
	Runtime RuntimeInfo
 | 
						|
 | 
						|
	// Spec should carry the the runtime specification used to implement the
 | 
						|
	// container.
 | 
						|
	//
 | 
						|
	// This field is required but mutable.
 | 
						|
	Spec *types.Any
 | 
						|
 | 
						|
	// SnapshotKey specifies the snapshot key to use for the container's root
 | 
						|
	// filesystem. When starting a task from this container, a caller should
 | 
						|
	// look up the mounts from the snapshot service and include those on the
 | 
						|
	// task create request.
 | 
						|
	//
 | 
						|
	// This field is not required but immutable.
 | 
						|
	SnapshotKey string
 | 
						|
 | 
						|
	// Snapshotter specifies the snapshotter name used for rootfs
 | 
						|
	//
 | 
						|
	// This field is not required but immutable.
 | 
						|
	Snapshotter string
 | 
						|
 | 
						|
	// CreatedAt is the time at which the container was created.
 | 
						|
	CreatedAt time.Time
 | 
						|
 | 
						|
	// UpdatedAt is the time at which the container was updated.
 | 
						|
	UpdatedAt time.Time
 | 
						|
 | 
						|
	// Extensions stores client-specified metadata
 | 
						|
	Extensions map[string]types.Any
 | 
						|
}
 | 
						|
 | 
						|
// RuntimeInfo holds runtime specific information
 | 
						|
type RuntimeInfo struct {
 | 
						|
	Name    string
 | 
						|
	Options *types.Any
 | 
						|
}
 | 
						|
 | 
						|
// Store interacts with the underlying container storage
 | 
						|
type Store interface {
 | 
						|
	Get(ctx context.Context, id string) (Container, error)
 | 
						|
 | 
						|
	// List returns containers that match one or more of the provided filters.
 | 
						|
	List(ctx context.Context, filters ...string) ([]Container, error)
 | 
						|
 | 
						|
	// Create a container in the store from the provided container.
 | 
						|
	Create(ctx context.Context, container Container) (Container, error)
 | 
						|
 | 
						|
	// Update the container with the provided container object. ID must be set.
 | 
						|
	//
 | 
						|
	// If one or more fieldpaths are provided, only the field corresponding to
 | 
						|
	// the fieldpaths will be mutated.
 | 
						|
	Update(ctx context.Context, container Container, fieldpaths ...string) (Container, error)
 | 
						|
 | 
						|
	// Delete a container using the id.
 | 
						|
	//
 | 
						|
	// nil will be returned on success. If the container is not known to the
 | 
						|
	// store, ErrNotFound will be returned.
 | 
						|
	Delete(ctx context.Context, id string) error
 | 
						|
}
 |