Current section
Files
Jump to
Current section
Files
lib/sdkapi/api/default.ex
# 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