use super::{ AddressFamily, AddressFamilyDisposition, ArtifactLease, ArtifactState, ClientEnrollmentRequest, ClientEnrollmentResponse, ConfigurationFingerprintRecordV1, ControlRequest, ControlResponse, DefaultAction, DeniedDestinationObservation, DerivedNetworkPolicy, DeveloperDecision, DeveloperDecisionKind, DnsObservation, Domain, DomainStore, DomainStoreMetadata, EnvironmentReference, EscalationOutcome, Generation, GenerationIdentity, GitRoutingOwnership, GuestProcessIdentity, HelperOwnership, HostProcessIdentity, HostProcessOwnershipSlot, InteractiveSessionBatch, InteractiveSessionEvent, InteractiveSessionMessage, InteractiveSessionRequest, Mailbox, MailboxCancellation, MailboxRequest, MailboxResult, MailboxResultAck, MailboxResultChunk, MountIdentity, NamespaceIdentity, NetworkObservation, NetworkOwnership, NetworkReachabilityProbe, NetworkReadinessAttestation, NetworkReadinessEvidence, NetworkReadinessIdentity, NonInteractiveOutput, NonInteractiveSessionMessage, NonInteractiveSessionRequest, Participant, ParticipantOwnership, ParticipantState, PermittedDestinationObservation, PersistedHostProcessOwnership, PidfsProcessAuthorityV1, PidfsProcessIdentityV1, PolicyAction, PolicyDelivery, PrefixRule, PrepareOperation, PrepareStageState, PreparedArtifact, PreparedLowerOwnership, ProcessOwnershipCommitAck, ProcessOwnershipMessageVersion, ProtocolCredential, ProtocolCredentialRole, ProtocolPublicationIdentity, PtyIdentity, PublicationOwnership, ResolvedAutoApprovalRule, ResolvedNetworkReadinessV1, ResolvedVolume, Resolver, ResultStream, SandboxCredentialBundle, SandboxOwnership, Session, SessionBinding, SessionClose, SessionExit, SessionExitOutcome, SessionRegistrationRequest, SessionRegistrationResponse, SessionRequestCapability, SessionTerminal, SessionTerminalEvent, SessionTerminalMessage, SessionTerminalState, SignedProtocolRecord, StagedProcessOwnership, StateAnchorOwnership, StateAnchorReleaseEvidence, StorageCatalog, StorageCatalogMetadata, StoreMetadata, TerminalInput, TerminalOutput, TerminalPrompt, TerminalResize, TerminalSignal, TerminalSignalKind, TlsCredential, TlsRole, TrustManifest, TrustedHostConfigurationV1, }; use crate::protocol::{BootstrapWaitOutcome, BootstrapWaitRequest}; pub trait SchemaType { const NAME: &'static str; } macro_rules! schema_types { ($($name:literal => $record:ty),+ $(,)?) => { $( impl SchemaType for $record { const NAME: &'static str = $name; } )+ pub const SERIALIZED_RECORD_TYPE_NAMES: &[&str] = &[$($name),+]; }; } schema_types!( "StoreMetadata" => StoreMetadata, "DomainStoreMetadata" => DomainStoreMetadata, "StorageCatalogMetadata" => StorageCatalogMetadata, "Domain" => Domain, "Generation" => Generation, "Participant" => Participant, "ParticipantState" => ParticipantState, "ParticipantOwnership" => ParticipantOwnership, "Session" => Session, "SessionTerminal" => SessionTerminal, "SessionTerminalState" => SessionTerminalState, "Mailbox" => Mailbox, "PtyIdentity" => PtyIdentity, "PidfsProcessAuthorityV1" => PidfsProcessAuthorityV1, "PidfsProcessIdentityV1" => PidfsProcessIdentityV1, "HostProcessIdentity" => HostProcessIdentity, "PersistedHostProcessOwnership" => PersistedHostProcessOwnership, "HostProcessOwnershipSlot" => HostProcessOwnershipSlot, "ProcessOwnershipMessageVersion" => ProcessOwnershipMessageVersion, "StagedProcessOwnership" => StagedProcessOwnership, "ProcessOwnershipCommitAck" => ProcessOwnershipCommitAck, "GuestProcessIdentity" => GuestProcessIdentity, "SessionTerminalEvent" => SessionTerminalEvent, "TerminalInput" => TerminalInput, "TerminalResize" => TerminalResize, "TerminalSignal" => TerminalSignal, "TerminalSignalKind" => TerminalSignalKind, "SessionClose" => SessionClose, "SessionTerminalMessage" => SessionTerminalMessage, "InteractiveSessionRequest" => InteractiveSessionRequest, "InteractiveSessionEvent" => InteractiveSessionEvent, "InteractiveSessionMessage" => InteractiveSessionMessage, "InteractiveSessionBatch" => InteractiveSessionBatch, "TerminalPrompt" => TerminalPrompt, "NonInteractiveSessionRequest" => NonInteractiveSessionRequest, "NonInteractiveOutput" => NonInteractiveOutput, "NonInteractiveSessionMessage" => NonInteractiveSessionMessage, "TerminalOutput" => TerminalOutput, "SessionExit" => SessionExit, "SessionExitOutcome" => SessionExitOutcome, "GenerationIdentity" => GenerationIdentity, "TrustManifest" => TrustManifest, "TlsCredential" => TlsCredential, "ProtocolPublicationIdentity" => ProtocolPublicationIdentity, "ClientEnrollmentRequest" => ClientEnrollmentRequest, "ClientEnrollmentResponse" => ClientEnrollmentResponse, "SessionRegistrationRequest" => SessionRegistrationRequest, "SessionRegistrationResponse" => SessionRegistrationResponse, "ControlRequest" => ControlRequest, "ControlResponse" => ControlResponse, "SandboxCredentialBundle" => SandboxCredentialBundle, "TlsRole" => TlsRole, "ProtocolCredential" => ProtocolCredential, "ProtocolCredentialRole" => ProtocolCredentialRole, "SessionBinding" => SessionBinding, "SessionRequestCapability" => SessionRequestCapability, "SignedProtocolRecord" => SignedProtocolRecord, "MailboxRequest" => MailboxRequest, "MailboxCancellation" => MailboxCancellation, "MailboxResultAck" => MailboxResultAck, "DeveloperDecision" => DeveloperDecision, "DeveloperDecisionKind" => DeveloperDecisionKind, "MailboxResult" => MailboxResult, "MailboxResultChunk" => MailboxResultChunk, "ResultStream" => ResultStream, "EscalationOutcome" => EscalationOutcome, "NamespaceIdentity" => NamespaceIdentity, "MountIdentity" => MountIdentity, "PreparedLowerOwnership" => PreparedLowerOwnership, "StateAnchorReleaseEvidence" => StateAnchorReleaseEvidence, "StateAnchorOwnership" => StateAnchorOwnership, "GitRoutingOwnership" => GitRoutingOwnership, "NetworkOwnership" => NetworkOwnership, "HelperOwnership" => HelperOwnership, "SandboxOwnership" => SandboxOwnership, "PublicationOwnership" => PublicationOwnership, "PreparedArtifact" => PreparedArtifact, "ArtifactState" => ArtifactState, "ArtifactLease" => ArtifactLease, "PrepareOperation" => PrepareOperation, "AddressFamilyDisposition" => AddressFamilyDisposition, "DefaultAction" => DefaultAction, "PrefixRule" => PrefixRule, "Resolver" => Resolver, "AddressFamily" => AddressFamily, "PolicyAction" => PolicyAction, "DerivedNetworkPolicy" => DerivedNetworkPolicy, "NetworkReadinessEvidence" => NetworkReadinessEvidence, "NetworkReadinessAttestation" => NetworkReadinessAttestation, "NetworkObservation" => NetworkObservation, "PolicyDelivery" => PolicyDelivery, "NetworkReadinessIdentity" => NetworkReadinessIdentity, "NetworkReachabilityProbe" => NetworkReachabilityProbe, "DeniedDestinationObservation" => DeniedDestinationObservation, "PermittedDestinationObservation" => PermittedDestinationObservation, "DnsObservation" => DnsObservation, "TrustedHostConfigurationV1" => TrustedHostConfigurationV1, "ConfigurationFingerprintRecordV1" => ConfigurationFingerprintRecordV1, "EnvironmentReference" => EnvironmentReference, "ResolvedVolume" => ResolvedVolume, "ResolvedAutoApprovalRule" => ResolvedAutoApprovalRule, "ResolvedNetworkReadinessV1" => ResolvedNetworkReadinessV1, "DomainStore" => DomainStore, "StorageCatalog" => StorageCatalog, "PrepareStageState" => PrepareStageState, "BootstrapWaitRequest" => BootstrapWaitRequest, "BootstrapWaitOutcome" => BootstrapWaitOutcome, );