gestalt-sdk 0.0.1-alpha.19

Rust SDK scaffolding and generated protocol bindings for Gestalt executable providers
Documentation
// Code generated by sdkgen. DO NOT EDIT.

//! Generated wire conversions for external_credential.proto.

use crate::codec::support::{from_wire_timestamp, to_wire_timestamp};
use crate::external_credential::{
    DeleteExternalCredentialRequest, ExchangeExternalCredentialRequest,
    ExchangeExternalCredentialResponse, ExternalCredential, ExternalCredentialAuthConfig,
    ExternalCredentialLookup, ExternalCredentialTokenExchangeDriver,
    ExternalCredentialTokenResponse, GetExternalCredentialRequest, ListExternalCredentialsRequest,
    ListExternalCredentialsResponse, ResolveExternalCredentialRequest,
    ResolveExternalCredentialResponse, UpsertExternalCredentialRequest,
    ValidateExternalCredentialConfigRequest,
};
use crate::generated::v1;

/// Converts a native `DeleteExternalCredentialRequest` to its wire message.
pub(crate) fn to_wire_delete_external_credential_request(
    value: DeleteExternalCredentialRequest,
) -> v1::DeleteExternalCredentialRequest {
    v1::DeleteExternalCredentialRequest { id: value.id }
}

/// Converts a native `ExchangeExternalCredentialRequest` to its wire message.
pub(crate) fn to_wire_exchange_external_credential_request(
    value: ExchangeExternalCredentialRequest,
) -> v1::ExchangeExternalCredentialRequest {
    v1::ExchangeExternalCredentialRequest {
        provider: value.provider,
        connection: value.connection,
        connection_id: value.connection_id,
        credential_subject_id: value.credential_subject_id,
        actor_subject_id: value.actor_subject_id,
        instance: value.instance,
        auth: value.auth.map(to_wire_external_credential_auth_config),
        credential_json: value.credential_json,
        connection_params: value.connection_params,
    }
}

/// Converts a wire `ExchangeExternalCredentialResponse` to its native message.
pub(crate) fn from_wire_exchange_external_credential_response(
    value: v1::ExchangeExternalCredentialResponse,
) -> ExchangeExternalCredentialResponse {
    ExchangeExternalCredentialResponse {
        token_response: value
            .token_response
            .map(from_wire_external_credential_token_response),
    }
}

/// Converts a native `ExternalCredential` to its wire message.
pub(crate) fn to_wire_external_credential(value: ExternalCredential) -> v1::ExternalCredential {
    v1::ExternalCredential {
        id: value.id,
        subject_id: value.subject_id,
        instance: value.instance,
        access_token: value.access_token,
        refresh_token: value.refresh_token,
        scopes: value.scopes,
        expires_at: value.expires_at.map(to_wire_timestamp),
        last_refreshed_at: value.last_refreshed_at.map(to_wire_timestamp),
        refresh_error_count: value.refresh_error_count,
        metadata_json: value.metadata_json,
        created_at: value.created_at.map(to_wire_timestamp),
        updated_at: value.updated_at.map(to_wire_timestamp),
        connection_id: value.connection_id,
    }
}

/// Converts a wire `ExternalCredential` to its native message.
pub(crate) fn from_wire_external_credential(value: v1::ExternalCredential) -> ExternalCredential {
    ExternalCredential {
        id: value.id,
        subject_id: value.subject_id,
        instance: value.instance,
        access_token: value.access_token,
        refresh_token: value.refresh_token,
        scopes: value.scopes,
        expires_at: value.expires_at.map(from_wire_timestamp),
        last_refreshed_at: value.last_refreshed_at.map(from_wire_timestamp),
        refresh_error_count: value.refresh_error_count,
        metadata_json: value.metadata_json,
        created_at: value.created_at.map(from_wire_timestamp),
        updated_at: value.updated_at.map(from_wire_timestamp),
        connection_id: value.connection_id,
    }
}

/// Converts a native `ExternalCredentialAuthConfig` to its wire message.
pub(crate) fn to_wire_external_credential_auth_config(
    value: ExternalCredentialAuthConfig,
) -> v1::ExternalCredentialAuthConfig {
    v1::ExternalCredentialAuthConfig {
        r#type: value.r#type,
        token: value.token,
        token_prefix: value.token_prefix,
        grant_type: value.grant_type,
        token_url: value.token_url,
        client_id: value.client_id,
        client_secret: value.client_secret,
        client_auth: value.client_auth,
        token_exchange: value.token_exchange,
        scopes: value.scopes,
        scope_param: value.scope_param,
        scope_separator: value.scope_separator,
        token_params: value.token_params,
        refresh_params: value.refresh_params,
        accept_header: value.accept_header,
        access_token_path: value.access_token_path,
        token_exchange_drivers: value
            .token_exchange_drivers
            .into_iter()
            .map(to_wire_external_credential_token_exchange_driver)
            .collect(),
        refresh_token: value.refresh_token,
    }
}

/// Converts a native `ExternalCredentialLookup` to its wire message.
pub(crate) fn to_wire_external_credential_lookup(
    value: ExternalCredentialLookup,
) -> v1::ExternalCredentialLookup {
    v1::ExternalCredentialLookup {
        subject_id: value.subject_id,
        instance: value.instance,
        connection_id: value.connection_id,
    }
}

/// Converts a native `ExternalCredentialTokenExchangeDriver` to its wire message.
pub(crate) fn to_wire_external_credential_token_exchange_driver(
    value: ExternalCredentialTokenExchangeDriver,
) -> v1::ExternalCredentialTokenExchangeDriver {
    v1::ExternalCredentialTokenExchangeDriver {
        r#type: value.r#type,
        target_principal: value.target_principal,
        scopes: value.scopes,
        lifetime_seconds: value.lifetime_seconds,
        endpoint: value.endpoint,
        params: value.params,
    }
}

/// Converts a wire `ExternalCredentialTokenResponse` to its native message.
pub(crate) fn from_wire_external_credential_token_response(
    value: v1::ExternalCredentialTokenResponse,
) -> ExternalCredentialTokenResponse {
    ExternalCredentialTokenResponse {
        access_token: value.access_token,
        refresh_token: value.refresh_token,
        expires_in: value.expires_in,
        token_type: value.token_type,
        extra_json: value.extra_json,
        refresh_source: value.refresh_source,
    }
}

/// Converts a native `GetExternalCredentialRequest` to its wire message.
pub(crate) fn to_wire_get_external_credential_request(
    value: GetExternalCredentialRequest,
) -> v1::GetExternalCredentialRequest {
    v1::GetExternalCredentialRequest {
        lookup: value.lookup.map(to_wire_external_credential_lookup),
    }
}

/// Converts a native `ListExternalCredentialsRequest` to its wire message.
pub(crate) fn to_wire_list_external_credentials_request(
    value: ListExternalCredentialsRequest,
) -> v1::ListExternalCredentialsRequest {
    v1::ListExternalCredentialsRequest {
        subject_id: value.subject_id,
        instance: value.instance,
        connection_id: value.connection_id,
    }
}

/// Converts a wire `ListExternalCredentialsResponse` to its native message.
pub(crate) fn from_wire_list_external_credentials_response(
    value: v1::ListExternalCredentialsResponse,
) -> ListExternalCredentialsResponse {
    ListExternalCredentialsResponse {
        credentials: value
            .credentials
            .into_iter()
            .map(from_wire_external_credential)
            .collect(),
    }
}

/// Converts a native `ResolveExternalCredentialRequest` to its wire message.
pub(crate) fn to_wire_resolve_external_credential_request(
    value: ResolveExternalCredentialRequest,
) -> v1::ResolveExternalCredentialRequest {
    v1::ResolveExternalCredentialRequest {
        provider: value.provider,
        connection: value.connection,
        connection_id: value.connection_id,
        mode: value.mode,
        credential_subject_id: value.credential_subject_id,
        actor_subject_id: value.actor_subject_id,
        instance: value.instance,
        auth: value.auth.map(to_wire_external_credential_auth_config),
        connection_params: value.connection_params,
    }
}

/// Converts a wire `ResolveExternalCredentialResponse` to its native message.
pub(crate) fn from_wire_resolve_external_credential_response(
    value: v1::ResolveExternalCredentialResponse,
) -> ResolveExternalCredentialResponse {
    ResolveExternalCredentialResponse {
        token: value.token,
        expires_at: value.expires_at.map(from_wire_timestamp),
        metadata_json: value.metadata_json,
        params: value.params,
        credential: value.credential.map(from_wire_external_credential),
    }
}

/// Converts a native `UpsertExternalCredentialRequest` to its wire message.
pub(crate) fn to_wire_upsert_external_credential_request(
    value: UpsertExternalCredentialRequest,
) -> v1::UpsertExternalCredentialRequest {
    v1::UpsertExternalCredentialRequest {
        credential: value.credential.map(to_wire_external_credential),
        preserve_timestamps: value.preserve_timestamps,
    }
}

/// Converts a native `ValidateExternalCredentialConfigRequest` to its wire message.
pub(crate) fn to_wire_validate_external_credential_config_request(
    value: ValidateExternalCredentialConfigRequest,
) -> v1::ValidateExternalCredentialConfigRequest {
    v1::ValidateExternalCredentialConfigRequest {
        provider: value.provider,
        connection: value.connection,
        connection_id: value.connection_id,
        mode: value.mode,
        auth: value.auth.map(to_wire_external_credential_auth_config),
        connection_params: value.connection_params,
    }
}