001package com.box.sdkgen.managers.webhooks;
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 CreateWebhookRequestBodyTriggersField implements Valuable {
016  FILE_UPLOADED("FILE.UPLOADED"),
017  FILE_PREVIEWED("FILE.PREVIEWED"),
018  FILE_DOWNLOADED("FILE.DOWNLOADED"),
019  FILE_TRASHED("FILE.TRASHED"),
020  FILE_DELETED("FILE.DELETED"),
021  FILE_RESTORED("FILE.RESTORED"),
022  FILE_COPIED("FILE.COPIED"),
023  FILE_MOVED("FILE.MOVED"),
024  FILE_LOCKED("FILE.LOCKED"),
025  FILE_UNLOCKED("FILE.UNLOCKED"),
026  FILE_RENAMED("FILE.RENAMED"),
027  COMMENT_CREATED("COMMENT.CREATED"),
028  COMMENT_UPDATED("COMMENT.UPDATED"),
029  COMMENT_DELETED("COMMENT.DELETED"),
030  TASK_ASSIGNMENT_CREATED("TASK_ASSIGNMENT.CREATED"),
031  TASK_ASSIGNMENT_UPDATED("TASK_ASSIGNMENT.UPDATED"),
032  METADATA_INSTANCE_CREATED("METADATA_INSTANCE.CREATED"),
033  METADATA_INSTANCE_UPDATED("METADATA_INSTANCE.UPDATED"),
034  METADATA_INSTANCE_DELETED("METADATA_INSTANCE.DELETED"),
035  FOLDER_CREATED("FOLDER.CREATED"),
036  FOLDER_RENAMED("FOLDER.RENAMED"),
037  FOLDER_DOWNLOADED("FOLDER.DOWNLOADED"),
038  FOLDER_RESTORED("FOLDER.RESTORED"),
039  FOLDER_DELETED("FOLDER.DELETED"),
040  FOLDER_COPIED("FOLDER.COPIED"),
041  FOLDER_MOVED("FOLDER.MOVED"),
042  FOLDER_TRASHED("FOLDER.TRASHED"),
043  WEBHOOK_DELETED("WEBHOOK.DELETED"),
044  COLLABORATION_CREATED("COLLABORATION.CREATED"),
045  COLLABORATION_ACCEPTED("COLLABORATION.ACCEPTED"),
046  COLLABORATION_REJECTED("COLLABORATION.REJECTED"),
047  COLLABORATION_REMOVED("COLLABORATION.REMOVED"),
048  COLLABORATION_UPDATED("COLLABORATION.UPDATED"),
049  SHARED_LINK_DELETED("SHARED_LINK.DELETED"),
050  SHARED_LINK_CREATED("SHARED_LINK.CREATED"),
051  SHARED_LINK_UPDATED("SHARED_LINK.UPDATED"),
052  SIGN_REQUEST_COMPLETED("SIGN_REQUEST.COMPLETED"),
053  SIGN_REQUEST_DECLINED("SIGN_REQUEST.DECLINED"),
054  SIGN_REQUEST_EXPIRED("SIGN_REQUEST.EXPIRED"),
055  SIGN_REQUEST_SIGNER_EMAIL_BOUNCED("SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"),
056  SIGN_REQUEST_SIGN_SIGNER_SIGNED("SIGN_REQUEST.SIGN_SIGNER_SIGNED"),
057  SIGN_REQUEST_SIGN_DOCUMENT_CREATED("SIGN_REQUEST.SIGN_DOCUMENT_CREATED"),
058  SIGN_REQUEST_SIGN_ERROR_FINALIZING("SIGN_REQUEST.SIGN_ERROR_FINALIZING");
059
060  private final String value;
061
062  CreateWebhookRequestBodyTriggersField(String value) {
063    this.value = value;
064  }
065
066  @JsonValue
067  public String getValue() {
068    return value;
069  }
070
071  public static class CreateWebhookRequestBodyTriggersFieldDeserializer
072      extends JsonDeserializer<EnumWrapper<CreateWebhookRequestBodyTriggersField>> {
073
074    public CreateWebhookRequestBodyTriggersFieldDeserializer() {
075      super();
076    }
077
078    @Override
079    public EnumWrapper<CreateWebhookRequestBodyTriggersField> deserialize(
080        JsonParser p, DeserializationContext ctxt) throws IOException {
081      String value = p.getValueAsString();
082      return Arrays.stream(CreateWebhookRequestBodyTriggersField.values())
083          .filter((v) -> v.getValue().equalsIgnoreCase(value))
084          .findFirst()
085          .map(EnumWrapper::new)
086          .orElse(new EnumWrapper<CreateWebhookRequestBodyTriggersField>(value));
087    }
088  }
089
090  public static class CreateWebhookRequestBodyTriggersFieldSerializer
091      extends JsonSerializer<EnumWrapper<CreateWebhookRequestBodyTriggersField>> {
092
093    public CreateWebhookRequestBodyTriggersFieldSerializer() {
094      super();
095    }
096
097    @Override
098    public void serialize(
099        EnumWrapper<CreateWebhookRequestBodyTriggersField> value,
100        JsonGenerator gen,
101        SerializerProvider serializers)
102        throws IOException {
103      gen.writeString(value.getStringValue());
104    }
105  }
106}