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.JsonValue; import java.util.ArrayList; import java.util.Arrays; import java.util.List; 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; /** * 当前治理策略下的动作限制,不等同于 listingStatus、licenseStatus、installStatus 或 bindStatus。 */ @Schema(name = "AssetActionPolicy", description = "当前治理策略下的动作限制,不等同于 listingStatus、licenseStatus、installStatus 或 bindStatus。") @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 AssetActionPolicy implements Serializable { private static final long serialVersionUID = 1L; /** * Gets or Sets acquirePolicy */ public enum AcquirePolicyEnum { ALLOWED("allowed"), STOP_NEW_ACQUIRE("stop_new_acquire"); private final String value; AcquirePolicyEnum(String value) { this.value = value; } @JsonValue public String getValue() { return value; } @Override public String toString() { return String.valueOf(value); } @JsonCreator public static AcquirePolicyEnum fromValue(String value) { for (AcquirePolicyEnum b : AcquirePolicyEnum.values()) { if (b.value.equals(value)) { return b; } } throw new IllegalArgumentException("Unexpected value '" + value + "'"); } } private @Nullable AcquirePolicyEnum acquirePolicy; /** * Gets or Sets installPolicy */ public enum InstallPolicyEnum { ALLOWED("allowed"), STOP_NEW_INSTALL("stop_new_install"); private final String value; InstallPolicyEnum(String value) { this.value = value; } @JsonValue public String getValue() { return value; } @Override public String toString() { return String.valueOf(value); } @JsonCreator public static InstallPolicyEnum fromValue(String value) { for (InstallPolicyEnum b : InstallPolicyEnum.values()) { if (b.value.equals(value)) { return b; } } throw new IllegalArgumentException("Unexpected value '" + value + "'"); } } private @Nullable InstallPolicyEnum installPolicy; /** * Gets or Sets bindPolicy */ public enum BindPolicyEnum { ALLOWED("allowed"), STOP_NEW_BIND("stop_new_bind"); private final String value; BindPolicyEnum(String value) { this.value = value; } @JsonValue public String getValue() { return value; } @Override public String toString() { return String.valueOf(value); } @JsonCreator public static BindPolicyEnum fromValue(String value) { for (BindPolicyEnum b : BindPolicyEnum.values()) { if (b.value.equals(value)) { return b; } } throw new IllegalArgumentException("Unexpected value '" + value + "'"); } } private @Nullable BindPolicyEnum bindPolicy; /** * Gets or Sets generationPolicy */ public enum GenerationPolicyEnum { ALLOWED("allowed"), STOP_GENERATION("stop_generation"); private final String value; GenerationPolicyEnum(String value) { this.value = value; } @JsonValue public String getValue() { return value; } @Override public String toString() { return String.valueOf(value); } @JsonCreator public static GenerationPolicyEnum fromValue(String value) { for (GenerationPolicyEnum b : GenerationPolicyEnum.values()) { if (b.value.equals(value)) { return b; } } throw new IllegalArgumentException("Unexpected value '" + value + "'"); } } private @Nullable GenerationPolicyEnum generationPolicy; @Valid private List recheckReasons = new ArrayList<>(); public AssetActionPolicy acquirePolicy(@Nullable AcquirePolicyEnum acquirePolicy) { this.acquirePolicy = acquirePolicy; return this; } /** * Get acquirePolicy * @return acquirePolicy */ @Schema(name = "acquirePolicy", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("acquirePolicy") public @Nullable AcquirePolicyEnum getAcquirePolicy() { return acquirePolicy; } @JsonProperty("acquirePolicy") public void setAcquirePolicy(@Nullable AcquirePolicyEnum acquirePolicy) { this.acquirePolicy = acquirePolicy; } public AssetActionPolicy installPolicy(@Nullable InstallPolicyEnum installPolicy) { this.installPolicy = installPolicy; return this; } /** * Get installPolicy * @return installPolicy */ @Schema(name = "installPolicy", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("installPolicy") public @Nullable InstallPolicyEnum getInstallPolicy() { return installPolicy; } @JsonProperty("installPolicy") public void setInstallPolicy(@Nullable InstallPolicyEnum installPolicy) { this.installPolicy = installPolicy; } public AssetActionPolicy bindPolicy(@Nullable BindPolicyEnum bindPolicy) { this.bindPolicy = bindPolicy; return this; } /** * Get bindPolicy * @return bindPolicy */ @Schema(name = "bindPolicy", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("bindPolicy") public @Nullable BindPolicyEnum getBindPolicy() { return bindPolicy; } @JsonProperty("bindPolicy") public void setBindPolicy(@Nullable BindPolicyEnum bindPolicy) { this.bindPolicy = bindPolicy; } public AssetActionPolicy generationPolicy(@Nullable GenerationPolicyEnum generationPolicy) { this.generationPolicy = generationPolicy; return this; } /** * Get generationPolicy * @return generationPolicy */ @Schema(name = "generationPolicy", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("generationPolicy") public @Nullable GenerationPolicyEnum getGenerationPolicy() { return generationPolicy; } @JsonProperty("generationPolicy") public void setGenerationPolicy(@Nullable GenerationPolicyEnum generationPolicy) { this.generationPolicy = generationPolicy; } public AssetActionPolicy recheckReasons(List recheckReasons) { this.recheckReasons = recheckReasons; return this; } public AssetActionPolicy addRecheckReasonsItem(String recheckReasonsItem) { if (this.recheckReasons == null) { this.recheckReasons = new ArrayList<>(); } this.recheckReasons.add(recheckReasonsItem); return this; } /** * 需要目标 owner 重验的原因列表,例如 source_version_changed / authorization_snapshot_expired。 * @return recheckReasons */ @Schema(name = "recheckReasons", description = "需要目标 owner 重验的原因列表,例如 source_version_changed / authorization_snapshot_expired。", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @JsonProperty("recheckReasons") public List getRecheckReasons() { return recheckReasons; } @JsonProperty("recheckReasons") public void setRecheckReasons(List recheckReasons) { this.recheckReasons = recheckReasons; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } AssetActionPolicy assetActionPolicy = (AssetActionPolicy) o; return Objects.equals(this.acquirePolicy, assetActionPolicy.acquirePolicy) && Objects.equals(this.installPolicy, assetActionPolicy.installPolicy) && Objects.equals(this.bindPolicy, assetActionPolicy.bindPolicy) && Objects.equals(this.generationPolicy, assetActionPolicy.generationPolicy) && Objects.equals(this.recheckReasons, assetActionPolicy.recheckReasons); } @Override public int hashCode() { return Objects.hash(acquirePolicy, installPolicy, bindPolicy, generationPolicy, recheckReasons); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AssetActionPolicy {\n"); sb.append(" acquirePolicy: ").append(toIndentedString(acquirePolicy)).append("\n"); sb.append(" installPolicy: ").append(toIndentedString(installPolicy)).append("\n"); sb.append(" bindPolicy: ").append(toIndentedString(bindPolicy)).append("\n"); sb.append(" generationPolicy: ").append(toIndentedString(generationPolicy)).append("\n"); sb.append(" recheckReasons: ").append(toIndentedString(recheckReasons)).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 "); } }