Merge branch '20188-insufficient-subnet'
[arvados.git] / lib / cloud / interfaces.go
index 2d53a49c51b7130b2ea0eb3d25b633e1dfc0dbac..27cf26152c2962fa1b8d9afeba34f4fad57e2922 100644 (file)
@@ -102,6 +102,12 @@ type Instance interface {
        // Replace tags with the given tags
        SetTags(InstanceTags) error
 
+       // Get recent price history, if available. The InstanceType is
+       // supplied as an argument so the driver implementation can
+       // account for AddedScratch cost without requesting the volume
+       // attachment information from the provider's API.
+       PriceHistory(arvados.InstanceType) []InstancePrice
+
        // Shut down the node
        Destroy() error
 }
@@ -141,6 +147,11 @@ type InstanceSet interface {
        Stop()
 }
 
+type InstancePrice struct {
+       StartTime time.Time
+       Price     float64
+}
+
 type InitCommand string
 
 // A Driver returns an InstanceSet that uses the given InstanceSetID