ApiKeyHandler

Struct ApiKeyHandler 

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

Handler for API key operations

Implementations§

Source§

impl ApiKeyHandler

Source

pub fn new(client: FilesClient) -> Self

Creates a new ApiKeyHandler

Source

pub async fn list( &self, user_id: Option<i64>, cursor: Option<String>, per_page: Option<i32>, ) -> Result<(Vec<ApiKeyEntity>, PaginationInfo)>

List API keys

Returns a paginated list of API keys with usage information and metadata.

§Arguments
  • user_id - Filter by specific user ID (None for all users)
  • cursor - Pagination cursor from previous response
  • per_page - Number of results per page (max 10,000)
§Returns

A tuple containing:

  • Vector of ApiKeyEntity objects
  • PaginationInfo with cursors for next/previous pages
§Example
use files_sdk::{FilesClient, ApiKeyHandler};

let client = FilesClient::builder().api_key("key").build()?;
let handler = ApiKeyHandler::new(client);

// List all API keys
let (keys, pagination) = handler.list(None, None, Some(50)).await?;

for key in keys {
    println!("{}: Created {} - Last used {}",
        key.name.unwrap_or_default(),
        key.created_at.unwrap_or_default(),
        key.last_use_at.unwrap_or_default());
}

// Get keys for specific user
let (user_keys, _) = handler.list(Some(12345), None, None).await?;
Source

pub async fn get(&self, id: i64) -> Result<ApiKeyEntity>

Get details of a specific API key

§Arguments
  • id - API Key ID
§Returns

An ApiKeyEntity with key details (note: the actual key value is not included)

§Example
use files_sdk::{FilesClient, ApiKeyHandler};

let client = FilesClient::builder().api_key("key").build()?;
let handler = ApiKeyHandler::new(client);

let key = handler.get(12345).await?;
println!("Key name: {}", key.name.unwrap_or_default());
println!("Expires: {}", key.expires_at.unwrap_or_default());
Source

pub async fn create( &self, name: Option<&str>, description: Option<&str>, expires_at: Option<&str>, permission_set: Option<&str>, ) -> Result<ApiKeyEntity>

Create a new API key

Generates a new API key for programmatic access. The key value is only returned once during creation - save it securely immediately.

§Arguments
  • name - Descriptive name for the key
  • description - Detailed description of key purpose
  • expires_at - ISO 8601 expiration timestamp (e.g., “2025-12-31T23:59:59Z”)
  • permission_set - Named permission set to limit key capabilities
§Returns

An ApiKeyEntity with the key field containing the actual API key. This is the only time the key value will be visible.

§Example
use files_sdk::{FilesClient, ApiKeyHandler};

let client = FilesClient::builder().api_key("key").build()?;
let handler = ApiKeyHandler::new(client);

// Create key with expiration
let key = handler.create(
    Some("CI/CD Pipeline Key"),
    Some("For automated deployments"),
    Some("2025-12-31T23:59:59Z"),
    None
).await?;

// CRITICAL: Save this key now - it won't be shown again!
println!("API Key: {}", key.key.unwrap());
println!("Store this securely in your CI/CD secrets");
Source

pub async fn update( &self, id: i64, name: Option<&str>, description: Option<&str>, expires_at: Option<&str>, ) -> Result<ApiKeyEntity>

Update an API key’s metadata

Modifies key information such as name, description, or expiration. The actual key value cannot be changed.

§Arguments
  • id - API Key ID to update
  • name - New descriptive name
  • description - New description
  • expires_at - New expiration timestamp
§Returns

The updated ApiKeyEntity

§Example
use files_sdk::{FilesClient, ApiKeyHandler};

let client = FilesClient::builder().api_key("key").build()?;
let handler = ApiKeyHandler::new(client);

// Extend expiration date
let key = handler.update(
    12345,
    None,
    None,
    Some("2026-12-31T23:59:59Z")
).await?;
Source

pub async fn delete(&self, id: i64) -> Result<()>

Delete an API key permanently

Revokes the API key immediately. Any requests using this key will fail. This operation cannot be undone.

§Arguments
  • id - API Key ID to delete
§Example
use files_sdk::{FilesClient, ApiKeyHandler};

let client = FilesClient::builder().api_key("key").build()?;
let handler = ApiKeyHandler::new(client);

// Revoke compromised or unused key
handler.delete(12345).await?;
println!("API key revoked successfully");

Trait Implementations§

Source§

impl Clone for ApiKeyHandler

Source§

fn clone(&self) -> ApiKeyHandler

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 ApiKeyHandler

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> 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
Source§

impl<T> ErasedDestructor for T
where T: 'static,