All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.com.algolia.search.model.response.ResponseLogs.kt Maven / Gradle / Ivy

package com.algolia.search.model.response

import com.algolia.search.model.ClientDate
import com.algolia.search.model.IndexName
import com.algolia.search.model.QueryID
import com.algolia.search.model.insights.UserToken
import com.algolia.search.model.search.Query
import com.algolia.search.serialize.internal.Key
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
public data class ResponseLogs(
    @SerialName(Key.Logs) val logs: List
) {

    @Serializable
    public data class Log(
        /**
         * Date in ISO-8601 format.
         */
        @SerialName(Key.Timestamp) val timestamp: ClientDate,
        /**
         * Rest type of the method.
         */
        @SerialName(Key.Method) val method: String,
        /**
         * Http response code.
         */
        @SerialName(Key.Answer_Code) val answerCode: String,
        /**
         * Request body. It’s truncated after 1000 characters.
         */
        @SerialName(Key.Query_Body) val queryBody: String,
        /**
         * Answer body. It’s truncated after 1000 characters.
         */
        @SerialName(Key.Answer) val answer: String,
        /**
         * Request URL.
         */
        @SerialName(Key.Url) val url: String,
        /**
         * Client ip of the call.
         */
        @SerialName(Key.Ip) val ip: String,
        /**
         * Request Headers (API Key is obfuscated).
         */
        @SerialName(Key.Query_Headers) val queryHeaders: String,
        /**
         * SHA1 ID of entry.
         */
        @SerialName(Key.Sha1) val sha1: String,
        /**
         * Number of API calls.
         */
        @SerialName(Key.Nb_Api_Calls) val nbApiCallsOrNull: Long? = null,
        /**
         * Processing time for the query. This does not include network time.
         */
        @SerialName(Key.Processing_Time_Ms) val processingTimeMS: Long,
        /**
         * Number of hits returned for the query [Query].
         */
        @SerialName(Key.Query_Nb_Hits) val queryNbHitsOrNull: Int? = null,
        /**
         * [IndexName] of the log.
         */
        @SerialName(Key.Index) val indexNameOrNull: IndexName? = null,
        @SerialName(Key._Exhaustive_Nb_Hits) val exhaustiveNbHits: Boolean? = null,
        @SerialName(Key._Exhaustive_Faceting) val exhaustiveFaceting: Boolean? = null,
        @SerialName(Key.Query_Params) val queryParamsOrNull: String? = null,
        /**
         * Contains an object for each performed query with the indexName, queryID, offset, and userToken.
         */
        @SerialName(Key.Inner_Queries) val innerQueries: List? = null
    ) {

        public val indexName: IndexName
            get() = indexNameOrNull!!

        public val queryParams: String
            get() = queryParamsOrNull!!

        public val queryNbHits: Int
            get() = queryNbHitsOrNull!!

        public val nbApiCalls: Long
            get() = nbApiCallsOrNull!!

        @Serializable
        public data class InnerQuery(
            @SerialName(Key.Index_Name) val indexName: IndexName,
            @SerialName(Key.Query_ID) val queryID: QueryID? = null,
            @SerialName(Key.Offset) val offset: Int? = null,
            @SerialName(Key.User_Token) val userToken: UserToken? = null
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy