override fun createQuery()

in plugin-azure-server/src/main/kotlin/jetbrains/buildServer/clouds/azure/arm/connector/tasks/FetchServicesTaskImpl.kt [11:37]


    override fun createQuery(api: AzureApi, taskContext: AzureTaskContext, parameter: String): Single<List<FetchServicesTaskServiceDescriptor>> {
        return api
                .providers()
                .listAsync()
                .filter { it.registrationState() == REGISTERED }
                .withLatestFrom(
                        api
                                .subscriptions()
                                .getByIdAsync(api.subscriptionId())
                                .map { it.getLocationByRegion(Region.fromName(parameter)).displayName() }
                ) {
                    provider, locationName ->
                        val resourceTypes =
                            provider
                                    .resourceTypes()
                                    .filter { it.locations().contains(locationName) }
                                    .map { it.resourceType() }
                    FetchServicesTaskServiceDescriptor(
                            provider.namespace(),
                            resourceTypes
                    )
                }
                .filter { it.resourceTypes.isNotEmpty() }
                .toList()
                .last()
                .toSingle()
    }