pulumi/pkg/resource/deploy/snapshot.go
Matt Ellis e7e4e75af3 Don't examine the Checkpoint in the CLI
The checkpoint is an implementation detail of the storage of an
environment. Instead of interacting with it, make sure that all the
data we need from it either hangs off the Snapshot or Target
objects (which you can get from a Checkpoint) and then start consuming
that data.
2017-10-09 18:21:55 -07:00

30 lines
1.1 KiB
Go

// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
package deploy
import (
"time"
"github.com/pulumi/pulumi/pkg/resource"
"github.com/pulumi/pulumi/pkg/tokens"
)
// Snapshot is a view of a collection of resources in an environment at a point in time. It describes resources; their
// IDs, names, and properties; their dependencies; and more. A snapshot is a diffable entity and can be used to create
// or apply an infrastructure deployment plan in order to make reality match the snapshot state.
type Snapshot struct {
Namespace tokens.QName // the namespace target being deployed into.
Time time.Time // the time this snapshot was taken.
Resources []*resource.State // fetches all resources and their associated states.
Info interface{} // optional information about the source.
}
// NewSnapshot creates a snapshot from the given arguments. The resources must be in topologically sorted order.
func NewSnapshot(ns tokens.QName, time time.Time, resources []*resource.State, info interface{}) *Snapshot {
return &Snapshot{
Namespace: ns,
Time: time,
Resources: resources,
Info: info,
}
}