All Downloads are FREE. Search and download functionalities are using the official Maven repository.

keywhiz.api.automation.v2.ModifyGroupsRequestV2 Maven / Gradle / Ivy

The newest version!
package keywhiz.api.automation.v2;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.auto.value.AutoValue;
import com.google.common.collect.ImmutableSet;

@AutoValue public abstract class ModifyGroupsRequestV2 {
  ModifyGroupsRequestV2() {} // prevent sub-classing

  public static Builder builder() {
    return new AutoValue_ModifyGroupsRequestV2.Builder()
        .addGroups()
        .removeGroups();
  }

  @AutoValue.Builder public abstract static class Builder {
    // intended to be package-private
    abstract Builder addGroups(ImmutableSet groups);
    abstract Builder removeGroups(ImmutableSet groups);

    public Builder addGroups(String... groups) {
      return addGroups(ImmutableSet.copyOf(groups));
    }

    public Builder removeGroups(String... groups) {
      return removeGroups(ImmutableSet.copyOf(groups));
    }

    public abstract ModifyGroupsRequestV2 build();
  }

  /**
   * Static factory method used by Jackson for deserialization
   */
  @SuppressWarnings("unused")
  @JsonCreator public static ModifyGroupsRequestV2 fromParts(
      @JsonProperty("addGroups") ImmutableSet addGroups,
      @JsonProperty("removeGroups") ImmutableSet removeGroups) {
    return builder().addGroups(addGroups).removeGroups(removeGroups).build();
  }

  @JsonProperty("addGroups") public abstract ImmutableSet addGroups();
  @JsonProperty("removeGroups") public abstract ImmutableSet removeGroups();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy