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§
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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 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).
Sourcefn 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,
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".