Skip to main content

PamAccessConnectorRotationAttemptsApi

Trait PamAccessConnectorRotationAttemptsApi 

Source
pub trait PamAccessConnectorRotationAttemptsApi: Send + Sync {
    // Required methods
    fn failure<'a, 'life0, 'async_trait>(
        &'life0 self,
        id: Uuid,
        report_rotation_failed_request_model: ReportRotationFailedRequestModel,
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'a: 'async_trait,
             'life0: 'async_trait;
    fn get_cipher<'a, 'life0, 'async_trait>(
        &'life0 self,
        id: Uuid,
    ) -> Pin<Box<dyn Future<Output = Result<RotationCipherResponseModel, Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'a: 'async_trait,
             'life0: 'async_trait;
    fn put_cipher<'a, 'life0, 'async_trait>(
        &'life0 self,
        id: Uuid,
        submit_cipher_update_request_model: SubmitCipherUpdateRequestModel,
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'a: 'async_trait,
             'life0: 'async_trait;
    fn success<'a, 'life0, 'async_trait>(
        &'life0 self,
        id: Uuid,
        report_rotation_succeeded_request_model: ReportRotationSucceededRequestModel,
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'a: 'async_trait,
             'life0: 'async_trait;
}

Required Methods§

Source

fn failure<'a, 'life0, 'async_trait>( &'life0 self, id: Uuid, report_rotation_failed_request_model: ReportRotationFailedRequestModel, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'a: 'async_trait, 'life0: 'async_trait,

POST /access-connectors/rotation/attempts/{id}/failure Reports a failed rotation attempt (spec RecordRotationFailed). Never forward raw target-system error output as ErrorCode/Detail – it can echo credentials. Send a bounded error code plus an optional short detail instead. Either field exceeding its documented length is rejected as a 400, so cap them before sending – a rejected report leaves the failure unrecorded until the job times out. The single reason the two combine into is truncated rather than rejected.

Source

fn get_cipher<'a, 'life0, 'async_trait>( &'life0 self, id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<RotationCipherResponseModel, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'a: 'async_trait, 'life0: 'async_trait,

GET /access-connectors/rotation/attempts/{id}/cipher Returns the cipher for this access connector’s claimed, executing attempt only – never a general cipher read. Data is returned exactly as stored: opaque ciphertext the server never decrypts.

Source

fn put_cipher<'a, 'life0, 'async_trait>( &'life0 self, id: Uuid, submit_cipher_update_request_model: SubmitCipherUpdateRequestModel, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'a: 'async_trait, 'life0: 'async_trait,

PUT /access-connectors/rotation/attempts/{id}/cipher Writes the rotated secret back to the cipher (spec AcceptCipherUpdate) via an atomic capability check. 409 means the claim/attempt no longer holds, or LastKnownRevisionDate no longer matches the cipher’s current revision (a concurrent user edit won) – audited as write_rejected. 404 means the attempt id is unknown (no audit).

Source

fn success<'a, 'life0, 'async_trait>( &'life0 self, id: Uuid, report_rotation_succeeded_request_model: ReportRotationSucceededRequestModel, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'a: 'async_trait, 'life0: 'async_trait,

POST /access-connectors/rotation/attempts/{id}/success Reports a successful rotation (spec RecordRotationSucceeded). Requires the attempt to already have a written cipher (the VerifiedBeforeSuccess backstop); otherwise the report is treated as stale (409, audited as report_rejected).

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§