# NOTE: This file is auto generated by OpenAPI Generator 7.16.0 (https://openapi-generator.tech). # Do not edit this file manually. defmodule SDKAPI.Api.Default do @moduledoc """ API calls for all endpoints tagged `Default`. """ alias SDKAPI.Connection import SDKAPI.RequestBuilder @doc """ Get health status of feature (including auto-disable state) ### Parameters - `connection` (SDKAPI.Connection): Connection to server - `feature_key` (String.t): - `opts` (keyword): Optional parameters ### Returns - `{:ok, SDKAPI.Model.FeatureHealth.t}` on success - `{:error, Tesla.Env.t}` on failure """ @spec get_feature_health(Tesla.Env.client, String.t, keyword()) :: {:ok, SDKAPI.Model.FeatureHealth.t} | {:ok, SDKAPI.Model.ErrorUnauthorized.t} | {:ok, SDKAPI.Model.Error.t} | {:ok, SDKAPI.Model.ErrorBadRequest.t} | {:ok, SDKAPI.Model.ErrorInternalServerError.t} | {:ok, SDKAPI.Model.ErrorNotFound.t} | {:error, Tesla.Env.t} def get_feature_health(connection, feature_key, _opts \\ []) do request = %{} |> method(:get) |> url("/sdk/v1/features/#{feature_key}/health") |> Enum.into([]) connection |> Connection.request(request) |> evaluate_response([ {200, SDKAPI.Model.FeatureHealth}, {400, SDKAPI.Model.ErrorBadRequest}, {401, SDKAPI.Model.ErrorUnauthorized}, {404, SDKAPI.Model.ErrorNotFound}, {500, SDKAPI.Model.ErrorInternalServerError}, {:default, SDKAPI.Model.Error} ]) end @doc """ Report feature execution error (for auto-disable) ### Parameters - `connection` (SDKAPI.Connection): Connection to server - `feature_key` (String.t): - `feature_error_report` (FeatureErrorReport): - `opts` (keyword): Optional parameters ### Returns - `{:ok, nil}` on success - `{:error, Tesla.Env.t}` on failure """ @spec report_feature_error(Tesla.Env.client, String.t, SDKAPI.Model.FeatureErrorReport.t, keyword()) :: {:ok, nil} | {:ok, SDKAPI.Model.ErrorUnauthorized.t} | {:ok, SDKAPI.Model.Error.t} | {:ok, SDKAPI.Model.ErrorBadRequest.t} | {:ok, SDKAPI.Model.ErrorInternalServerError.t} | {:ok, SDKAPI.Model.ErrorNotFound.t} | {:error, Tesla.Env.t} def report_feature_error(connection, feature_key, feature_error_report, _opts \\ []) do request = %{} |> method(:post) |> url("/sdk/v1/features/#{feature_key}/report-error") |> add_param(:body, :body, feature_error_report) |> Enum.into([]) connection |> Connection.request(request) |> evaluate_response([ {202, false}, {400, SDKAPI.Model.ErrorBadRequest}, {401, SDKAPI.Model.ErrorUnauthorized}, {404, SDKAPI.Model.ErrorNotFound}, {500, SDKAPI.Model.ErrorInternalServerError}, {:default, SDKAPI.Model.Error} ]) end @doc """ Evaluate feature for given context Returns feature evaluation result for given project and context. The project is derived from the API key. ### Parameters - `connection` (SDKAPI.Connection): Connection to server - `feature_key` (String.t): - `request_body` (%{optional(String.t) => any()}): - `opts` (keyword): Optional parameters ### Returns - `{:ok, SDKAPI.Model.EvaluateResponse.t}` on success - `{:error, Tesla.Env.t}` on failure """ @spec sdk_v1_features_feature_key_evaluate_post(Tesla.Env.client, String.t, %{optional(String.t) => any()}, keyword()) :: {:ok, SDKAPI.Model.ErrorUnauthorized.t} | {:ok, SDKAPI.Model.Error.t} | {:ok, SDKAPI.Model.ErrorBadRequest.t} | {:ok, SDKAPI.Model.EvaluateResponse.t} | {:ok, SDKAPI.Model.ErrorInternalServerError.t} | {:ok, SDKAPI.Model.ErrorNotFound.t} | {:error, Tesla.Env.t} def sdk_v1_features_feature_key_evaluate_post(connection, feature_key, request_body, _opts \\ []) do request = %{} |> method(:post) |> url("/sdk/v1/features/#{feature_key}/evaluate") |> add_param(:body, :body, request_body) |> Enum.into([]) connection |> Connection.request(request) |> evaluate_response([ {200, SDKAPI.Model.EvaluateResponse}, {400, SDKAPI.Model.ErrorBadRequest}, {401, SDKAPI.Model.ErrorUnauthorized}, {404, SDKAPI.Model.ErrorNotFound}, {500, SDKAPI.Model.ErrorInternalServerError}, {:default, SDKAPI.Model.Error} ]) end @doc """ Health check for SDK server ### Parameters - `connection` (SDKAPI.Connection): Connection to server - `opts` (keyword): Optional parameters ### Returns - `{:ok, SDKAPI.Model.HealthResponse.t}` on success - `{:error, Tesla.Env.t}` on failure """ @spec sdk_v1_health_get(Tesla.Env.client, keyword()) :: {:ok, nil} | {:ok, SDKAPI.Model.HealthResponse.t} | {:error, Tesla.Env.t} def sdk_v1_health_get(connection, _opts \\ []) do request = %{} |> method(:get) |> url("/sdk/v1/health") |> Enum.into([]) connection |> Connection.request(request) |> evaluate_response([ {200, SDKAPI.Model.HealthResponse}, {:default, false} ]) end @doc """ Track event for a feature (impression / conversion / error / custom) Send a feedback event related to a feature evaluation. Events are written to TimescaleDB (hypertable) and used for analytics, auto-disable and training MAB algorithms. The project is derived from the API key. ### Parameters - `connection` (SDKAPI.Connection): Connection to server - `feature_key` (String.t): - `track_request` (TrackRequest): - `opts` (keyword): Optional parameters ### Returns - `{:ok, nil}` on success - `{:error, Tesla.Env.t}` on failure """ @spec track_feature_event(Tesla.Env.client, String.t, SDKAPI.Model.TrackRequest.t, keyword()) :: {:ok, nil} | {:ok, SDKAPI.Model.ErrorUnauthorized.t} | {:ok, SDKAPI.Model.ErrorTooManyRequests.t} | {:ok, SDKAPI.Model.Error.t} | {:ok, SDKAPI.Model.ErrorBadRequest.t} | {:ok, SDKAPI.Model.ErrorInternalServerError.t} | {:ok, SDKAPI.Model.ErrorNotFound.t} | {:error, Tesla.Env.t} def track_feature_event(connection, feature_key, track_request, _opts \\ []) do request = %{} |> method(:post) |> url("/sdk/v1/features/#{feature_key}/track") |> add_param(:body, :body, track_request) |> Enum.into([]) connection |> Connection.request(request) |> evaluate_response([ {202, false}, {400, SDKAPI.Model.ErrorBadRequest}, {401, SDKAPI.Model.ErrorUnauthorized}, {404, SDKAPI.Model.ErrorNotFound}, {429, SDKAPI.Model.ErrorTooManyRequests}, {500, SDKAPI.Model.ErrorInternalServerError}, {:default, SDKAPI.Model.Error} ]) end end