diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialCreateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialCreateDto.java new file mode 100644 index 0000000000000000000000000000000000000000..40e23c1426ca71dd181b95f1161223cc13cbc580 --- /dev/null +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialCreateDto.java @@ -0,0 +1,26 @@ +package at.tuwien.api.keycloak; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.*; +import lombok.extern.jackson.Jacksonized; + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Jacksonized +@ToString +public class CredentialCreateDto { + + @NotNull + private CredentialTypeDto type; + + @Schema(example = "s3cr3t") + private String value; + + @Schema(example = "false") + private Boolean temporary; + +} diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialTypeDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialTypeDto.java new file mode 100644 index 0000000000000000000000000000000000000000..4992f74cf96955ef10117a9de4663144fadb7bcb --- /dev/null +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialTypeDto.java @@ -0,0 +1,22 @@ +package at.tuwien.api.keycloak; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; + +@Getter +public enum CredentialTypeDto { + + @JsonProperty("password") + PASSWORD("password"); + + private String name; + + CredentialTypeDto(String name) { + this.name = name; + } + + @Override + public String toString() { + return this.name; + } +} diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserAttributesCreateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserAttributesCreateDto.java new file mode 100644 index 0000000000000000000000000000000000000000..dda69549406200f5407dcb5a53088ef6c93169c4 --- /dev/null +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserAttributesCreateDto.java @@ -0,0 +1,29 @@ +package at.tuwien.api.keycloak; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.*; +import lombok.extern.jackson.Jacksonized; + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Jacksonized +@ToString +public class UserAttributesCreateDto { + + @NotNull + @JsonProperty("theme_dark") + @Schema(example = "false") + private Boolean themeDark; + + @Schema(example = "https://orcid.org/0000-0002-1825-0097") + private String orcid; + + @Schema(example = "Brown University") + private String affiliation; + +} diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserCreateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserCreateDto.java new file mode 100644 index 0000000000000000000000000000000000000000..4569d87d426b983d343df69493fecb9f419286ca --- /dev/null +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserCreateDto.java @@ -0,0 +1,46 @@ +package at.tuwien.api.keycloak; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.*; +import lombok.extern.jackson.Jacksonized; + +import java.util.List; + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Jacksonized +@ToString +public class UserCreateDto { + + @NotNull + @Schema(example = "jcarberry", description = "Only contains lowercase characters") + private String username; + + @NotNull + @Schema(example = "true") + private Boolean enabled; + + @JsonProperty("given_name") + @Schema(example = "Josiah") + private String firstname; + + @JsonProperty("family_name") + @Schema(example = "Carberry") + private String lastname; + + @NotNull + @Schema(example = "jcarberry@brown.edu") + private String email; + + @NotNull + private UserAttributesCreateDto attributes; + + @NotNull + private List<CredentialCreateDto> credentials; + +}