pub struct InternalControl {Show 14 fields
pub control_id: String,
pub control_name: String,
pub control_type: ControlType,
pub objective: String,
pub frequency: ControlFrequency,
pub owner_role: UserPersona,
pub risk_level: RiskLevel,
pub description: String,
pub is_key_control: bool,
pub sox_assertion: SoxAssertion,
pub coso_component: CosoComponent,
pub coso_principles: Vec<CosoPrinciple>,
pub control_scope: ControlScope,
pub maturity_level: CosoMaturityLevel,
}Expand description
Internal control definition.
Fields§
§control_id: StringUnique control identifier (e.g., “C001”, “C010”)
control_name: StringControl name/title
control_type: ControlTypeType of control (Preventive, Detective, Monitoring)
objective: StringControl objective description
frequency: ControlFrequencyHow often the control is performed
owner_role: UserPersonaRole responsible for executing/owning the control
risk_level: RiskLevelRisk level associated with control failure
description: StringDetailed description of the control procedure
is_key_control: boolWhether this is a SOX 404 key control
sox_assertion: SoxAssertionSOX assertion this control addresses
coso_component: CosoComponentCOSO 2013 component this control maps to
coso_principles: Vec<CosoPrinciple>COSO 2013 principles this control addresses
control_scope: ControlScopeControl scope (entity-level vs transaction-level)
maturity_level: CosoMaturityLevelControl maturity level
Implementations§
Source§impl InternalControl
impl InternalControl
Sourcepub fn new(
control_id: impl Into<String>,
control_name: impl Into<String>,
control_type: ControlType,
objective: impl Into<String>,
) -> Self
pub fn new( control_id: impl Into<String>, control_name: impl Into<String>, control_type: ControlType, objective: impl Into<String>, ) -> Self
Create a new internal control.
Sourcepub fn with_frequency(self, frequency: ControlFrequency) -> Self
pub fn with_frequency(self, frequency: ControlFrequency) -> Self
Builder method to set frequency.
Sourcepub fn with_owner(self, owner: UserPersona) -> Self
pub fn with_owner(self, owner: UserPersona) -> Self
Builder method to set owner role.
Sourcepub fn with_risk_level(self, level: RiskLevel) -> Self
pub fn with_risk_level(self, level: RiskLevel) -> Self
Builder method to set risk level.
Sourcepub fn with_description(self, description: impl Into<String>) -> Self
pub fn with_description(self, description: impl Into<String>) -> Self
Builder method to set description.
Sourcepub fn as_key_control(self) -> Self
pub fn as_key_control(self) -> Self
Builder method to mark as key control.
Sourcepub fn with_assertion(self, assertion: SoxAssertion) -> Self
pub fn with_assertion(self, assertion: SoxAssertion) -> Self
Builder method to set SOX assertion.
Sourcepub fn with_coso_component(self, component: CosoComponent) -> Self
pub fn with_coso_component(self, component: CosoComponent) -> Self
Builder method to set COSO component.
Sourcepub fn with_coso_principles(self, principles: Vec<CosoPrinciple>) -> Self
pub fn with_coso_principles(self, principles: Vec<CosoPrinciple>) -> Self
Builder method to set COSO principles.
Sourcepub fn with_control_scope(self, scope: ControlScope) -> Self
pub fn with_control_scope(self, scope: ControlScope) -> Self
Builder method to set control scope.
Sourcepub fn with_maturity_level(self, level: CosoMaturityLevel) -> Self
pub fn with_maturity_level(self, level: CosoMaturityLevel) -> Self
Builder method to set maturity level.
Sourcepub fn standard_controls() -> Vec<Self>
pub fn standard_controls() -> Vec<Self>
Generate standard controls for a typical organization.
Includes both transaction-level controls (C001-C060) and entity-level controls (C070-C081) with full COSO 2013 mappings.
Trait Implementations§
Source§impl Clone for InternalControl
impl Clone for InternalControl
Source§fn clone(&self) -> InternalControl
fn clone(&self) -> InternalControl
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more