github.com/hashicorp/packer@v1.14.3/post-processor/manifest/artifact.go (about)

     1  // Copyright (c) HashiCorp, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package manifest
     5  
     6  import "fmt"
     7  
     8  const BuilderId = "packer.post-processor.manifest"
     9  
    10  type ArtifactFile struct {
    11  	Name string `json:"name"`
    12  	Size int64  `json:"size"`
    13  }
    14  
    15  type Artifact struct {
    16  	BuildName     string            `json:"name"`
    17  	BuilderType   string            `json:"builder_type"`
    18  	BuildTime     int64             `json:"build_time,omitempty"`
    19  	ArtifactFiles []ArtifactFile    `json:"files"`
    20  	ArtifactId    string            `json:"artifact_id"`
    21  	PackerRunUUID string            `json:"packer_run_uuid"`
    22  	CustomData    map[string]string `json:"custom_data"`
    23  }
    24  
    25  func (a *Artifact) BuilderId() string {
    26  	return BuilderId
    27  }
    28  
    29  func (a *Artifact) Files() []string {
    30  	var files []string
    31  	for _, af := range a.ArtifactFiles {
    32  		files = append(files, af.Name)
    33  	}
    34  	return files
    35  }
    36  
    37  func (a *Artifact) Id() string {
    38  	return a.ArtifactId
    39  }
    40  
    41  func (a *Artifact) String() string {
    42  	return fmt.Sprintf("%s-%s", a.BuildName, a.ArtifactId)
    43  }
    44  
    45  func (a *Artifact) State(name string) interface{} {
    46  	return nil
    47  }
    48  
    49  func (a *Artifact) Destroy() error {
    50  	return nil
    51  }