PortkeyConfig

Struct PortkeyConfig 

Source
pub struct PortkeyConfig { /* private fields */ }
Expand description

Configuration for the Portkey API client.

This struct holds all the necessary configuration parameters for creating and using a Portkey API client, including authentication credentials, API endpoint information, and HTTP client settings.

§Examples

Creating a config with virtual key:

use portkey_sdk::PortkeyConfig;
use portkey_sdk::builder::AuthMethod;

let config = PortkeyConfig::builder()
    .with_api_key("your-portkey-api-key")
    .with_auth_method(AuthMethod::virtual_key("your-virtual-key"))
    .build()
    .unwrap();

Creating a config with provider auth:

use portkey_sdk::PortkeyConfig;
use portkey_sdk::builder::AuthMethod;

let config = PortkeyConfig::builder()
    .with_api_key("your-portkey-api-key")
    .with_auth_method(AuthMethod::provider_auth("openai", "Bearer sk-..."))
    .build()
    .unwrap();

Creating a config from environment:

// Requires PORTKEY_API_KEY and PORTKEY_VIRTUAL_KEY environment variables
let config = PortkeyConfig::from_env().unwrap();

Implementations§

Source§

impl PortkeyConfig

Source

pub fn builder() -> PortkeyBuilder

Creates a new configuration builder.

This is the recommended way to construct a PortkeyConfig.

§Examples
let config = PortkeyConfig::builder()
    .with_api_key("your-api-key")
    .build()
    .unwrap();
Source

pub fn build_client(self) -> Result<PortkeyClient>

Creates a new Portkey API client using this configuration.

§Examples
let config = PortkeyConfig::builder()
    .with_api_key("your-api-key")
    .build()
    .unwrap();

let client = config.build_client().unwrap();
Source

pub fn api_key(&self) -> &str

Returns the API key.

Source

pub fn masked_api_key(&self) -> String

Returns a masked version of the API key for safe display/logging.

Shows the first 4 characters followed by “”, or just “” if the key is shorter than 4 characters.

Source

pub fn auth_method(&self) -> &AuthMethod

Returns the authentication method.

Source

pub fn base_url(&self) -> &str

Returns the base URL.

Source

pub fn timeout(&self) -> Duration

Returns the timeout duration.

Source

pub fn trace_id(&self) -> Option<&str>

Returns the trace ID, if set.

Source

pub fn metadata(&self) -> Option<&HashMap<String, Value>>

Returns the metadata, if set.

Source

pub fn cache_namespace(&self) -> Option<&str>

Returns the cache namespace, if set.

Source

pub fn cache_force_refresh(&self) -> Option<bool>

Returns the cache force refresh flag, if set.

Source

pub fn from_env() -> Result<Self>

Creates a configuration from environment variables.

§Environment Variables

Required:

  • PORTKEY_API_KEY - Your Portkey API key

Authentication (choose one):

  • PORTKEY_VIRTUAL_KEY - Virtual key for managed provider credentials
  • PORTKEY_PROVIDER + PORTKEY_AUTHORIZATION - Direct provider auth
  • PORTKEY_CONFIG - Config ID for complex routing

Optional:

  • PORTKEY_CUSTOM_HOST - Custom host URL (with provider auth)
  • PORTKEY_BASE_URL - Base URL for the API
  • PORTKEY_TIMEOUT_SECS - Request timeout in seconds
  • PORTKEY_TRACE_ID - Trace ID for request tracking
  • PORTKEY_CACHE_NAMESPACE - Cache namespace
  • PORTKEY_CACHE_FORCE_REFRESH - Force cache refresh (true/false)
§Examples
# Virtual key authentication
export PORTKEY_API_KEY=your-portkey-api-key
export PORTKEY_VIRTUAL_KEY=your-virtual-key

# Provider authentication
export PORTKEY_API_KEY=your-portkey-api-key
export PORTKEY_PROVIDER=openai
export PORTKEY_AUTHORIZATION="Bearer sk-..."

# Config-based authentication
export PORTKEY_API_KEY=your-portkey-api-key
export PORTKEY_CONFIG=pc-config-123

Trait Implementations§

Source§

impl Clone for PortkeyConfig

Source§

fn clone(&self) -> PortkeyConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PortkeyConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more