[][src]Struct sdkms::SdkmsClient

pub struct SdkmsClient { /* fields omitted */ }

A client session with SDKMS.

REST APIs are exposed as methods on this type. Communication with SDKMS API endpoint is protected with TLS and this type uses hyper::Client along with hyper_native_tls::NativeTlsClient for HTTP/TLS.

When making crypto API calls using an API key, it is possible to pass the API key as an HTTP Basic Authorization header along with each request. This can be achieved by setting the API key using SdkmsClientBuilder::with_api_key(). Note that some features, e.g. transient keys, may not be available when using this authentication method. To be able to use such features, you can establish a session using any of the following methods:

Note that certain non-cryptographic APIs require a user session, which can be established using authenticate_user(). This includes many APIs such as:

Also note that a user session is generally not permitted to call crypto APIs. In case your current authorization is not appropriate for a particular API call, you'll get an error to that effect from SDKMS.

Certain APIs are "approvable", i.e. they can be subject to an approval policy. In such cases there are two methods on SdkmsClient, e.g. encrypt() / request_approval_to_encrypt(). Whether or not you need to call request_approval_to_encrypt() depends on the approval policy that is applicable to the security object being used in your request. You can find out if a particular request is subject to an approval policy by first calling the regular API, e.g. encrypt() and checking if the response indicates that an approval request is needed at which point you can call request_approval_to_encrypt(). There is an example of how to do this in the repository.

Implementations

impl SdkmsClient[src]

pub fn builder() -> SdkmsClientBuilder[src]

pub fn authenticate_with_api_key(&self, api_key: &str) -> Result<Self>[src]

pub fn authenticate_with_cert(&self, app_id: Option<&Uuid>) -> Result<Self>[src]

pub fn authenticate_app(&self, app_id: &Uuid, app_secret: &str) -> Result<Self>[src]

pub fn authenticate_user(&self, email: &str, password: &str) -> Result<Self>[src]

pub fn api_endpoint(&self) -> &str[src]

pub fn auth_response(&self) -> Option<&AuthResponse>[src]

pub fn entity_id(&self) -> Option<Uuid>[src]

pub fn has_session(&self) -> bool[src]

impl SdkmsClient[src]

pub fn terminate(&mut self) -> Result<()>[src]

pub fn invoke_plugin_nice<I, O>(&self, id: &Uuid, req: &I) -> Result<O> where
    I: Serialize,
    O: for<'de> Deserialize<'de>, 
[src]

pub fn execute<O: Operation>(
    &self,
    body: &O::Body,
    p: <O::PathParams as TupleRef<'_>>::Ref,
    q: Option<&O::QueryParams>
) -> Result<O::Output>
[src]

pub fn request_approval<O: Operation>(
    &self,
    body: &O::Body,
    p: <O::PathParams as TupleRef<'_>>::Ref,
    q: Option<&O::QueryParams>,
    description: Option<String>
) -> Result<PendingApproval<O>>
[src]

pub fn expires_in(&self) -> Option<u64>[src]

impl SdkmsClient[src]

pub fn list_accounts(
    &self,
    query_params: Option<&GetAccountParams>
) -> Result<Vec<Account>>
[src]

impl SdkmsClient[src]

pub fn get_account(
    &self,
    id: &Uuid,
    query_params: Option<&GetAccountParams>
) -> Result<Account>
[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn update_account(&self, id: &Uuid, req: &AccountRequest) -> Result<Account>[src]

pub fn request_approval_to_update_account(
    &self,
    id: &Uuid,
    req: &AccountRequest,
    description: Option<String>
) -> Result<PendingApproval<OperationUpdateAccount>>
[src]

impl SdkmsClient[src]

pub fn delete_account(&self, id: &Uuid) -> Result<()>[src]

impl SdkmsClient[src]

pub fn account_usage(
    &self,
    id: &Uuid,
    query_params: Option<&CountParams>
) -> Result<GetUsageResponse>
[src]

impl SdkmsClient[src]

pub fn list_approval_requests(
    &self,
    query_params: Option<&ListApprovalRequestsParams>
) -> Result<Vec<ApprovalRequest>>
[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn approve_request(
    &self,
    id: &Uuid,
    req: &ApproveRequest
) -> Result<ApprovalRequest>
[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn delete_approval_request(&self, id: &Uuid) -> Result<()>[src]

impl SdkmsClient[src]

pub fn list_apps(
    &self,
    query_params: Option<&ListAppsParams>
) -> Result<Vec<App>>
[src]

impl SdkmsClient[src]

pub fn get_app(
    &self,
    id: &Uuid,
    query_params: Option<&GetAppParams>
) -> Result<App>
[src]

impl SdkmsClient[src]

pub fn create_app(
    &self,
    query_params: Option<&GetAppParams>,
    req: &AppRequest
) -> Result<App>
[src]

impl SdkmsClient[src]

pub fn update_app(
    &self,
    id: &Uuid,
    query_params: Option<&GetAppParams>,
    req: &AppRequest
) -> Result<App>
[src]

impl SdkmsClient[src]

pub fn delete_app(&self, id: &Uuid) -> Result<()>[src]

impl SdkmsClient[src]

pub fn reset_app_secret(
    &self,
    id: &Uuid,
    query_params: Option<&GetAppParams>,
    req: &AppResetSecretRequest
) -> Result<App>
[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn encrypt(&self, req: &EncryptRequest) -> Result<EncryptResponse>[src]

pub fn request_approval_to_encrypt(
    &self,
    req: &EncryptRequest,
    description: Option<String>
) -> Result<PendingApproval<OperationEncrypt>>
[src]

impl SdkmsClient[src]

pub fn encrypt_init(
    &self,
    req: &EncryptInitRequest
) -> Result<EncryptInitResponse>
[src]

impl SdkmsClient[src]

pub fn encrypt_update(
    &self,
    req: &EncryptUpdateRequest
) -> Result<EncryptUpdateResponse>
[src]

impl SdkmsClient[src]

pub fn encrypt_final(
    &self,
    req: &EncryptFinalRequest
) -> Result<EncryptFinalResponse>
[src]

impl SdkmsClient[src]

pub fn decrypt(&self, req: &DecryptRequest) -> Result<DecryptResponse>[src]

pub fn request_approval_to_decrypt(
    &self,
    req: &DecryptRequest,
    description: Option<String>
) -> Result<PendingApproval<OperationDecrypt>>
[src]

impl SdkmsClient[src]

pub fn decrypt_init(
    &self,
    req: &DecryptInitRequest
) -> Result<DecryptInitResponse>
[src]

impl SdkmsClient[src]

pub fn decrypt_update(
    &self,
    req: &DecryptUpdateRequest
) -> Result<DecryptUpdateResponse>
[src]

impl SdkmsClient[src]

pub fn decrypt_final(
    &self,
    req: &DecryptFinalRequest
) -> Result<DecryptFinalResponse>
[src]

impl SdkmsClient[src]

pub fn sign(&self, req: &SignRequest) -> Result<SignResponse>[src]

pub fn request_approval_to_sign(
    &self,
    req: &SignRequest,
    description: Option<String>
) -> Result<PendingApproval<OperationSign>>
[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn wrap(&self, req: &WrapKeyRequest) -> Result<WrapKeyResponse>[src]

pub fn request_approval_to_wrap(
    &self,
    req: &WrapKeyRequest,
    description: Option<String>
) -> Result<PendingApproval<OperationWrap>>
[src]

impl SdkmsClient[src]

pub fn unwrap(&self, req: &UnwrapKeyRequest) -> Result<Sobject>[src]

pub fn request_approval_to_unwrap(
    &self,
    req: &UnwrapKeyRequest,
    description: Option<String>
) -> Result<PendingApproval<OperationUnwrap>>
[src]

impl SdkmsClient[src]

pub fn mac(&self, req: &MacRequest) -> Result<MacResponse>[src]

pub fn request_approval_to_mac(
    &self,
    req: &MacRequest,
    description: Option<String>
) -> Result<PendingApproval<OperationMac>>
[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn derive(&self, req: &DeriveKeyRequest) -> Result<Sobject>[src]

pub fn request_approval_to_derive(
    &self,
    req: &DeriveKeyRequest,
    description: Option<String>
) -> Result<PendingApproval<OperationDerive>>
[src]

impl SdkmsClient[src]

pub fn agree(&self, req: &AgreeKeyRequest) -> Result<Sobject>[src]

pub fn request_approval_to_agree(
    &self,
    req: &AgreeKeyRequest,
    description: Option<String>
) -> Result<PendingApproval<OperationAgree>>
[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn list_external_roles(
    &self,
    query_params: Option<&ListExternalRolesParams>
) -> Result<Vec<ExternalRole>>
[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn create_external_role(
    &self,
    req: &ExternalRoleRequest
) -> Result<ExternalRole>
[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn update_external_role(
    &self,
    id: &Uuid,
    req: &ExternalRoleRequest
) -> Result<ExternalRole>
[src]

impl SdkmsClient[src]

pub fn delete_external_role(&self, id: &Uuid) -> Result<()>[src]

impl SdkmsClient[src]

pub fn list_groups(&self) -> Result<Vec<Group>>[src]

impl SdkmsClient[src]

pub fn get_group(&self, id: &Uuid) -> Result<Group>[src]

impl SdkmsClient[src]

pub fn create_group(&self, req: &GroupRequest) -> Result<Group>[src]

impl SdkmsClient[src]

pub fn update_group(&self, id: &Uuid, req: &GroupRequest) -> Result<Group>[src]

pub fn request_approval_to_update_group(
    &self,
    id: &Uuid,
    req: &GroupRequest,
    description: Option<String>
) -> Result<PendingApproval<OperationUpdateGroup>>
[src]

impl SdkmsClient[src]

pub fn delete_group(&self, id: &Uuid) -> Result<()>[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn update_sobject(&self, id: &Uuid, req: &SobjectRequest) -> Result<Sobject>[src]

pub fn request_approval_to_update_sobject(
    &self,
    id: &Uuid,
    req: &SobjectRequest,
    description: Option<String>
) -> Result<PendingApproval<OperationUpdateSobject>>
[src]

impl SdkmsClient[src]

pub fn delete_sobject(&self, id: &Uuid) -> Result<()>[src]

pub fn request_approval_to_delete_sobject(
    &self,
    id: &Uuid,
    description: Option<String>
) -> Result<PendingApproval<OperationDeleteSobject>>
[src]

impl SdkmsClient[src]

pub fn list_sobjects(
    &self,
    query_params: Option<&ListSobjectsParams>
) -> Result<Vec<Sobject>>
[src]

impl SdkmsClient[src]

pub fn get_sobject(
    &self,
    query_params: Option<&GetSobjectParams>,
    req: &SobjectDescriptor
) -> Result<Sobject>
[src]

impl SdkmsClient[src]

pub fn remove_private(&self, id: &Uuid) -> Result<()>[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn digest_sobject(
    &self,
    req: &ObjectDigestRequest
) -> Result<ObjectDigestResponse>
[src]

impl SdkmsClient[src]

pub fn persist_transient_key(
    &self,
    req: &PersistTransientKeyRequest
) -> Result<Sobject>
[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn activate_sobject(&self, id: &Uuid) -> Result<()>[src]

impl SdkmsClient[src]

pub fn revoke_sobject(&self, id: &Uuid, req: &RevocationReason) -> Result<()>[src]

impl SdkmsClient[src]

pub fn batch_sign(
    &self,
    req: &Vec<SignRequest>
) -> Result<Vec<BatchResponseItem<SignResponse>>>
[src]

pub fn request_approval_to_batch_sign(
    &self,
    req: &Vec<SignRequest>,
    description: Option<String>
) -> Result<PendingApproval<OperationBatchSign>>
[src]

impl SdkmsClient[src]

pub fn batch_verify(
    &self,
    req: &Vec<VerifyRequest>
) -> Result<Vec<BatchResponseItem<VerifyResponse>>>
[src]

impl SdkmsClient[src]

pub fn list_plugins(
    &self,
    query_params: Option<&ListPluginsParams>
) -> Result<Vec<Plugin>>
[src]

impl SdkmsClient[src]

pub fn get_plugin(&self, id: &Uuid) -> Result<Plugin>[src]

impl SdkmsClient[src]

pub fn create_plugin(&self, req: &PluginRequest) -> Result<Plugin>[src]

pub fn request_approval_to_create_plugin(
    &self,
    req: &PluginRequest,
    description: Option<String>
) -> Result<PendingApproval<OperationCreatePlugin>>
[src]

impl SdkmsClient[src]

pub fn update_plugin(&self, id: &Uuid, req: &PluginRequest) -> Result<Plugin>[src]

pub fn request_approval_to_update_plugin(
    &self,
    id: &Uuid,
    req: &PluginRequest,
    description: Option<String>
) -> Result<PendingApproval<OperationUpdatePlugin>>
[src]

impl SdkmsClient[src]

pub fn delete_plugin(&self, id: &Uuid) -> Result<()>[src]

impl SdkmsClient[src]

pub fn invoke_plugin(&self, id: &Uuid, req: &Value) -> Result<PluginOutput>[src]

pub fn request_approval_to_invoke_plugin(
    &self,
    id: &Uuid,
    req: &Value,
    description: Option<String>
) -> Result<PendingApproval<OperationInvokePlugin>>
[src]

impl SdkmsClient[src]

pub fn refresh(&self) -> Result<()>[src]

impl SdkmsClient[src]

pub fn select_account(
    &self,
    req: &SelectAccountRequest
) -> Result<SelectAccountResponse>
[src]

impl SdkmsClient[src]

pub fn u2f_auth(&self, req: &U2fAuthRequest) -> Result<()>[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn signup_user(&self, req: &SignupRequest) -> Result<User>[src]

impl SdkmsClient[src]

pub fn list_users(
    &self,
    query_params: Option<&ListUsersParams>
) -> Result<Vec<User>>
[src]

impl SdkmsClient[src]

pub fn get_user(&self, id: &Uuid) -> Result<User>[src]

impl SdkmsClient[src]

pub fn update_user(&self, id: &Uuid, req: &UserRequest) -> Result<User>[src]

impl SdkmsClient[src]

pub fn reset_password(
    &self,
    id: &Uuid,
    req: &PasswordResetRequest
) -> Result<()>
[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn invite_user(&self, req: &UserRequest) -> Result<User>[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn resend_invite(&self, id: &Uuid) -> Result<()>[src]

impl SdkmsClient[src]

pub fn delete_user(&self) -> Result<()>[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

pub fn delete_user_account(&self, id: &Uuid) -> Result<()>[src]

impl SdkmsClient[src]

impl SdkmsClient[src]

Trait Implementations

impl Drop for SdkmsClient[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Typeable for T where
    T: Any