Skip to main content

VerificationArgs

Struct VerificationArgs 

Source
#[non_exhaustive]
pub struct VerificationArgs {
Show 20 fields pub error: Option<String>, pub group: Uuid, pub health_details: Option<Value>, pub intent: String, pub machine_id: Option<Uuid>, pub migration: Option<MigrationArgs>, pub observed_at: String, pub outcome: String, pub postgres_version: Option<String>, pub redaction: Option<RedactionArgs>, pub replica_healthy: bool, pub replica_id: Uuid, pub run_id: Option<Uuid>, pub s3_received_payload_bytes: Option<i64>, pub s3_received_raw_bytes: Option<i64>, pub s3_sent_payload_bytes: Option<i64>, pub s3_sent_raw_bytes: Option<i64>, pub server_id: Option<Uuid>, pub snapshot_id: Option<String>, pub type_: String,
}
Expand description

Report of a restore attempt and the health of the resulting replica.

JSON schema
{
 "description": "Report of a restore attempt and the health of the resulting replica.",
 "type": "object",
 "required": [
   "group",
   "intent",
   "observed_at",
   "outcome",
   "replica_healthy",
   "replica_id",
   "type"
 ],
 "properties": {
   "error": {
     "description": "Human-readable error detail, when the restore failed.",
     "type": [
       "string",
       "null"
     ]
   },
   "group": {
     "description": "The server group whose backup was restored.",
     "type": "string",
     "format": "uuid"
   },
   "health_details": {
     "description": "Arbitrary structured health data to record alongside the report\n(database statistics, whether indexes needed rebuilding, and so on).\nStored and displayed as-is."
   },
   "intent": {
     "description": "The restore intent this attempt was performed under.",
     "type": "string"
   },
   "machine_id": {
     "description": "The machine whose backup was restored, from the worklist entry's\n`machine_id`.\n\nOptional only so a reporter built against the earlier shape, which knew\nthis as `server_id`, is still accepted; one of the two must be present.",
     "type": [
       "string",
       "null"
     ],
     "format": "uuid"
   },
   "migration": {
     "oneOf": [
       {
         "type": "null"
       },
       {
         "description": "What the migrations did, for a report under a `migrate` intent. Omit for\nevery other intent.",
         "$ref": "#/components/schemas/MigrationArgs"
       }
     ]
   },
   "observed_at": {
     "description": "When the restore result was observed, as an RFC 3339 timestamp.",
     "type": "string"
   },
   "outcome": {
     "description": "Whether the restore succeeded (`success`) or failed (`failure`).",
     "type": "string"
   },
   "postgres_version": {
     "description": "Version of the PostgreSQL server the data was restored into, if\napplicable.",
     "type": [
       "string",
       "null"
     ]
   },
   "redaction": {
     "oneOf": [
       {
         "type": "null"
       },
       {
         "description": "What the masking manifest did, for a replica that redacts. Omit for a\nreplica that doesn't.",
         "$ref": "#/components/schemas/RedactionArgs"
       }
     ]
   },
   "replica_healthy": {
     "description": "Whether the restored database came up healthy and passed readiness\nchecks. A replica only counts as verified when the outcome is\n`success` and this is `true`.",
     "type": "boolean"
   },
   "replica_id": {
     "description": "The declaration this report concerns, taken from the worklist entry's\n`replica_id`. Required: several replicas can share one group, machine,\ntype, and intent, so a report that named no declaration could not be\nattributed to one of them.",
     "type": "string",
     "format": "uuid"
   },
   "run_id": {
     "description": "This must be the run-uuid the client minted for this run.\nThe field is optional only so older clients don't break; it WILL be made\nmandatory in future.",
     "type": [
       "string",
       "null"
     ],
     "format": "uuid"
   },
   "s3_received_payload_bytes": {
     "description": "Bytes of decoded object payload received from S3 during the restore.",
     "type": [
       "integer",
       "null"
     ],
     "format": "int64"
   },
   "s3_received_raw_bytes": {
     "description": "Bytes of raw HTTP traffic received from S3 during the restore,\nincluding protocol overhead.",
     "type": [
       "integer",
       "null"
     ],
     "format": "int64"
   },
   "s3_sent_payload_bytes": {
     "description": "Bytes of decoded object payload sent to S3 during the restore.",
     "type": [
       "integer",
       "null"
     ],
     "format": "int64"
   },
   "s3_sent_raw_bytes": {
     "description": "Bytes of raw HTTP traffic sent to S3 during the restore, including\nprotocol and signing overhead. Omit when traffic was not measured.",
     "type": [
       "integer",
       "null"
     ],
     "format": "int64"
   },
   "server_id": {
     "description": "The same machine under the name this field carried when a server was a\nbox and the software on it at once.\n\nDeprecated in favour of `machine_id`. A report naming only this is\naccepted and read as the machine, since a machine that predates the\nsplit took its application's id. Naming both is an error rather than a\nsilent preference, because a reporter that disagrees with itself about\nwhat it restored has not been understood.",
     "deprecated": true,
     "type": [
       "string",
       "null"
     ],
     "format": "uuid"
   },
   "snapshot_id": {
     "description": "Identifier of the snapshot that was restored. Omit on a failure that\nnever got as far as selecting a snapshot.",
     "type": [
       "string",
       "null"
     ]
   },
   "type": {
     "description": "The backup type that was restored (e.g. `tamanu-postgres`).",
     "type": "string"
   }
 }
}

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§error: Option<String>

Human-readable error detail, when the restore failed.

§group: Uuid

The server group whose backup was restored.

§health_details: Option<Value>

Arbitrary structured health data to record alongside the report (database statistics, whether indexes needed rebuilding, and so on). Stored and displayed as-is.

§intent: String

The restore intent this attempt was performed under.

§machine_id: Option<Uuid>

The machine whose backup was restored, from the worklist entry’s machine_id.

Optional only so a reporter built against the earlier shape, which knew this as server_id, is still accepted; one of the two must be present.

§migration: Option<MigrationArgs>§observed_at: String

When the restore result was observed, as an RFC 3339 timestamp.

§outcome: String

Whether the restore succeeded (success) or failed (failure).

§postgres_version: Option<String>

Version of the PostgreSQL server the data was restored into, if applicable.

§redaction: Option<RedactionArgs>§replica_healthy: bool

Whether the restored database came up healthy and passed readiness checks. A replica only counts as verified when the outcome is success and this is true.

§replica_id: Uuid

The declaration this report concerns, taken from the worklist entry’s replica_id. Required: several replicas can share one group, machine, type, and intent, so a report that named no declaration could not be attributed to one of them.

§run_id: Option<Uuid>

This must be the run-uuid the client minted for this run. The field is optional only so older clients don’t break; it WILL be made mandatory in future.

§s3_received_payload_bytes: Option<i64>

Bytes of decoded object payload received from S3 during the restore.

§s3_received_raw_bytes: Option<i64>

Bytes of raw HTTP traffic received from S3 during the restore, including protocol overhead.

§s3_sent_payload_bytes: Option<i64>

Bytes of decoded object payload sent to S3 during the restore.

§s3_sent_raw_bytes: Option<i64>

Bytes of raw HTTP traffic sent to S3 during the restore, including protocol and signing overhead. Omit when traffic was not measured.

§server_id: Option<Uuid>

The same machine under the name this field carried when a server was a box and the software on it at once.

Deprecated in favour of machine_id. A report naming only this is accepted and read as the machine, since a machine that predates the split took its application’s id. Naming both is an error rather than a silent preference, because a reporter that disagrees with itself about what it restored has not been understood.

§snapshot_id: Option<String>

Identifier of the snapshot that was restored. Omit on a failure that never got as far as selecting a snapshot.

§type_: String

The backup type that was restored (e.g. tamanu-postgres).

Implementations§

Source§

impl VerificationArgs

Source

pub fn builder() -> VerificationArgsBuilder

Create an instance of VerificationArgs using the builder syntax

Trait Implementations§

Source§

impl Clone for VerificationArgs

Source§

fn clone(&self) -> VerificationArgs

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 VerificationArgs

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for VerificationArgs

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for VerificationArgs

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> 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.