package com.eactive.eai.adapter.http.dynamic;

public interface HttpAdapterServiceKey {
	// URL 파리미터 DEFAULT 이름 
	static final String PARAMETER_MESSAGE = "_message_";
	
	// URL 파리미터 이름
	static final String PARAMETER_NAME = "PARAMETER_NAME";
	
	// Http Adapter 이름
	static final String HTTP_ADAPTER_NAME = "HTTP_ADAPTER_NAME";
	
	// Http Adapter Group 이름
	static final String HTTP_ADAPTER_GROUP_NAME = "HTTP_ADAPTER_GROUP_NAME";

	// Http Response Type 이름
	static final String RESPONSE_TYPE = "RESPONSE_TYPE";

	public static final String RESPONSE_TYPE_SYNC = "SYNC";
	public static final String RESPONSE_TYPE_ASYNC = "ASYN";

	// Http Encode 이름
	static final String ENCODE = "ENCODE";

	// Http URL Decode 여부
	static final String URL_DECODE_YN = "URL_DECODE_YN";

	// Body data 사용 여부
	static final String REQUEST_BODY_YN = "REQUEST_BODY_YN";

	// 삭제할 데이타 길이
	static final String REMOVE_LENGTH = "REMOVE_LENGTH";

	// 추가할 데이타
	static final String ADD_DATA = "ADD_DATA";
	
	// 거래 로그
	static final String TRACE_LEVEL = "TRACE_LEVEL";

	static final String ERROR_RESPONSE_FORMAT = "ERROR_RESPONSE_FORMAT";

	// REST용 전달값
	static final String INBOUND_METHOD = "INBOUND_METHOD";
	static final String INBOUND_URI = "INBOUND_URI";
	static final String INBOUND_EXTURI = "INBOUND_EXTURI";
	static final String INBOUND_EXTPARAMS = "INBOUND_EXTPARAMS";
	static final String INBOUND_HEADER = "INBOUND_HEADER";
	static final String INBOUND_QUERY_STRING = "INBOUND_QUERY_STRING";
	static final String INBOUND_REWRITE_PATH = "INBOUND_REWRITE_PATH";
	static final String INBOUND_REMOTE_ADDR = "INBOUND_REMOTE_ADDR";
	static final String INBOUND_SCHEME = "INBOUND_SCHEME";
	static final String INBOUND_PATH_VARIABLES = "INBOUND_PATH_VARIABLES";
	static final String INBOUND_REQUEST_MESSAGE = "INBOUND_REQUEST_MESSAGE";
	static final String INBOUND_CLIENT_IP = "INBOUND_CLIENT_IP";

	static final String INBOUND_SYNC_ASYNC_TYPE = "INBOUND_SYNC_ASYNC_TYPE";

	public static final String OUTBOUND_RESPONSE_HEADERS = "OUTBOUND_RESPONSE_HEADERS";
	public static final String OUTBOUND_RESPONSE_MESSAGE = "OUTBOUND_RESPONSE_MESSAGE";
	public static final String OUTBOUND_RESPONSE_STATUS = "OUTBOUND_RESPONSE_STATUS";
	public static final String OUTBOUND_PROPERTY_MAP = "OUTBOUND_PROPERTY_MAP";

	// API path
	static final String API_PATH = "API_PATH";

	// 요청전 수행할 필터(쉼표(,)로 구분)
	static final String PRE_FILTERS = "PRE_FILTERS";

	// 요청후 수행할 필터(쉼표(,)로 구분)
	static final String POST_FILTERS = "POST_FILTERS";

	static final String ALLOW_IP = "ALLOW_IP";
	
	static final String ENC_PATHS = "ENC_PATHS";
	
	static final String ENCRYPT_ALGORITHM = "ENCRYPT_ALGORITHM";  //jwhong 
	static final String INBOUND_TOKEN = "AUTHORIZATION"; // jwhong
	static final String ENCRYPT_BASE_TYPE = "ENCRYPT_BASE_TYPE"; // jwhong
	static final String ENCRYPT_AES256_IV = "ENCRYPT_AES256_IV"; // jwhong
	static final String ENCRYPT_AES256_KEY = "ENCRYPT_AES256_KEY"; // jwhong
	static final String INBOUND_REQUESTED_TIME = "INBOUND_REQUESTED_TIME"; // jwhong
	static final String GUID = "GUID"; // jwhong
	static final String API_SERVICE_CODE = "API_SERVICE_CODE"; // jwhong
	static final String OUT_ADAPTER_GROUP_NAME = "OUT_ADAPTER_GROUP_NAME"; // jwhong
	
	//응답 처리 용 표준 전문 오브젝트
	static final String STANDARD_MESSAGE_OBJECT = "STANDARD_MESSAGE_OBJECT";
	
	// 어댑터별 인증 키 헤더 이름
	static final String ADAPTER_TOKEN_HEADER_NAME = "ADAPTER_TOKEN_HEADER_NAME";
	static final String ADAPTER_APIKEY_HEADER_NAME = "ADAPTER_APIKEY_HEADER_NAME";
}
