@@ -0,0 +1,1652 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.%0Apackage com.yahoo.vespa.hosted.node.admin.maintenance.servicedump;%0A%0Aimport java.nio.file.Path;%0A%0A/**%0A * An artifact file produced by a %7B@link ArtifactProducer%7D.%0A *%0A * @author bjorncs%0A */%0Aclass Artifact %7B%0A%0A    enum Classification %7B%0A        CONFIDENTIAL(%22confidential%22),%0A        INTERNAL(%22internal%22);%0A%0A        private final String value;%0A        Classification(String value) %7B this.value = value; %7D%0A        public String value() %7B return value; %7D%0A    %7D%0A%0A    private final Classification classification;%0A    private final Path file;%0A    private final boolean compressOnUpload;%0A%0A    private Artifact(Builder builder) %7B%0A        this.file = builder.file;%0A        this.classification = builder.classification;%0A        this.compressOnUpload = builder.compressOnUpload != null ? builder.compressOnUpload : false;%0A    %7D%0A%0A    static Builder newBuilder(Classification classification, Path file) %7B%0A        return new Builder(classification, file);%0A    %7D%0A%0A    Classification classification() %7B return classification; %7D%0A    Path file() %7B return file; %7D%0A    boolean compressOnUpload() %7B return compressOnUpload; %7D%0A%0A    static class Builder %7B%0A        private Classification classification;%0A        private Path file;%0A        private Boolean compressOnUpload;%0A%0A        private Builder(Classification classification, Path file) %7B%0A            this.classification = classification;%0A            this.file = file;%0A        %7D%0A%0A        Builder compressOnUpload() %7B this.compressOnUpload = true; return this; %7D%0A        Artifact build() %7B return new Artifact(this); %7D%0A    %7D%0A%7D%0A

Add type representing a produced artifact