package context

// csharpEquivalenceClasses returns equivalence classes for csharp.
func csharpEquivalenceClasses() []EquivalenceClass {
	return []EquivalenceClass{
		{
		Concept:    "CS_MIDDLEWARE",
		Phrases:    []string{"middleware", "request pipeline", "invoke", "next middleware", "pipeline builder", "use middleware"},
		Targets:    []string{"Invoke", "InvokeAsync", "Middleware", "OcelotPipelineExtensions", "BuildOcelotPipeline", "UseMiddleware", "IApplicationBuilder"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_DI",
		Phrases:    []string{"dependency injection", "service registration", "di container", "service collection", "inject", "resolve", "wire up"},
		Targets:    []string{"IServiceCollection", "IServiceProvider", "AddSingleton", "AddTransient", "AddScoped", "AddOcelot", "OcelotBuilder", "OcelotBuilderExtensions", "ConfigureServices", "ServiceDescriptor"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_CONFIG",
		Phrases:    []string{"configuration", "options", "settings", "appsettings", "json config", "config file", "file configuration"},
		Targets:    []string{"IConfiguration", "IOptions", "FileConfiguration", "FileGlobalConfiguration", "FileRoute", "ConfigurationBuilder", "IConfigurationRoot", "FileConfigurationController"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_ROUTING",
		Phrases:    []string{"route", "routing", "downstream", "upstream", "path template", "url mapping", "request mapping"},
		Targets:    []string{"DownstreamRoute", "UpstreamPathTemplate", "DownstreamUrlCreatorMiddleware", "DownstreamPathPlaceholderReplacer", "IUrlPathToUrlPathMatcher", "RouteFinder", "RouteCreator"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_AUTH",
		Phrases:    []string{"authentication", "authorization", "claims", "jwt", "token", "scope", "policy"},
		Targets:    []string{"AuthenticationMiddleware", "AuthenticationOptions", "IClaimsAuthorizer", "IScopesAuthorizer", "ClaimsAuthorizer", "ScopesAuthorizer", "ClaimToThing", "AuthorizationMiddleware"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_LOADBALANCE",
		Phrases:    []string{"load balancing", "load balancer", "round robin", "least connections", "sticky session", "service discovery"},
		Targets:    []string{"ILoadBalancer", "ILoadBalancerCreator", "RoundRobin", "LeastConnection", "CookieStickySessions", "IServiceDiscoveryProvider", "ServiceDiscoveryFinderMiddleware"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_CACHE",
		Phrases:    []string{"cache", "caching", "output cache", "response cache", "cached response"},
		Targets:    []string{"IOcelotCache", "OutputCacheMiddleware", "CacheOptions", "DefaultMemoryCache", "CachedResponse", "ICacheKeyGenerator", "DefaultCacheKeyGenerator"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_RATELIMIT",
		Phrases:    []string{"rate limit", "rate limiting", "throttle", "throttling", "request limit"},
		Targets:    []string{"RateLimitingMiddleware", "RateLimitOptions", "RateLimitOptionsCreator", "IRateLimiting"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_HTTP_CLIENT",
		Phrases:    []string{"http client", "delegating handler", "http request", "http response", "downstream request", "request builder"},
		Targets:    []string{"HttpClientBuilder", "IDelegatingHandlerHandlerProvider", "DelegatingHandler", "IHttpRequester", "HttpClientHttpRequester", "DownstreamRequest", "HttpRequestMessage"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_QUALITY_OF_SERVICE",
		Phrases:    []string{"circuit breaker", "quality of service", "qos", "polly", "retry", "fault tolerance"},
		Targets:    []string{"IQoSProvider", "QoSProviderFactory", "PollyQoSProvider", "CircuitBreaker", "QoSOptions"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_HEADER_TRANSFORM",
		Phrases:    []string{"header", "header transformation", "find and replace", "add header", "remove header", "upstream header", "downstream header"},
		Targets:    []string{"IHttpResponseHeaderReplacer", "IHttpRequestHeaderReplacer", "AddHeader", "HeaderTransformations", "HttpResponseHeaderReplacer", "HeaderFindAndReplaceMiddleware"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_AGGREGATION",
		Phrases:    []string{"aggregation", "aggregate", "fan out", "merge responses", "request aggregator"},
		Targets:    []string{"IDefinedAggregator", "MultiplexingMiddleware", "UserDefinedResponseAggregator", "SimpleJsonResponseAggregator", "AggregateRoute"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_WEBSOCKET",
		Phrases:    []string{"websocket", "websockets", "ws proxy", "bidirectional", "socket"},
		Targets:    []string{"WebSocketsProxyMiddleware", "IWebSocketsFactory", "IClientWebSocketConnector", "PumpAsync"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_SECURITY",
		Phrases:    []string{"security", "ip whitelist", "ip blacklist", "ip filter", "access control", "security policy"},
		Targets:    []string{"SecurityMiddleware", "ISecurityPolicy", "IPSecurityPolicy", "SecurityOptions"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "CS_ERROR_HANDLING",
		Phrases:    []string{"error handling", "exception", "error response", "status code", "error middleware"},
		Targets:    []string{"ExceptionHandlerMiddleware", "ResponderMiddleware", "Error", "UnauthenticatedError", "UnauthorizedError", "UnableToFindDownstreamRouteError"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "ASPNET_MIDDLEWARE",
		Phrases:    []string{"asp.net middleware", "request pipeline", "middleware pipeline", "use middleware"},
		Targets:    []string{"IMiddleware", "RequestDelegate", "UseMiddleware", "ApplicationBuilder", "IApplicationBuilder"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "ASPNET_CONTROLLER",
		Phrases:    []string{"asp.net controller", "api controller", "action result", "web api"},
		Targets:    []string{"ControllerBase", "Controller", "ApiController", "ActionResult", "IActionResult", "ObjectResult"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "ASPNET_DI",
		Phrases:    []string{"dependency injection", "service collection", "service provider", "add scoped", "add transient"},
		Targets:    []string{"IServiceCollection", "IServiceProvider", "ServiceDescriptor", "AddScoped", "AddTransient", "AddSingleton"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "OCELOT_GATEWAY",
		Phrases:    []string{"ocelot configuration", "ocelot route", "ocelot pipeline"},
		Targets:    []string{"DownstreamRoute", "UpstreamPathTemplate", "FileConfiguration", "OcelotMiddleware"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "OCELOT_AUTH",
		Phrases:    []string{"ocelot authentication", "jwt token middleware", "ocelot authorization"},
		Targets:    []string{"AuthenticationMiddleware", "ClaimsToClaimsMiddleware", "AuthorisationMiddleware", "ScopesAuthoriser"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "OCELOT_SECURITY",
		Phrases:    []string{"security policy", "ip whitelist", "ip blacklist", "security middleware"},
		Targets:    []string{"SecurityMiddleware", "ISecurityPolicy", "IPSecurityPolicy", "SecurityOptions"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "OCELOT_RATELIMIT",
		Phrases:    []string{"rate limiting", "rate limit", "throttle"},
		Targets:    []string{"RateLimitingMiddleware", "RateLimitOptions", "RateLimitOptionsCreator"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "OCELOT_QOS",
		Phrases:    []string{"circuit breaker", "quality of service", "polly"},
		Targets:    []string{"QoSMiddleware", "IQoSProvider", "PollyQoSProvider"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "OCELOT_DI",
		Phrases:    []string{"ocelot dependency injection", "add ocelot", "ocelot builder", "ocelot wiring", "feature registration"},
		Targets:    []string{"ServiceCollectionExtensions", "AddOcelot", "IOcelotBuilder", "AddOcelotCache", "AddOcelotRateLimiting", "AddConfigurationValidators"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "OCELOT_ERROR",
		Phrases:    []string{"error propagation", "exception handler", "error response", "status code mapping", "ocelot error"},
		Targets:    []string{"ExceptionHandlerMiddleware", "ExceptionHandlerMiddleware.Invoke", "ResponderMiddleware", "ResponderMiddleware.SetErrorResponse", "IErrorsToHttpStatusCodeMapper", "ErrorsToHttpStatusCodeMapper"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "OCELOT_AGGREGATOR",
		Phrases:    []string{"response aggregator", "fan out", "merge responses", "multiplexing"},
		Targets:    []string{"MultiplexingMiddleware", "IDefinedAggregator", "IResponseAggregatorFactory", "UserDefinedResponseAggregator"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "OCELOT_REQUEST",
		Phrases:    []string{"request mapping", "request dispatch", "downstream request", "http client pool", "request correlation"},
		Targets:    []string{"IRequestMapper", "RequestMapper", "RequestMapper.Map", "DownstreamRequestInitialiserMiddleware", "HttpRequesterMiddleware", "IHttpRequester", "RequestIdMiddleware"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "OCELOT_HANDLER",
		Phrases:    []string{"delegating handler", "http handler", "handler pipeline", "handler factory"},
		Targets:    []string{"IDelegatingHandlerFactory", "DelegatingHandlerFactory", "GlobalDelegatingHandler", "MessageInvokerPool", "TimeoutDelegatingHandler"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "OCELOT_TRANSFORM",
		Phrases:    []string{"header transformation", "find and replace", "header template"},
		Targets:    []string{"HttpHeadersTransformationMiddleware", "IHeaderFindAndReplaceCreator", "HeaderFindAndReplaceCreator", "UpstreamHeaderTemplatePatternCreator"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
		{
		Concept:    "ENTITY_FRAMEWORK",
		Phrases:    []string{"entity framework", "dbcontext", "ef migration", "linq query", "ef core"},
		Targets:    []string{"DbContext", "DbSet", "Migration", "ModelBuilder", "OnModelCreating", "SaveChanges"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "csharp",
		},
	}
}
