001package com.box.sdkgen.schemas.workflow;
002
003import com.box.sdkgen.serialization.json.EnumWrapper;
004import com.box.sdkgen.serialization.json.Valuable;
005import com.fasterxml.jackson.annotation.JsonValue;
006import com.fasterxml.jackson.core.JsonGenerator;
007import com.fasterxml.jackson.core.JsonParser;
008import com.fasterxml.jackson.databind.DeserializationContext;
009import com.fasterxml.jackson.databind.JsonDeserializer;
010import com.fasterxml.jackson.databind.JsonSerializer;
011import com.fasterxml.jackson.databind.SerializerProvider;
012import java.io.IOException;
013import java.util.Arrays;
014
015public enum WorkflowFlowsOutcomesActionTypeField implements Valuable {
016  ADD_METADATA("add_metadata"),
017  ASSIGN_TASK("assign_task"),
018  COPY_FILE("copy_file"),
019  COPY_FOLDER("copy_folder"),
020  CREATE_FOLDER("create_folder"),
021  DELETE_FILE("delete_file"),
022  DELETE_FOLDER("delete_folder"),
023  LOCK_FILE("lock_file"),
024  MOVE_FILE("move_file"),
025  MOVE_FOLDER("move_folder"),
026  REMOVE_WATERMARK_FILE("remove_watermark_file"),
027  RENAME_FOLDER("rename_folder"),
028  RESTORE_FOLDER("restore_folder"),
029  SHARE_FILE("share_file"),
030  SHARE_FOLDER("share_folder"),
031  UNLOCK_FILE("unlock_file"),
032  UPLOAD_FILE("upload_file"),
033  WAIT_FOR_TASK("wait_for_task"),
034  WATERMARK_FILE("watermark_file"),
035  GO_BACK_TO_STEP("go_back_to_step"),
036  APPLY_FILE_CLASSIFICATION("apply_file_classification"),
037  APPLY_FOLDER_CLASSIFICATION("apply_folder_classification"),
038  SEND_NOTIFICATION("send_notification");
039
040  private final String value;
041
042  WorkflowFlowsOutcomesActionTypeField(String value) {
043    this.value = value;
044  }
045
046  @JsonValue
047  public String getValue() {
048    return value;
049  }
050
051  public static class WorkflowFlowsOutcomesActionTypeFieldDeserializer
052      extends JsonDeserializer<EnumWrapper<WorkflowFlowsOutcomesActionTypeField>> {
053
054    public WorkflowFlowsOutcomesActionTypeFieldDeserializer() {
055      super();
056    }
057
058    @Override
059    public EnumWrapper<WorkflowFlowsOutcomesActionTypeField> deserialize(
060        JsonParser p, DeserializationContext ctxt) throws IOException {
061      String value = p.getValueAsString();
062      return Arrays.stream(WorkflowFlowsOutcomesActionTypeField.values())
063          .filter((v) -> v.getValue().equalsIgnoreCase(value))
064          .findFirst()
065          .map(EnumWrapper::new)
066          .orElse(new EnumWrapper<WorkflowFlowsOutcomesActionTypeField>(value));
067    }
068  }
069
070  public static class WorkflowFlowsOutcomesActionTypeFieldSerializer
071      extends JsonSerializer<EnumWrapper<WorkflowFlowsOutcomesActionTypeField>> {
072
073    public WorkflowFlowsOutcomesActionTypeFieldSerializer() {
074      super();
075    }
076
077    @Override
078    public void serialize(
079        EnumWrapper<WorkflowFlowsOutcomesActionTypeField> value,
080        JsonGenerator gen,
081        SerializerProvider serializers)
082        throws IOException {
083      gen.writeString(value.getStringValue());
084    }
085  }
086}