package com.muse.dto; import java.net.URI; import java.util.Objects; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonTypeName; import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.lang.Nullable; import java.io.Serializable; import java.time.OffsetDateTime; import jakarta.validation.Valid; import jakarta.validation.constraints.*; import io.swagger.v3.oas.annotations.media.Schema; import java.util.*; import jakarta.annotation.Generated; /** * SaveGlobalKBAccessPolicyDraftRequest */ @JsonTypeName("saveGlobalKBAccessPolicyDraft_request") @Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2026-05-24T16:47:40.290595+08:00[Asia/Shanghai]", comments = "Generator version: 7.22.0") public class SaveGlobalKBAccessPolicyDraftRequest implements Serializable { private static final long serialVersionUID = 1L; private String scope; @Valid private List allowedRoles = new ArrayList<>(); private Boolean canSearch = true; private Boolean canGenerate = false; private Boolean canExport = false; private Boolean canCopy = false; private @Nullable String externalScope; @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) private @Nullable OffsetDateTime expiresAt; private String commandId; public SaveGlobalKBAccessPolicyDraftRequest() { super(); } /** * Constructor with only required parameters */ public SaveGlobalKBAccessPolicyDraftRequest(String scope, String commandId) { this.scope = scope; this.commandId = commandId; } public SaveGlobalKBAccessPolicyDraftRequest scope(String scope) { this.scope = scope; return this; } /** * 授权范围 * @return scope */ @NotNull @Schema(name = "scope", description = "授权范围", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty("scope") public String getScope() { return scope; } @JsonProperty("scope") public void setScope(String scope) { this.scope = scope; } public SaveGlobalKBAccessPolicyDraftRequest allowedRoles(List allowedRoles) { this.allowedRoles = allowedRoles; return this; } public SaveGlobalKBAccessPolicyDraftRequest addAllowedRolesItem(String allowedRolesItem) { if (this.allowedRoles == null) { this.allowedRoles = new ArrayList<>(); } this.allowedRoles.add(allowedRolesItem); return this; } /** * 角色列表(scope=role_based 时必填) * @return allowedRoles */ @Schema(name = "allowedRoles", description = "角色列表(scope=role_based 时必填)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("allowedRoles") public List getAllowedRoles() { return allowedRoles; } @JsonProperty("allowedRoles") public void setAllowedRoles(List allowedRoles) { this.allowedRoles = allowedRoles; } public SaveGlobalKBAccessPolicyDraftRequest canSearch(Boolean canSearch) { this.canSearch = canSearch; return this; } /** * Get canSearch * @return canSearch */ @Schema(name = "canSearch", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("canSearch") public Boolean getCanSearch() { return canSearch; } @JsonProperty("canSearch") public void setCanSearch(Boolean canSearch) { this.canSearch = canSearch; } public SaveGlobalKBAccessPolicyDraftRequest canGenerate(Boolean canGenerate) { this.canGenerate = canGenerate; return this; } /** * Get canGenerate * @return canGenerate */ @Schema(name = "canGenerate", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("canGenerate") public Boolean getCanGenerate() { return canGenerate; } @JsonProperty("canGenerate") public void setCanGenerate(Boolean canGenerate) { this.canGenerate = canGenerate; } public SaveGlobalKBAccessPolicyDraftRequest canExport(Boolean canExport) { this.canExport = canExport; return this; } /** * Get canExport * @return canExport */ @Schema(name = "canExport", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("canExport") public Boolean getCanExport() { return canExport; } @JsonProperty("canExport") public void setCanExport(Boolean canExport) { this.canExport = canExport; } public SaveGlobalKBAccessPolicyDraftRequest canCopy(Boolean canCopy) { this.canCopy = canCopy; return this; } /** * Get canCopy * @return canCopy */ @Schema(name = "canCopy", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("canCopy") public Boolean getCanCopy() { return canCopy; } @JsonProperty("canCopy") public void setCanCopy(Boolean canCopy) { this.canCopy = canCopy; } public SaveGlobalKBAccessPolicyDraftRequest externalScope(@Nullable String externalScope) { this.externalScope = externalScope; return this; } /** * 外发范围限制 * @return externalScope */ @Schema(name = "externalScope", description = "外发范围限制", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("externalScope") public @Nullable String getExternalScope() { return externalScope; } @JsonProperty("externalScope") public void setExternalScope(@Nullable String externalScope) { this.externalScope = externalScope; } public SaveGlobalKBAccessPolicyDraftRequest expiresAt(@Nullable OffsetDateTime expiresAt) { this.expiresAt = expiresAt; return this; } /** * 过期时间 * @return expiresAt */ @Valid @Schema(name = "expiresAt", description = "过期时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("expiresAt") public @Nullable OffsetDateTime getExpiresAt() { return expiresAt; } @JsonProperty("expiresAt") public void setExpiresAt(@Nullable OffsetDateTime expiresAt) { this.expiresAt = expiresAt; } public SaveGlobalKBAccessPolicyDraftRequest commandId(String commandId) { this.commandId = commandId; return this; } /** * 幂等键 * @return commandId */ @NotNull @Schema(name = "commandId", description = "幂等键", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty("commandId") public String getCommandId() { return commandId; } @JsonProperty("commandId") public void setCommandId(String commandId) { this.commandId = commandId; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } SaveGlobalKBAccessPolicyDraftRequest saveGlobalKBAccessPolicyDraftRequest = (SaveGlobalKBAccessPolicyDraftRequest) o; return Objects.equals(this.scope, saveGlobalKBAccessPolicyDraftRequest.scope) && Objects.equals(this.allowedRoles, saveGlobalKBAccessPolicyDraftRequest.allowedRoles) && Objects.equals(this.canSearch, saveGlobalKBAccessPolicyDraftRequest.canSearch) && Objects.equals(this.canGenerate, saveGlobalKBAccessPolicyDraftRequest.canGenerate) && Objects.equals(this.canExport, saveGlobalKBAccessPolicyDraftRequest.canExport) && Objects.equals(this.canCopy, saveGlobalKBAccessPolicyDraftRequest.canCopy) && Objects.equals(this.externalScope, saveGlobalKBAccessPolicyDraftRequest.externalScope) && Objects.equals(this.expiresAt, saveGlobalKBAccessPolicyDraftRequest.expiresAt) && Objects.equals(this.commandId, saveGlobalKBAccessPolicyDraftRequest.commandId); } @Override public int hashCode() { return Objects.hash(scope, allowedRoles, canSearch, canGenerate, canExport, canCopy, externalScope, expiresAt, commandId); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SaveGlobalKBAccessPolicyDraftRequest {\n"); sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); sb.append(" allowedRoles: ").append(toIndentedString(allowedRoles)).append("\n"); sb.append(" canSearch: ").append(toIndentedString(canSearch)).append("\n"); sb.append(" canGenerate: ").append(toIndentedString(canGenerate)).append("\n"); sb.append(" canExport: ").append(toIndentedString(canExport)).append("\n"); sb.append(" canCopy: ").append(toIndentedString(canCopy)).append("\n"); sb.append(" externalScope: ").append(toIndentedString(externalScope)).append("\n"); sb.append(" expiresAt: ").append(toIndentedString(expiresAt)).append("\n"); sb.append(" commandId: ").append(toIndentedString(commandId)).append("\n"); sb.append("}"); return sb.toString(); } /** * Convert the given object to string with each line indented by 4 spaces * (except the first line). */ private String toIndentedString(@Nullable Object o) { return o == null ? "null" : o.toString().replace("\n", "\n "); } }