summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-10-12 16:51:40 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-10-13 14:12:15 +0200
commita8977a64f252d341f55eb41b67405975af213295 (patch)
tree44f0cfd54f43e9f977a9dfb891532b154761bc0a /node-admin
parent7f2a03094bb6d4bc46024e08f2508d6a15f3d34b (diff)
Add type representing a produced artifact
Include asset classification and compress flag in addition to file location.
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/Artifact.java53
1 files changed, 53 insertions, 0 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/Artifact.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/Artifact.java
new file mode 100644
index 00000000000..7a3c891d969
--- /dev/null
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/servicedump/Artifact.java
@@ -0,0 +1,53 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.hosted.node.admin.maintenance.servicedump;
+
+import java.nio.file.Path;
+
+/**
+ * An artifact file produced by a {@link ArtifactProducer}.
+ *
+ * @author bjorncs
+ */
+class Artifact {
+
+ enum Classification {
+ CONFIDENTIAL("confidential"),
+ INTERNAL("internal");
+
+ private final String value;
+ Classification(String value) { this.value = value; }
+ public String value() { return value; }
+ }
+
+ private final Classification classification;
+ private final Path file;
+ private final boolean compressOnUpload;
+
+ private Artifact(Builder builder) {
+ this.file = builder.file;
+ this.classification = builder.classification;
+ this.compressOnUpload = builder.compressOnUpload != null ? builder.compressOnUpload : false;
+ }
+
+ static Builder newBuilder(Classification classification, Path file) {
+ return new Builder(classification, file);
+ }
+
+ Classification classification() { return classification; }
+ Path file() { return file; }
+ boolean compressOnUpload() { return compressOnUpload; }
+
+ static class Builder {
+ private Classification classification;
+ private Path file;
+ private Boolean compressOnUpload;
+
+ private Builder(Classification classification, Path file) {
+ this.classification = classification;
+ this.file = file;
+ }
+
+ Builder compressOnUpload() { this.compressOnUpload = true; return this; }
+ Artifact build() { return new Artifact(this); }
+ }
+}