package com.eactive.eai.rms.onl.manage.crypto;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Data;

@Data
public class CryptoModuleConfigUI {

	@JsonProperty("CRYPTO_ID")
	private String cryptoId;

	@JsonProperty("CRYPTO_NAME")
	@NotNull
	@Size(max = 100)
	private String cryptoName;

	@JsonProperty("CRYPTO_DESC")
	private String cryptoDesc;

	@JsonProperty("ALG_TYPE")
	@NotNull
	private String algType;

	@JsonProperty("CIPHER_MODE")
	@NotNull
	private String cipherMode;

	@JsonProperty("PADDING")
	private String padding;

	@JsonProperty("IV_HEX")
	private String ivHex;

	@JsonProperty("KEY_SOURCE_TYPE")
	@NotNull
	private String keySourceType;

	@JsonProperty("ENC_KEY_HEX")
	private String encKeyHex;

	@JsonProperty("DEC_KEY_HEX")
	private String decKeyHex;

	@JsonProperty("KEY_DERIV_STRATEGY")
	private String keyDerivStrategy;

	@JsonProperty("KEY_DERIV_PARAMS")
	private String keyDerivParams;

	@JsonProperty("CACHE_YN")
	@NotNull
	private String cacheYn;

	@JsonProperty("CACHE_TTL_SEC")
	private Integer cacheTtlSec;

	@JsonProperty("USE_YN")
	@NotNull
	private String useYn;

	@JsonProperty("MODIFIED_BY")
	private String modifiedBy;

	@JsonProperty("MODIFIED_AT")
	private String modifiedAt;

}
