001package com.box.sdkgen.managers.folderlocks;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.fasterxml.jackson.annotation.JsonFilter;
006import com.fasterxml.jackson.annotation.JsonProperty;
007import java.util.Objects;
008
009@JsonFilter("nullablePropertyFilter")
010public class CreateFolderLockRequestBody extends SerializableObject {
011
012  /**
013   * The operations to lock for the folder. If `locked_operations` is included in the request, both
014   * `move` and `delete` must also be included and both set to `true`.
015   */
016  @JsonProperty("locked_operations")
017  protected CreateFolderLockRequestBodyLockedOperationsField lockedOperations;
018
019  /** The folder to apply the lock to. */
020  protected final CreateFolderLockRequestBodyFolderField folder;
021
022  public CreateFolderLockRequestBody(
023      @JsonProperty("folder") CreateFolderLockRequestBodyFolderField folder) {
024    super();
025    this.folder = folder;
026  }
027
028  protected CreateFolderLockRequestBody(Builder builder) {
029    super();
030    this.lockedOperations = builder.lockedOperations;
031    this.folder = builder.folder;
032    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
033  }
034
035  public CreateFolderLockRequestBodyLockedOperationsField getLockedOperations() {
036    return lockedOperations;
037  }
038
039  public CreateFolderLockRequestBodyFolderField getFolder() {
040    return folder;
041  }
042
043  @Override
044  public boolean equals(Object o) {
045    if (this == o) {
046      return true;
047    }
048    if (o == null || getClass() != o.getClass()) {
049      return false;
050    }
051    CreateFolderLockRequestBody casted = (CreateFolderLockRequestBody) o;
052    return Objects.equals(lockedOperations, casted.lockedOperations)
053        && Objects.equals(folder, casted.folder);
054  }
055
056  @Override
057  public int hashCode() {
058    return Objects.hash(lockedOperations, folder);
059  }
060
061  @Override
062  public String toString() {
063    return "CreateFolderLockRequestBody{"
064        + "lockedOperations='"
065        + lockedOperations
066        + '\''
067        + ", "
068        + "folder='"
069        + folder
070        + '\''
071        + "}";
072  }
073
074  public static class Builder extends NullableFieldTracker {
075
076    protected CreateFolderLockRequestBodyLockedOperationsField lockedOperations;
077
078    protected final CreateFolderLockRequestBodyFolderField folder;
079
080    public Builder(CreateFolderLockRequestBodyFolderField folder) {
081      super();
082      this.folder = folder;
083    }
084
085    public Builder lockedOperations(
086        CreateFolderLockRequestBodyLockedOperationsField lockedOperations) {
087      this.lockedOperations = lockedOperations;
088      return this;
089    }
090
091    public CreateFolderLockRequestBody build() {
092      return new CreateFolderLockRequestBody(this);
093    }
094  }
095}