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 }