public async Task <ResponseModel <ServiceResolutionResult, ResolvedServiceEndpointResponseCode> > DiscoverServicesAsync([FromRoute(Name = "name")] string serviceType, CancellationToken token = default)
        {
            if (LoggingService.IsEnabled(LogLevel.Debug))
            {
                LoggingService.LogDebug($"Service Discover request for: {serviceType}");
            }

            if (!ModelState.IsValid)
            {
                if (LoggingService.IsEnabled(LogLevel.Debug))
                {
                    LoggingService.LogDebug($"Resolution request was sent with an invalid model ModelState.");
                }

                return(Failure <ServiceResolutionResult, ResolvedServiceEndpointResponseCode>(ResolvedServiceEndpointResponseCode.GeneralRequestError));
            }

            //We need to check if we know about the locale
            //If we don't we should indicate it is unlisted
            //We also need to check if the keypair region and servicetype exist
            //TODO: Deployment mode handling, right now it's set to INTERNAL
            if (!await EndpointRepository.ContainsAsync(serviceType, token))
            {
                if (LoggingService.IsEnabled(LogLevel.Debug))
                {
                    LoggingService.LogDebug($"Client requested unlisted service Service: {serviceType}.");
                }

                return(Failure <ServiceResolutionResult, ResolvedServiceEndpointResponseCode>(ResolvedServiceEndpointResponseCode.ServiceUnlisted));
            }

            //Assume no failure
            ResolvedService[] endpoints = (await EndpointRepository
                                           .RetrieveAllAsync(serviceType, token))
                                          .Select(m => new ResolvedService(m.Name, m.Endpoint))
                                          .ToArray();

            return(Success <ServiceResolutionResult, ResolvedServiceEndpointResponseCode>(new ServiceResolutionResult(endpoints)));
        }