github.com/marksheahan/packer@v0.10.2-0.20160613200515-1acb2d6645a0/packer/artifact.go (about)

     1  package packer
     2  
     3  // An Artifact is the result of a build, and is the metadata that documents
     4  // what a builder actually created. The exact meaning of the contents is
     5  // specific to each builder, but this interface is used to communicate back
     6  // to the user the result of a build.
     7  type Artifact interface {
     8  	// Returns the ID of the builder that was used to create this artifact.
     9  	// This is the internal ID of the builder and should be unique to every
    10  	// builder. This can be used to identify what the contents of the
    11  	// artifact actually are.
    12  	BuilderId() string
    13  
    14  	// Returns the set of files that comprise this artifact. If an
    15  	// artifact is not made up of files, then this will be empty.
    16  	Files() []string
    17  
    18  	// The ID for the artifact, if it has one. This is not guaranteed to
    19  	// be unique every run (like a GUID), but simply provide an identifier
    20  	// for the artifact that may be meaningful in some way. For example,
    21  	// for Amazon EC2, this value might be the AMI ID.
    22  	Id() string
    23  
    24  	// Returns human-readable output that describes the artifact created.
    25  	// This is used for UI output. It can be multiple lines.
    26  	String() string
    27  
    28  	// State allows the caller to ask for builder specific state information
    29  	// relating to the artifact instance.
    30  	State(name string) interface{}
    31  
    32  	// Destroy deletes the artifact. Packer calls this for various reasons,
    33  	// such as if a post-processor has processed this artifact and it is
    34  	// no longer needed.
    35  	Destroy() error
    36  }