Skip to main content

Hidden

Struct Hidden 

Source
pub struct Hidden {
    pub client: Client,
}
Available on crate feature requests only.

Fields§

§client: Client

Implementations§

Source§

impl Hidden

Source

pub async fn auth_api_key<'a>(&'a self) -> Result<AuthApiKeyResponse, Error>

Authenticate using an api-key. This is disabled on production but can be used in dev to login without email magic.

This returns a session token.

async fn example_hidden_auth_api_key() -> anyhow::Result<()> {
    let client = kittycad::Client::new_from_env();
    let result: kittycad::types::AuthApiKeyResponse = client.hidden().auth_api_key().await?;
    println!("{:?}", result);
    Ok(())
}
Source

pub async fn auth_email<'a>( &'a self, body: &EmailAuthenticationForm, ) -> Result<VerificationTokenResponse, Error>

Create an email verification request for a user.

async fn example_hidden_auth_email() -> anyhow::Result<()> {
    let client = kittycad::Client::new_from_env();
    let result: kittycad::types::VerificationTokenResponse = client
        .hidden()
        .auth_email(&kittycad::types::EmailAuthenticationForm {
            callback_url: Some("https://example.com/foo/bar".to_string()),
            email: "email@example.com".to_string(),
        })
        .await?;
    println!("{:?}", result);
    Ok(())
}
Source

pub async fn auth_email_marketing_confirm_post<'a>( &'a self, body: &EmailMarketingConfirmTokenBody, ) -> Result<(), Error>

Consume a confirmation token and finalize double opt-in.

async fn example_hidden_auth_email_marketing_confirm_post() -> anyhow::Result<()> {
    let client = kittycad::Client::new_from_env();
    client
        .hidden()
        .auth_email_marketing_confirm_post(&kittycad::types::EmailMarketingConfirmTokenBody {
            token: "some-string".to_string(),
        })
        .await?;
    Ok(())
}
Source

pub async fn auth_email_callback<'a>( &'a self, callback_url: Option<String>, email: &'a str, token: &'a str, ) -> Result<(), Error>

Listen for callbacks for email authentication for users.

Parameters:

  • callback_url: Option<String>: The URL to redirect back to after we have authenticated.
  • email: &'astr: The user’s email. (required)
  • token: &'astr: The verification token. (required)
async fn example_hidden_auth_email_callback() -> anyhow::Result<()> {
    let client = kittycad::Client::new_from_env();
    client
        .hidden()
        .auth_email_callback(
            Some("https://example.com/foo/bar".to_string()),
            "email@example.com",
            "some-string",
        )
        .await?;
    Ok(())
}
Source

pub async fn get_auth_saml_by_org<'a>( &'a self, callback_url: Option<String>, org_id: Uuid, ) -> Result<(), Error>

GET /auth/saml/{org_id}

Redirects the browser straight to the org’s SAML IdP.

Parameters:

  • callback_url: Option<String>: The URL to redirect back to after we have authenticated.
  • org_id: uuid::Uuid: The ID of the organisation that owns the IdP. (required)
use std::str::FromStr;
async fn example_hidden_get_auth_saml_by_org() -> anyhow::Result<()> {
    let client = kittycad::Client::new_from_env();
    client
        .hidden()
        .get_auth_saml_by_org(
            Some("https://example.com/foo/bar".to_string()),
            uuid::Uuid::from_str("d9797f8d-9ad6-4e08-90d7-2ec17e13471c")?,
        )
        .await?;
    Ok(())
}
Source

pub async fn get_auth_saml<'a>( &'a self, callback_url: Option<String>, provider_id: Uuid, ) -> Result<(), Error>

Get a redirect straight to the SAML IdP.

The UI uses this to avoid having to ask the API anything about the IdP. It already knows the SAML IdP ID from the path, so it can just link to this path and rely on the API to redirect to the actual IdP.

Parameters:

  • callback_url: Option<String>: The URL to redirect back to after we have authenticated.
  • provider_id: uuid::Uuid: The ID of the identity provider. (required)
use std::str::FromStr;
async fn example_hidden_get_auth_saml() -> anyhow::Result<()> {
    let client = kittycad::Client::new_from_env();
    client
        .hidden()
        .get_auth_saml(
            Some("https://example.com/foo/bar".to_string()),
            uuid::Uuid::from_str("d9797f8d-9ad6-4e08-90d7-2ec17e13471c")?,
        )
        .await?;
    Ok(())
}
Source

pub async fn post_auth_saml<'a>( &'a self, provider_id: Uuid, body: &Bytes, ) -> Result<(), Error>

Authenticate a user via SAML

Parameters:

  • provider_id: uuid::Uuid: The ID of the identity provider. (required)
use std::str::FromStr;
async fn example_hidden_post_auth_saml() -> anyhow::Result<()> {
    let client = kittycad::Client::new_from_env();
    client
        .hidden()
        .post_auth_saml(
            uuid::Uuid::from_str("d9797f8d-9ad6-4e08-90d7-2ec17e13471c")?,
            &bytes::Bytes::from("some-string"),
        )
        .await?;
    Ok(())
}
Source

pub async fn logout<'a>(&'a self) -> Result<(), Error>

This endpoint removes the session cookie for a user.

This is used in logout scenarios.

async fn example_hidden_logout() -> anyhow::Result<()> {
    let client = kittycad::Client::new_from_env();
    client.hidden().logout().await?;
    Ok(())
}
Source

pub async fn download_shared_project<'a>( &'a self, format: Option<ProjectArchiveFormat>, key: &'a str, ) -> Result<(), Error>

Download a project using a share link.

Parameters:

  • format: Option<crate::types::ProjectArchiveFormat>: Archive format to return. Defaults to tar.
  • key: &'astr: Share-link key. (required)
async fn example_hidden_download_shared_project() -> anyhow::Result<()> {
    let client = kittycad::Client::new_from_env();
    client
        .hidden()
        .download_shared_project(Some(kittycad::types::ProjectArchiveFormat::Zip), "some-string")
        .await?;
    Ok(())
}

Redirect the user to the URL for the shortlink.

This endpoint might require authentication by a Zoo user. It gets the shortlink for the user and redirects them to the URL. If the shortlink is owned by an org, the user must be a member of the org.

Parameters:

  • key: &'astr: The key of the shortlink. (required)
async fn example_hidden_redirect_user_shortlink() -> anyhow::Result<()> {
    let client = kittycad::Client::new_from_env();
    client
        .hidden()
        .redirect_user_shortlink("some-string")
        .await?;
    Ok(())
}

Trait Implementations§

Source§

impl Clone for Hidden

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Hidden

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoResult<T> for T

Source§

type Err = !

Source§

fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>

Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + 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: Sized + 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 = !

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

fn try_from(value: U) -> Result<T, !>

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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