/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import { KindEnums } from '@apic/api-model/common/StudioEnums.js';
import { equalsIgnoreCase } from '../../common/data-helper.js';

const isPolicyKind = (kind: string | null | undefined): boolean => {
	if (typeof kind !== 'string') {
		return false;
	}

	const policyKinds: string[] = [
		KindEnums.Log,
		KindEnums.ErrorProcessing,
		KindEnums.IdentifyAndAuthorize,
		KindEnums.SetContextVariable,
		KindEnums.MonitorTraffic,
		KindEnums.CacheServiceResult,
		KindEnums.RateLimiter,
		KindEnums.InvokeAWSLambdaFunction,
		KindEnums.DataMasking,
		KindEnums.HTTPInvoke,
		KindEnums.InvokeMessagingExtension,
		KindEnums.TransformRequest,
		KindEnums.TransformResponse,
		KindEnums.ValidateAPISpecification,
		KindEnums.CORS,
		KindEnums.Route,
		KindEnums.Transport,
		KindEnums.OutboundAlias,
		KindEnums.OutboundAnonymous,
		KindEnums.OutboundBasicAuth,
		KindEnums.OutboundIncomingJWT,
		KindEnums.OutboundKerberosAuth,
		KindEnums.OutboundNTLMAuth,
		KindEnums.OutboundOAuth2,
		KindEnums.Scope,
		KindEnums.WebMethodsISService,
		KindEnums.CustomHttpHeader,
		KindEnums.InboundBulkHead,
        KindEnums.AuthorizeUser,
		KindEnums.SetMediaType
	];

	return policyKinds.some((policyKind) => equalsIgnoreCase(policyKind, kind));
};

export { isPolicyKind };
