Documentation
¶
Index ¶
- func ConvertLinksToOscal(data datatypes.JSONSlice[Link]) *[]oscaltypes113.Link
- func ConvertList[in any, out any](list *[]in, mutate func(in) out) []out
- func ConvertOscalToLinks(data *[]oscaltypes113.Link) datatypes.JSONSlice[Link]
- func ConvertOscalToProps(data *[]oscaltypes113.Property) datatypes.JSONSlice[Prop]
- func ConvertPropsToOscal(data datatypes.JSONSlice[Prop]) *[]oscaltypes113.Property
- func GetEvidenceSearchByFilterQuery(latestQuery *gorm.DB, db *gorm.DB, filters ...labelfilter.Filter) (*gorm.DB, error)
- func GetLatestEvidenceStreamsQuery(db *gorm.DB) *gorm.DB
- type Action
- type Activity
- type Addition
- type Address
- type AddressType
- type Alteration
- type AssessedControlsSelectControlById
- type AssessmentAsset
- type AssessmentAssets
- type AssessmentLog
- type AssessmentLogEntry
- type AssessmentPart
- type AssessmentPlan
- type AssessmentPlatform
- type AssessmentResult
- type AssessmentSubject
- type AssociatedActivity
- type AssociatedRisk
- type Attestation
- type AuthorizationBoundary
- type AuthorizedPrivilege
- type BackMatter
- type BackMatterResource
- type Base64
- type ByComponent
- type Capability
- type Catalog
- type Characterization
- type Citation
- type CombinationRule
- type ComponentDefinition
- type Control
- type ControlImplementation
- type ControlImplementationResponsibility
- type ControlImplementationSet
- type ControlObjectiveSelection
- type ControlSelection
- type ControlStatementImplementation
- type DataFlow
- type DefinedComponent
- type Diagram
- type DocumentID
- type DocumentIDScheme
- type Evidence
- type Export
- type Filter
- type Finding
- type FindingTarget
- type FlatWithoutGrouping
- type Group
- type Hash
- type HashAlgorithm
- type HrefMetadata
- type IdentifiedSubject
- type Impact
- type ImplementationStatus
- type ImplementedComponent
- type ImplementedRequirement
- type ImplementedRequirementControlImplementation
- func (irci *ImplementedRequirementControlImplementation) MarshalOscal() *oscalTypes_1_1_3.ImplementedRequirementControlImplementation
- func (irci *ImplementedRequirementControlImplementation) UnmarshalOscal(oirci oscalTypes_1_1_3.ImplementedRequirementControlImplementation) *ImplementedRequirementControlImplementation
- type Import
- type ImportAp
- type ImportComponentDefinition
- type ImportProfile
- type ImportSsp
- type IncludeAll
- type IncorporatesComponents
- type InformationType
- type InformationTypeCategorization
- type InheritedControlImplementation
- type InventoryItem
- type Labels
- type LeveragedAuthorization
- type Link
- type LocalDefinitions
- type LocalObjective
- type Location
- type LoggedBy
- type Matching
- type Merge
- type Metadata
- type MitigatingFactor
- type Modify
- type NetworkArchitecture
- type Observation
- type Origin
- type Parameter
- type ParameterConstraint
- type ParameterConstraintTest
- type ParameterGuideline
- type ParameterSelection
- type ParameterSelectionCount
- type ParameterSetting
- type Part
- type Party
- type PartyExternalID
- type PartyExternalIDScheme
- type PartyType
- type PlanOfActionAndMilestones
- type PlanOfActionAndMilestonesLocalDefinitions
- type PoamItem
- type PoamItemOrigin
- type Profile
- type Prop
- type Protocol
- type ProvidedControlImplementation
- type RelatedFinding
- type RelatedObservation
- type RelatedTask
- type RelevantEvidence
- type Removal
- type ResourceLink
- type Response
- type ResponsibleParty
- type ResponsiblePartyParties
- type ResponsibleRole
- type Result
- type ReviewedControls
- type Revision
- type Risk
- type RiskLog
- type Risks
- type Role
- type SatisfiedControlImplementationResponsibility
- func (s *SatisfiedControlImplementationResponsibility) MarshalOscal() *oscalTypes_1_1_3.SatisfiedControlImplementationResponsibility
- func (s *SatisfiedControlImplementationResponsibility) UnmarshalOscal(os oscalTypes_1_1_3.SatisfiedControlImplementationResponsibility) *SatisfiedControlImplementationResponsibility
- type SecurityImpactLevel
- type SelectControlById
- type SelectObjectiveById
- type SelectSubjectById
- type SetParameter
- type Statement
- type Status
- type Step
- type SubjectReference
- type SystemCharacteristics
- type SystemComponent
- type SystemComponentStatus
- type SystemId
- type SystemImplementation
- type SystemInformation
- type SystemSecurityPlan
- type SystemUser
- type Task
- type TaskDependency
- type TelephoneNumber
- type TelephoneNumberType
- type TermsAndConditions
- type ThreatId
- type UUIDModel
- type User
- type UsesComponent
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConvertLinksToOscal ¶
func ConvertLinksToOscal(data datatypes.JSONSlice[Link]) *[]oscaltypes113.Link
func ConvertList ¶
func ConvertOscalToLinks ¶
func ConvertOscalToLinks(data *[]oscaltypes113.Link) datatypes.JSONSlice[Link]
func ConvertOscalToProps ¶
func ConvertOscalToProps(data *[]oscaltypes113.Property) datatypes.JSONSlice[Prop]
func ConvertPropsToOscal ¶
func ConvertPropsToOscal(data datatypes.JSONSlice[Prop]) *[]oscaltypes113.Property
Types ¶
type Action ¶
type Action struct { UUIDModel // Actions only exist on a metadata object. We'll link them straight there with a BelongsTo relationship MetadataID uuid.UUID `json:"metadata-id"` Date *time.Time `json:"date"` Type string `json:"type"` // required System string `json:"system"` // required Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` ResponsibleParties []ResponsibleParty `gorm:"many2many:action_responsible_parties;"` Remarks string `json:"remarks"` }
func (*Action) MarshalOscal ¶
func (a *Action) MarshalOscal() *oscaltypes113.Action
MarshalOscal converts the Action back to an OSCAL Action
func (*Action) UnmarshalOscal ¶
func (a *Action) UnmarshalOscal(action oscaltypes113.Action) *Action
type Activity ¶
type Activity struct { UUIDModel Title *string `json:"title,omitempty"` Description string `json:"description,omitempty"` // required Remarks *string `json:"remarks,omitempty"` // required Props datatypes.JSONSlice[Prop] `json:"props,omitempty"` Links datatypes.JSONSlice[Link] `json:"links,omitempty"` Steps []Step `json:"steps,omitempty"` RelatedControlsID *uuid.UUID RelatedControls *ReviewedControls `json:"related-controls,omitempty"` ResponsibleRoles []ResponsibleRole `gorm:"polymorphic:Parent" json:"responsible-roles,omitempty"` }
func (*Activity) MarshalOscal ¶
func (i *Activity) MarshalOscal() *oscalTypes_1_1_3.Activity
func (*Activity) UnmarshalOscal ¶
func (i *Activity) UnmarshalOscal(op oscalTypes_1_1_3.Activity) *Activity
type Addition ¶
type Addition struct { UUIDModel Position string `json:"position"` ByID string `json:"by-id"` Title string `json:"title"` Params datatypes.JSONSlice[Parameter] `json:"params"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Parts datatypes.JSONSlice[Part] `json:"parts"` AlterationID uuid.UUID }
func (*Addition) MarshalOscal ¶
func (a *Addition) MarshalOscal() oscalTypes_1_1_3.Addition
func (*Addition) UnmarshalOscal ¶
func (a *Addition) UnmarshalOscal(o oscalTypes_1_1_3.Addition) *Addition
type Address ¶
type Address struct { Type AddressType `json:"type"` AddrLines []string `json:"lines"` City string `json:"city"` State string `json:"state"` PostalCode string `json:"postal-code"` Country string `json:"country"` }
func (*Address) MarshalOscal ¶
func (a *Address) MarshalOscal() *oscaltypes113.Address
MarshalOscal converts the Address back to an OSCAL Address
func (*Address) UnmarshalOscal ¶
func (a *Address) UnmarshalOscal(oaddress oscaltypes113.Address) *Address
type AddressType ¶
type AddressType string
const ( AddressTypeWork AddressType = "work" AddressTypeHome AddressType = "home" )
type Alteration ¶
type Alteration struct { UUIDModel ControlID string `json:"control-id"` // required Adds []Addition `json:"adds"` Removes datatypes.JSONSlice[Removal] `json:"removes"` ModifyID string `json:"modify-id"` }
func (*Alteration) MarshalOscal ¶
func (a *Alteration) MarshalOscal() oscalTypes_1_1_3.Alteration
func (*Alteration) UnmarshalOscal ¶
func (a *Alteration) UnmarshalOscal(o oscalTypes_1_1_3.Alteration) *Alteration
type AssessedControlsSelectControlById ¶
type AssessedControlsSelectControlById struct { UUIDModel ControlID string Control Control `gorm:"references:ID"` Statements []Statement `gorm:"many2many:assessed_controls_select_control_by_id_statements;"` }
func (*AssessedControlsSelectControlById) MarshalOscal ¶
func (s *AssessedControlsSelectControlById) MarshalOscal() oscalTypes_1_1_3.AssessedControlsSelectControlById
func (*AssessedControlsSelectControlById) UnmarshalOscal ¶
func (s *AssessedControlsSelectControlById) UnmarshalOscal(o oscalTypes_1_1_3.AssessedControlsSelectControlById) *AssessedControlsSelectControlById
type AssessmentAsset ¶
type AssessmentAsset struct { UUIDModel Components []SystemComponent `gorm:"many2many:assessment_asset_components"` AssessmentPlatforms []AssessmentPlatform // required ParentType string ParentID uuid.UUID }
func (*AssessmentAsset) MarshalOscal ¶
func (i *AssessmentAsset) MarshalOscal() *oscalTypes_1_1_3.AssessmentAssets
func (*AssessmentAsset) UnmarshalOscal ¶
func (i *AssessmentAsset) UnmarshalOscal(op oscalTypes_1_1_3.AssessmentAssets) *AssessmentAsset
type AssessmentAssets ¶
type AssessmentAssets oscalTypes_1_1_3.AssessmentAssets
AssessmentAssets represents assessment assets in OSCAL.
func (*AssessmentAssets) MarshalOscal ¶
func (a *AssessmentAssets) MarshalOscal() *oscalTypes_1_1_3.AssessmentAssets
func (*AssessmentAssets) UnmarshalOscal ¶
func (a *AssessmentAssets) UnmarshalOscal(oa oscalTypes_1_1_3.AssessmentAssets) *AssessmentAssets
type AssessmentLog ¶
type AssessmentLog struct { UUIDModel Entries []AssessmentLogEntry }
func (*AssessmentLog) MarshalOscal ¶
func (i *AssessmentLog) MarshalOscal() *oscalTypes_1_1_3.AssessmentLog
func (*AssessmentLog) UnmarshalOscal ¶
func (i *AssessmentLog) UnmarshalOscal(op oscalTypes_1_1_3.AssessmentLog) *AssessmentLog
type AssessmentLogEntry ¶
type AssessmentLogEntry struct { UUIDModel AssessmentLogID uuid.UUID Title *string Remarks *string Description *string Start *time.Time End *time.Time Props datatypes.JSONSlice[Prop] Links datatypes.JSONSlice[Link] LoggedBy []LoggedBy `gorm:"polymorphic:Parent"` RelatedTasks []RelatedTask `gorm:"polymorphic:Parent"` }
func (*AssessmentLogEntry) MarshalOscal ¶
func (i *AssessmentLogEntry) MarshalOscal() *oscalTypes_1_1_3.AssessmentLogEntry
func (*AssessmentLogEntry) UnmarshalOscal ¶
func (i *AssessmentLogEntry) UnmarshalOscal(op oscalTypes_1_1_3.AssessmentLogEntry) *AssessmentLogEntry
type AssessmentPart ¶
type AssessmentPart struct { UUIDModel Name string NS string Class string Title string Prose string Props datatypes.JSONSlice[Prop] Links datatypes.JSONSlice[Link] AssessmentPartID *uuid.UUID Parts []AssessmentPart }
func (*AssessmentPart) MarshalOscal ¶
func (p *AssessmentPart) MarshalOscal() *oscalTypes_1_1_3.AssessmentPart
func (*AssessmentPart) UnmarshalOscal ¶
func (p *AssessmentPart) UnmarshalOscal(data oscalTypes_1_1_3.AssessmentPart) *AssessmentPart
type AssessmentPlan ¶
type AssessmentPlan struct { UUIDModel Metadata Metadata `gorm:"polymorphic:Parent;"` BackMatter *BackMatter `gorm:"polymorphic:Parent;"` ImportSSP datatypes.JSONType[ImportSsp] Tasks []Task `gorm:"polymorphic:Parent"` ReviewedControlsID uuid.UUID ReviewedControls ReviewedControls AssessmentAssetsID *uuid.UUID AssessmentAssets *AssessmentAsset AssessmentSubjects []AssessmentSubject `gorm:"many2many:assessment_plan_assessment_subjects"` LocalDefinitions LocalDefinitions `gorm:"polymorphic:Parent"` TermsAndConditionsID *uuid.UUID TermsAndConditions *TermsAndConditions }
func (*AssessmentPlan) MarshalOscal ¶
func (i *AssessmentPlan) MarshalOscal() *oscalTypes_1_1_3.AssessmentPlan
func (*AssessmentPlan) UnmarshalOscal ¶
func (i *AssessmentPlan) UnmarshalOscal(op oscalTypes_1_1_3.AssessmentPlan) *AssessmentPlan
type AssessmentPlatform ¶
type AssessmentPlatform struct { UUIDModel AssessmentAssetID uuid.UUID AssessmentAsset AssessmentAsset Title *string Remarks *string Props datatypes.JSONSlice[Prop] Links datatypes.JSONSlice[Link] UsesComponents []UsesComponent }
func (*AssessmentPlatform) MarshalOscal ¶
func (i *AssessmentPlatform) MarshalOscal() *oscalTypes_1_1_3.AssessmentPlatform
func (*AssessmentPlatform) UnmarshalOscal ¶
func (i *AssessmentPlatform) UnmarshalOscal(op oscalTypes_1_1_3.AssessmentPlatform) *AssessmentPlatform
type AssessmentResult ¶
type AssessmentResult struct { UUIDModel Metadata Metadata `gorm:"polymorphic:Parent;"` BackMatter *BackMatter `gorm:"polymorphic:Parent;"` ImportAp datatypes.JSONType[ImportAp] LocalDefinitions *LocalDefinitions `gorm:"polymorphic:Parent"` Results []Result }
func (*AssessmentResult) MarshalOscal ¶
func (i *AssessmentResult) MarshalOscal() *oscalTypes_1_1_3.AssessmentResults
func (*AssessmentResult) UnmarshalOscal ¶
func (i *AssessmentResult) UnmarshalOscal(op oscalTypes_1_1_3.AssessmentResults) *AssessmentResult
type AssessmentSubject ¶
type AssessmentSubject struct { // Assessment Subject is a loose reference to some subject. // A subject can be a Component, InventoryItem, Location, Party, User, Resource. // In our struct we don't store the type, but rather have relations to each of these, and when marhsalling and unmarshalling, // setting the type to what we know it is. UUIDModel // Type represents a component, party, location, user, or inventory item. // It will likely be updated once we can map it correctly Type string Description *string Remarks *string Props datatypes.JSONSlice[Prop] Links datatypes.JSONSlice[Link] IncludeAll *datatypes.JSONType[*IncludeAll] IncludeSubjects []SelectSubjectById ExcludeSubjects []SelectSubjectById Evidence []Evidence `gorm:"many2many:evidence_subjects;"` }
func (*AssessmentSubject) MarshalOscal ¶
func (i *AssessmentSubject) MarshalOscal() *oscalTypes_1_1_3.AssessmentSubject
func (*AssessmentSubject) UnmarshalOscal ¶
func (i *AssessmentSubject) UnmarshalOscal(op oscalTypes_1_1_3.AssessmentSubject) *AssessmentSubject
type AssociatedActivity ¶
type AssociatedActivity struct { UUIDModel TaskID uuid.UUID // Belongs to a task Remarks *string ActivityID uuid.UUID Activity Activity Props datatypes.JSONSlice[Prop] Links datatypes.JSONSlice[Link] ResponsibleRoles []ResponsibleRole `gorm:"polymorphic:Parent;"` Subjects []AssessmentSubject `gorm:"many2many:associated_activity_subjects"` // required }
func (*AssociatedActivity) MarshalOscal ¶
func (i *AssociatedActivity) MarshalOscal() *oscalTypes_1_1_3.AssociatedActivity
func (*AssociatedActivity) UnmarshalOscal ¶
func (i *AssociatedActivity) UnmarshalOscal(op oscalTypes_1_1_3.AssociatedActivity) *AssociatedActivity
type AssociatedRisk ¶
type AssociatedRisk oscalTypes_1_1_3.AssociatedRisk
AssociatedRisk represents an associated risk in OSCAL.
func (*AssociatedRisk) MarshalOscal ¶
func (a *AssociatedRisk) MarshalOscal() *oscalTypes_1_1_3.AssociatedRisk
func (*AssociatedRisk) UnmarshalOscal ¶
func (a *AssociatedRisk) UnmarshalOscal(oar oscalTypes_1_1_3.AssociatedRisk) *AssociatedRisk
type Attestation ¶
type Attestation struct { UUIDModel ResultID uuid.UUID ResponsibleParties []ResponsibleParty `gorm:"many2many:attestation_responsible_parties"` Parts datatypes.JSONSlice[AssessmentPart] // required }
func (*Attestation) MarshalOscal ¶
func (i *Attestation) MarshalOscal() *oscalTypes_1_1_3.AttestationStatements
func (*Attestation) UnmarshalOscal ¶
func (i *Attestation) UnmarshalOscal(op oscalTypes_1_1_3.AttestationStatements) *Attestation
type AuthorizationBoundary ¶
type AuthorizationBoundary struct { UUIDModel Description string `json:"description"` Remarks string `json:"remarks"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Diagrams []Diagram `json:"diagrams" gorm:"polymorphic:Parent;"` SystemCharacteristicsId uuid.UUID }
func (*AuthorizationBoundary) MarshalOscal ¶
func (ab *AuthorizationBoundary) MarshalOscal() *oscalTypes_1_1_3.AuthorizationBoundary
func (*AuthorizationBoundary) UnmarshalOscal ¶
func (ab *AuthorizationBoundary) UnmarshalOscal(oab oscalTypes_1_1_3.AuthorizationBoundary) *AuthorizationBoundary
type AuthorizedPrivilege ¶
type AuthorizedPrivilege struct { UUIDModel Title string `json:"title"` Description string `json:"description"` FunctionsPerformed datatypes.JSONSlice[string] `json:"functions-performed"` SystemUserId uuid.UUID }
func (*AuthorizedPrivilege) MarshalOscal ¶
func (ap *AuthorizedPrivilege) MarshalOscal() *oscalTypes_1_1_3.AuthorizedPrivilege
func (*AuthorizedPrivilege) UnmarshalOscal ¶
func (ap *AuthorizedPrivilege) UnmarshalOscal(oap oscalTypes_1_1_3.AuthorizedPrivilege) *AuthorizedPrivilege
type BackMatter ¶
type BackMatter struct { UUIDModel ParentID *string ParentType *string Resources []BackMatterResource }
func (*BackMatter) MarshalOscal ¶
func (b *BackMatter) MarshalOscal() *oscaltypes113.BackMatter
MarshalOscal converts the BackMatter back to an OSCAL BackMatter
func (*BackMatter) UnmarshalOscal ¶
func (b *BackMatter) UnmarshalOscal(resource oscaltypes113.BackMatter) *BackMatter
type BackMatterResource ¶
type BackMatterResource struct { ID uuid.UUID `gorm:"primary_key"` // required BackMatterID uuid.UUID `gorm:"primary_key"` Title *string `json:"title"` Description *string `json:"description"` Remarks *string `json:"remarks"` Citation *datatypes.JSONType[Citation] `json:"citation"` Base64 *datatypes.JSONType[Base64] `json:"base64"` Props datatypes.JSONSlice[Prop] `json:"props"` DocumentIDs datatypes.JSONSlice[DocumentID] `json:"document-ids"` RLinks datatypes.JSONSlice[ResourceLink] `json:"rlinks"` }
func (*BackMatterResource) MarshalOscal ¶
func (b *BackMatterResource) MarshalOscal() *oscaltypes113.Resource
MarshalOscal converts the BackMatterResource back to an OSCAL Resource
func (*BackMatterResource) UnmarshalOscal ¶
func (c *BackMatterResource) UnmarshalOscal(resource oscaltypes113.Resource) *BackMatterResource
type Base64 ¶
type Base64 struct { Filename string `json:"filename"` MediaType string `json:"media-type"` Value string `json:"value"` // required }
func (*Base64) MarshalOscal ¶
func (b *Base64) MarshalOscal() *oscaltypes113.Base64
MarshalOscal converts the Base64 back to an OSCAL Base64
func (*Base64) UnmarshalOscal ¶
func (b *Base64) UnmarshalOscal(base oscaltypes113.Base64) *Base64
type ByComponent ¶
type ByComponent struct { UUIDModel // As ByComponent can be found in Implemented Requirements & Statements, using GORM polymorphism to tell us where to attach ParentID *uuid.UUID ParentType *string ComponentUUID uuid.UUID `json:"component-uuid"` Description string `json:"description"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` SetParameters datatypes.JSONSlice[SetParameter] `json:"set-parameters"` ResponsibleRoles []ResponsibleRole `json:"responsible-parties" gorm:"polymorphic:Parent;"` Remarks string `json:"remarks"` ImplementationStatus datatypes.JSONType[ImplementationStatus] `json:"implementation-status"` Export *Export `json:"export,omitempty"` Inherited []InheritedControlImplementation `json:"inherited-control-implementations,omitempty"` Satisfied []SatisfiedControlImplementationResponsibility `json:"satisfied"` }
func (*ByComponent) MarshalOscal ¶
func (bc *ByComponent) MarshalOscal() *oscalTypes_1_1_3.ByComponent
func (*ByComponent) UnmarshalOscal ¶
func (bc *ByComponent) UnmarshalOscal(obc oscalTypes_1_1_3.ByComponent) *ByComponent
type Capability ¶
type Capability struct { UUIDModel // required Description string `json:"description"` // required Name string `json:"name"` // required Remarks string `json:"remarks"` Links datatypes.JSONSlice[Link] `json:"links"` Props datatypes.JSONSlice[Prop] `json:"props"` IncorporatesComponents datatypes.JSONSlice[IncorporatesComponents] `json:"incorporates-components"` ControlImplementations []ControlImplementationSet `json:"control-implementations" gorm:"many2many:capability_control_implementation_sets"` ComponentDefinitionId uuid.UUID ComponentDefinition ComponentDefinition }
Capability represents a capability in OSCAL. It includes description, name, remarks, links, properties, incorporates components, and control implementations.
func (*Capability) MarshalOscal ¶
func (c *Capability) MarshalOscal() *oscalTypes_1_1_3.Capability
MarshalOscal converts the relational Capability back into an OSCAL Capability structure.
func (*Capability) UnmarshalOscal ¶
func (c *Capability) UnmarshalOscal(oc oscalTypes_1_1_3.Capability) *Capability
UnmarshalOscal converts an OSCAL Capability into a relational Capability. It includes links, props, incorporates components, and control implementations.
type Catalog ¶
type Catalog struct { UUIDModel Metadata Metadata `json:"metadata" gorm:"polymorphic:Parent;"` Params datatypes.JSONSlice[Parameter] `json:"params"` Groups []Group `json:"groups"` Controls []Control `json:"controls"` BackMatter *BackMatter `json:"back-matter,omitempty" gorm:"polymorphic:Parent;"` }
func (*Catalog) MarshalOscal ¶
func (c *Catalog) MarshalOscal() *oscalTypes_1_1_3.Catalog
MarshalOscal converts the Catalog back to an OSCAL Catalog
func (*Catalog) UnmarshalOscal ¶
func (c *Catalog) UnmarshalOscal(ocatalog oscalTypes_1_1_3.Catalog) *Catalog
type Characterization ¶
type Characterization oscalTypes_1_1_3.Characterization
Characterization represents a characterization in OSCAL.
func (*Characterization) MarshalOscal ¶
func (c *Characterization) MarshalOscal() *oscalTypes_1_1_3.Characterization
func (*Characterization) UnmarshalOscal ¶
func (c *Characterization) UnmarshalOscal(oc oscalTypes_1_1_3.Characterization) *Characterization
type Citation ¶
type Citation struct { Text string `json:"text"` // required Props []Prop `json:"props"` Links []Link `json:"links"` }
func (*Citation) MarshalOscal ¶
func (c *Citation) MarshalOscal() *oscaltypes113.Citation
MarshalOscal converts the Citation back to an OSCAL Citation
func (*Citation) UnmarshalOscal ¶
func (c *Citation) UnmarshalOscal(cit oscaltypes113.Citation) *Citation
type CombinationRule ¶
type CombinationRule oscalTypes_1_1_3.CombinationRule
func (*CombinationRule) MarshalOscal ¶
func (cr *CombinationRule) MarshalOscal() *oscalTypes_1_1_3.CombinationRule
func (*CombinationRule) UnmarshalOscal ¶
func (cr *CombinationRule) UnmarshalOscal(o oscalTypes_1_1_3.CombinationRule) *CombinationRule
type ComponentDefinition ¶
type ComponentDefinition struct { UUIDModel // required Metadata Metadata `json:"metadata" gorm:"polymorphic:Parent;"` // required BackMatter BackMatter `json:"back-matter" gorm:"polymorphic:Parent;"` ImportComponentDefinitions datatypes.JSONSlice[ImportComponentDefinition] `json:"import-component-definitions"` Components []DefinedComponent `json:"components"` Capabilities []Capability `json:"capabilities"` }
ComponentDefinition represents a component definition in OSCAL. It includes metadata, back matter, imported component definitions, components, and capabilities.
func (*ComponentDefinition) MarshalOscal ¶
func (c *ComponentDefinition) MarshalOscal() *oscalTypes_1_1_3.ComponentDefinition
MarshalOscal converts the relational ComponentDefinition back into an OSCAL ComponentDefinition structure.
func (*ComponentDefinition) UnmarshalOscal ¶
func (c *ComponentDefinition) UnmarshalOscal(ocd oscalTypes_1_1_3.ComponentDefinition) *ComponentDefinition
UnmarshalOscal converts an OSCAL ComponentDefinition into a relational ComponentDefinition. It includes metadata, import component definitions, components, and capabilities.
type Control ¶
type Control struct { CatalogID uuid.UUID `gorm:"primary_key"` ID string `json:"id" gorm:"primary_key"` // required Title string `json:"title"` // required Class *string `json:"class"` Params datatypes.JSONSlice[Parameter] `json:"params"` Parts datatypes.JSONSlice[Part] `json:"parts"` Props datatypes.JSONSlice[Prop] `json:"props,omitempty"` Links datatypes.JSONSlice[Link] `json:"links,omitempty"` ParentID *string ParentType *string Controls []Control `json:"controls" gorm:"polymorphic:Parent;"` Filters []Filter `gorm:"many2many:filter_controls;"` }
func (*Control) MarshalOscal ¶
func (c *Control) MarshalOscal() *oscalTypes_1_1_3.Control
MarshalOscal converts the Control back to an OSCAL Control
func (*Control) UnmarshalOscal ¶
type ControlImplementation ¶
type ControlImplementation struct { UUIDModel Description string `json:"description"` SetParameters datatypes.JSONSlice[SetParameter] `json:"set-parameters"` ImplementedRequirements []ImplementedRequirement `json:"implemented-requirements"` SystemSecurityPlanId uuid.UUID }
func (*ControlImplementation) MarshalOscal ¶
func (ci *ControlImplementation) MarshalOscal() *oscalTypes_1_1_3.ControlImplementation
func (*ControlImplementation) UnmarshalOscal ¶
func (ci *ControlImplementation) UnmarshalOscal(oci oscalTypes_1_1_3.ControlImplementation) *ControlImplementation
type ControlImplementationResponsibility ¶
type ControlImplementationResponsibility struct { UUIDModel Description string `json:"description"` // required Links datatypes.JSONSlice[Link] `json:"links"` Props datatypes.JSONSlice[Prop] `json:"props"` ProvidedUuid uuid.UUID `json:"provided-uuid"` Remarks string `json:"remarks"` ResponsibleRoles []ResponsibleRole `json:"responsible-roles" gorm:"polymorphic:Parent"` ExportId uuid.UUID }
func (*ControlImplementationResponsibility) MarshalOscal ¶
func (cir *ControlImplementationResponsibility) MarshalOscal() *oscalTypes_1_1_3.ControlImplementationResponsibility
func (*ControlImplementationResponsibility) UnmarshalOscal ¶
func (cir *ControlImplementationResponsibility) UnmarshalOscal(ocir oscalTypes_1_1_3.ControlImplementationResponsibility) *ControlImplementationResponsibility
type ControlImplementationSet ¶
type ControlImplementationSet struct { UUIDModel // required Source string `json:"source"` // required Description string `json:"description"` // required SetParameters datatypes.JSONSlice[SetParameter] `json:"set-parameters"` ImplementedRequirements []ImplementedRequirementControlImplementation `json:"implemented-requirements"` // required Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` DefinedComponentID uuid.UUID DefinedComponent DefinedComponent }
ControlImplementationSet represents a set of control implementations in OSCAL. It includes source, description, set parameters, implemented requirements, properties, and links.
func (*ControlImplementationSet) MarshalOscal ¶
func (ci *ControlImplementationSet) MarshalOscal() *oscalTypes_1_1_3.ControlImplementationSet
MarshalOscal converts the relational ControlImplementationSet back into an OSCAL ControlImplementationSet structure.
func (*ControlImplementationSet) UnmarshalOscal ¶
func (ci *ControlImplementationSet) UnmarshalOscal(oci oscalTypes_1_1_3.ControlImplementationSet) *ControlImplementationSet
UnmarshalOscal converts an OSCAL ControlImplementationSet into a relational ControlImplementationSet. It includes set parameters, implemented requirements, props, and links.
type ControlObjectiveSelection ¶
type ControlObjectiveSelection struct { UUIDModel ReviewedControlsID uuid.UUID Description *string Remarks *string Props datatypes.JSONSlice[Prop] Links datatypes.JSONSlice[Link] IncludeAll *datatypes.JSONType[IncludeAll] IncludeObjectives []SelectObjectiveById `gorm:"Polymorphic:Parent;polymorphicValue:included"` ExcludeObjectives []SelectObjectiveById `gorm:"Polymorphic:Parent;polymorphicValue:excluded"` }
func (*ControlObjectiveSelection) MarshalOscal ¶
func (i *ControlObjectiveSelection) MarshalOscal() *oscalTypes_1_1_3.ReferencedControlObjectives
func (*ControlObjectiveSelection) UnmarshalOscal ¶
func (i *ControlObjectiveSelection) UnmarshalOscal(op oscalTypes_1_1_3.ReferencedControlObjectives) *ControlObjectiveSelection
type ControlSelection ¶
type ControlSelection struct { UUIDModel ReviewedControlsID uuid.UUID Description *string Remarks *string Props datatypes.JSONSlice[Prop] Links datatypes.JSONSlice[Link] IncludeAll *datatypes.JSONType[IncludeAll] IncludeControls []AssessedControlsSelectControlById `gorm:"many2many:control_selection_assessed_controls_included"` ExcludeControls []AssessedControlsSelectControlById `gorm:"many2many:control_selection_assessed_controls_excluded"` }
func (*ControlSelection) MarshalOscal ¶
func (i *ControlSelection) MarshalOscal() *oscalTypes_1_1_3.AssessedControls
func (*ControlSelection) UnmarshalOscal ¶
func (i *ControlSelection) UnmarshalOscal(op oscalTypes_1_1_3.AssessedControls) *ControlSelection
type ControlStatementImplementation ¶
type ControlStatementImplementation struct { UUIDModel // required StatementId string `json:"statement-id"` // required Description string `json:"description"` // required Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` ResponsibleRoles []ResponsibleRole `json:"responsible-roles" gorm:"polymorphic:Parent;"` Remarks string `json:"remarks"` ImplementedRequirementControlImplementationId uuid.UUID }
ControlStatementImplementation represents a control statement implementation in OSCAL. It includes statement ID, description, properties, links, responsible roles, and remarks.
func (*ControlStatementImplementation) MarshalOscal ¶
func (s *ControlStatementImplementation) MarshalOscal() *oscalTypes_1_1_3.ControlStatementImplementation
MarshalOscal converts the relational ControlStatementImplementation back into an OSCAL ControlStatementImplementation structure.
func (*ControlStatementImplementation) UnmarshalOscal ¶
func (s *ControlStatementImplementation) UnmarshalOscal(oci oscalTypes_1_1_3.ControlStatementImplementation) *ControlStatementImplementation
UnmarshalOscal converts an OSCAL ControlStatementImplementation into a relational ControlStatementImplementation. It includes props, links, and responsible roles.
type DataFlow ¶
type DataFlow struct { UUIDModel Description string `json:"description"` Remarks string `json:"remarks"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Diagrams []Diagram `json:"diagrams" gorm:"polymorphic:Parent;"` SystemCharacteristicsId uuid.UUID }
func (*DataFlow) MarshalOscal ¶
func (df *DataFlow) MarshalOscal() *oscalTypes_1_1_3.DataFlow
func (*DataFlow) UnmarshalOscal ¶
func (df *DataFlow) UnmarshalOscal(odf oscalTypes_1_1_3.DataFlow) *DataFlow
type DefinedComponent ¶
type DefinedComponent struct { UUIDModel // required Type string `json:"type"` // required Title string `json:"title"` // required Description string `json:"description"` // required Purpose string `json:"purpose"` Remarks string `json:"remarks"` ResponsibleRoles []ResponsibleRole `json:"responsible-roles" gorm:"polymorphic:Parent"` ControlImplementations []ControlImplementationSet `json:"control-implementations" gorm:"many2many:defined_components_control_implementation_sets"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Protocols datatypes.JSONSlice[Protocol] `json:"protocols"` ComponentDefinitionID *uuid.UUID ComponentDefinition *ComponentDefinition }
DefinedComponent represents a defined component in OSCAL. It includes type, title, description, purpose, remarks, responsible roles, control implementations, properties, links, and protocols.
func (*DefinedComponent) MarshalOscal ¶
func (dc *DefinedComponent) MarshalOscal() *oscalTypes_1_1_3.DefinedComponent
MarshalOscal converts the relational DefinedComponent back into an OSCAL DefinedComponent structure. It includes protocols, control implementations, responsible roles, links, and props.
func (*DefinedComponent) UnmarshalOscal ¶
func (dc *DefinedComponent) UnmarshalOscal(odc oscalTypes_1_1_3.DefinedComponent) *DefinedComponent
UnmarshalOscal converts an OSCAL DefinedComponent into a relational DefinedComponent. It includes protocols, control implementations, responsible roles, links, and props.
type Diagram ¶
type Diagram struct { UUIDModel Description string `json:"description"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Caption string `json:"caption"` Remarks string `json:"remarks"` ParentID *string ParentType *string }
func (*Diagram) MarshalOscal ¶
func (d *Diagram) MarshalOscal() *oscalTypes_1_1_3.Diagram
func (*Diagram) UnmarshalOscal ¶
func (d *Diagram) UnmarshalOscal(od oscalTypes_1_1_3.Diagram) *Diagram
type DocumentID ¶
type DocumentID struct { Scheme DocumentIDScheme `json:"scheme"` Identifier string `json:"identifier"` }
func (*DocumentID) MarshalOscal ¶
func (d *DocumentID) MarshalOscal() *oscaltypes113.DocumentId
MarshalOscal converts the DocumentID back to an OSCAL DocumentId
func (*DocumentID) UnmarshalOscal ¶
func (d *DocumentID) UnmarshalOscal(id oscaltypes113.DocumentId) *DocumentID
type DocumentIDScheme ¶
type DocumentIDScheme string
const (
DocumentIDSchemeDoi DocumentIDScheme = "http://www.doi.org/"
)
type Evidence ¶
type Evidence struct { // ID is the unique ID for this specific observation, and will be used as the primary key in the database. UUIDModel // UUID needs to remain consistent when automation runs again, but unique for each subject. // It represents the "stream" of the same observation being made over time. UUID uuid.UUID `gorm:"index:evidence_stream_idx;index:evidence_stream_collected_idx,priority:1" json:"uuid,omitempty"` BackMatter *BackMatter `gorm:"polymorphic:Parent;" json:"back-matter,omitempty"` Title string `json:"title"` Description string `json:"description"` Remarks *string `json:"remarks,omitempty"` // Assigning labels to Evidence makes it searchable and easily usable in the UI Labels []Labels `gorm:"many2many:evidence_labels;" json:"labels"` // When did we start collecting the evidence, and when did the process end, and how long is it valid for ? Start time.Time `json:"start"` End time.Time `gorm:"index:evidence_stream_collected_idx,priority:2,sort:desc" json:"end"` Expires *time.Time `json:"expires,omitempty"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` // Who or What is generating this evidence Origins datatypes.JSONSlice[Origin] `json:"origins,omitempty"` // What steps did we take to create this evidence Activities []Activity `gorm:"many2many:evidence_activities" json:"activities,omitempty"` InventoryItems []InventoryItem `gorm:"many2many:evidence_inventory_items" json:"inventory-items,omitempty"` // Which components of the subject are being observed. A tool, user, policy etc. Components []SystemComponent `gorm:"many2many:evidence_components" json:"components,omitempty"` // Who or What are we providing evidence for. What's under test. Subjects []AssessmentSubject `gorm:"many2many:evidence_subjects;" json:"subjects,omitempty"` // Did we satisfy what was being tested for, or did we fail ? Status datatypes.JSONType[oscalTypes_1_1_3.ObjectiveStatus] `json:"status"` }
type Export ¶
type Export struct { UUIDModel Description string `json:"description"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Remarks string `json:"remarks"` Provided []ProvidedControlImplementation `json:"provided"` Responsibilities []ControlImplementationResponsibility `json:"responsibilities"` ByComponentId uuid.UUID }
func (*Export) MarshalOscal ¶
func (e *Export) MarshalOscal() *oscalTypes_1_1_3.Export
func (*Export) UnmarshalOscal ¶
func (e *Export) UnmarshalOscal(oe oscalTypes_1_1_3.Export) *Export
type Finding ¶
type Finding struct { UUIDModel // required Description string `json:"description"` // required Title string `json:"title"` // required Target datatypes.JSONType[oscalTypes_1_1_3.FindingTarget] `json:"target"` // required ImplementationStatementUuid *string `json:"implementation-statement-uuid"` Links datatypes.JSONSlice[Link] `json:"links"` Origins datatypes.JSONSlice[Origin] `json:"origins"` Props datatypes.JSONSlice[Prop] `json:"props"` // Database relationships for efficient querying RelatedObservations []Observation `gorm:"many2many:finding_related_observations;" json:"-"` RelatedRisks []Risk `gorm:"many2many:finding_related_risks;" json:"-"` // OSCAL compatibility - JSON fields for import/export RelatedObservationUUIDs datatypes.JSONSlice[RelatedObservation] `json:"related-observations"` RelatedRiskUUIDs datatypes.JSONSlice[AssociatedRisk] `json:"related-risks"` Remarks *string `json:"remarks"` }
Finding represents a finding in OSCAL.
func (*Finding) MarshalOscal ¶
func (f *Finding) MarshalOscal() *oscalTypes_1_1_3.Finding
func (*Finding) UnmarshalOscal ¶
func (f *Finding) UnmarshalOscal(of oscalTypes_1_1_3.Finding) *Finding
type FindingTarget ¶
type FindingTarget oscalTypes_1_1_3.FindingTarget
FindingTarget represents a finding target in OSCAL.
func (*FindingTarget) MarshalOscal ¶
func (f *FindingTarget) MarshalOscal() *oscalTypes_1_1_3.FindingTarget
func (*FindingTarget) UnmarshalOscal ¶
func (f *FindingTarget) UnmarshalOscal(of oscalTypes_1_1_3.FindingTarget) *FindingTarget
type FlatWithoutGrouping ¶
type Group ¶
type Group struct { CatalogID uuid.UUID `gorm:"primary_key"` ID string `json:"id" gorm:"primary_key"` // required Class string `json:"class"` Title string `json:"title"` // required Params datatypes.JSONSlice[Parameter] `json:"params"` Parts datatypes.JSONSlice[Part] `json:"parts"` Props datatypes.JSONSlice[Prop] `json:"props,omitempty"` Links datatypes.JSONSlice[Link] `json:"links,omitempty"` ParentID *string ParentType *string Groups []Group `json:"groups" gorm:"polymorphic:Parent;"` Controls []Control `json:"controls" gorm:"polymorphic:Parent;"` }
func (*Group) MarshalOscal ¶
func (c *Group) MarshalOscal() *oscalTypes_1_1_3.Group
MarshalOscal converts the Group back to an OSCAL Group
func (*Group) UnmarshalOscal ¶
type Hash ¶
type Hash struct { Algorithm HashAlgorithm `json:"algorithm"` // required Value string `json:"value"` // required }
func (*Hash) MarshalOscal ¶
func (h *Hash) MarshalOscal() *oscaltypes113.Hash
MarshalOscal converts the Hash back to an OSCAL Hash
func (*Hash) UnmarshalOscal ¶
func (h *Hash) UnmarshalOscal(hash oscaltypes113.Hash) *Hash
type HashAlgorithm ¶
type HashAlgorithm string
const ( HashAlgorithmSHA_224 HashAlgorithm = "SHA-224" HashAlgorithmSHA_256 HashAlgorithm = "SHA-256" HashAlgorithmSHA_384 HashAlgorithm = "SHA-384" HashAlgorithmSHA_512 HashAlgorithm = "SHA-512" HashAlgorithmSHA3_224 HashAlgorithm = "SHA3-224" HashAlgorithmSHA3_256 HashAlgorithm = "SHA3-256" HashAlgorithmSHA3_384 HashAlgorithm = "SHA3-384" HashAlgorithmSHA3_512 HashAlgorithm = "SHA3-512" )
type HrefMetadata ¶
type IdentifiedSubject ¶
type IdentifiedSubject struct { UUIDModel RelatedTaskID uuid.UUID SubjectPlaceholderID uuid.UUID Subjects []AssessmentSubject `gorm:"many2many:related_task_subjects;"` }
func (*IdentifiedSubject) MarshalOscal ¶
func (i *IdentifiedSubject) MarshalOscal() *oscalTypes_1_1_3.IdentifiedSubject
func (*IdentifiedSubject) UnmarshalOscal ¶
func (i *IdentifiedSubject) UnmarshalOscal(op oscalTypes_1_1_3.IdentifiedSubject) *IdentifiedSubject
type Impact ¶
type Impact oscalTypes_1_1_3.Impact
func (*Impact) MarshalOscal ¶
func (i *Impact) MarshalOscal() *oscalTypes_1_1_3.Impact
func (*Impact) UnmarshalOscal ¶
func (i *Impact) UnmarshalOscal(osi oscalTypes_1_1_3.Impact) *Impact
type ImplementationStatus ¶
type ImplementationStatus oscalTypes_1_1_3.ImplementationStatus
func (*ImplementationStatus) MarshalOscal ¶
func (is *ImplementationStatus) MarshalOscal() *oscalTypes_1_1_3.ImplementationStatus
func (*ImplementationStatus) UnmarshalOscal ¶
func (is *ImplementationStatus) UnmarshalOscal(ois oscalTypes_1_1_3.ImplementationStatus) *ImplementationStatus
type ImplementedComponent ¶
type ImplementedComponent struct { UUIDModel ComponentID uuid.UUID `json:"component-uuid"` Component DefinedComponent Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` ResponsibleParties datatypes.JSONSlice[ResponsibleParty] `json:"responsible-parties"` Remarks string `json:"remarks"` InventoryItemId uuid.UUID }
func (*ImplementedComponent) MarshalOscal ¶
func (ic *ImplementedComponent) MarshalOscal() oscalTypes_1_1_3.ImplementedComponent
func (*ImplementedComponent) UnmarshalOscal ¶
func (ic *ImplementedComponent) UnmarshalOscal(oic oscalTypes_1_1_3.ImplementedComponent) *ImplementedComponent
type ImplementedRequirement ¶
type ImplementedRequirement struct { UUIDModel ControlImplementationId uuid.UUID ControlId string `json:"control-id"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` SetParameters datatypes.JSONSlice[SetParameter] `json:"set-parameters"` ResponsibleRoles []ResponsibleRole `json:"responsible-roles" gorm:"polymorphic:Parent;"` Remarks string `json:"remarks"` ByComponents []ByComponent `json:"by-components" gorm:"Polymorphic:Parent"` Statements []Statement `json:"statements"` }
func (*ImplementedRequirement) MarshalOscal ¶
func (ir *ImplementedRequirement) MarshalOscal() *oscalTypes_1_1_3.ImplementedRequirement
func (*ImplementedRequirement) UnmarshalOscal ¶
func (ir *ImplementedRequirement) UnmarshalOscal(oir oscalTypes_1_1_3.ImplementedRequirement) *ImplementedRequirement
type ImplementedRequirementControlImplementation ¶
type ImplementedRequirementControlImplementation struct { UUIDModel //required ControlId string `json:"control-id"` //required Description string `json:"description"` //required SetParameters datatypes.JSONSlice[SetParameter] `json:"set-parameters"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Remarks string `json:"remarks"` ResponsibleRoles []ResponsibleRole `json:"responsible-roles" gorm:"polymorphic:Parent;"` // required Statements []ControlStatementImplementation `json:"statements"` ControlImplementationSetID uuid.UUID }
ImplementedRequirementControlImplementation represents an implemented requirement in OSCAL. It includes control ID, description, set parameters, properties, links, remarks, responsible roles, and statements.
func (*ImplementedRequirementControlImplementation) MarshalOscal ¶
func (irci *ImplementedRequirementControlImplementation) MarshalOscal() *oscalTypes_1_1_3.ImplementedRequirementControlImplementation
MarshalOscal converts the relational ImplementedRequirementControlImplementation back into an OSCAL ImplementedRequirementControlImplementation structure.
func (*ImplementedRequirementControlImplementation) UnmarshalOscal ¶
func (irci *ImplementedRequirementControlImplementation) UnmarshalOscal(oirci oscalTypes_1_1_3.ImplementedRequirementControlImplementation) *ImplementedRequirementControlImplementation
UnmarshalOscal converts an OSCAL ImplementedRequirementControlImplementation into a relational ImplementedRequirementControlImplementation. It includes set parameters, props, links, responsible roles, and statements.
type Import ¶
type Import struct { UUIDModel // Href as per the OSCAL docs can be an absolute network path (potentially remote), relative or a URI fragment // for the moment to make the system's life easier, it should be a URI fragment to back-matter and try and resolve // back to an ingested catalog. Href string `json:"href"` IncludeAll datatypes.JSONType[*IncludeAll] `json:"include-all"` IncludeControls []SelectControlById `json:"include-controls" gorm:"Polymorphic:Parent;polymorphicValue:included"` ExcludeControls []SelectControlById `json:"exclude-controls" gorm:"Polymorphic:Parent;polymorphicValue:excluded"` ProfileID uuid.UUID }
func (*Import) MarshalOscal ¶
func (i *Import) MarshalOscal() oscalTypes_1_1_3.Import
func (*Import) ResolveHref ¶
func (i *Import) ResolveHref() (*HrefMetadata, error)
ResolveHref attempts to resolve the Href of the Import and checks whether its an absolute path, relative path or a URI fragment. If it is a URI fragment, it will return a flag to indicate to the caller that it should resolve the fragment to a back-matter resource.
func (*Import) UnmarshalOscal ¶
func (i *Import) UnmarshalOscal(oi oscalTypes_1_1_3.Import) *Import
type ImportAp ¶
type ImportAp oscalTypes_1_1_3.ImportAp
func (*ImportAp) MarshalOscal ¶
func (i *ImportAp) MarshalOscal() *oscalTypes_1_1_3.ImportAp
func (*ImportAp) UnmarshalOscal ¶
func (i *ImportAp) UnmarshalOscal(oip oscalTypes_1_1_3.ImportAp) *ImportAp
type ImportComponentDefinition ¶
type ImportComponentDefinition oscalTypes_1_1_3.ImportComponentDefinition
ImportComponentDefinition represents an imported component definition in OSCAL. It includes href for the imported component definition.
func (*ImportComponentDefinition) MarshalOscal ¶
func (icd *ImportComponentDefinition) MarshalOscal() *oscalTypes_1_1_3.ImportComponentDefinition
MarshalOscal converts the relational ImportComponentDefinition back into an OSCAL ImportComponentDefinition structure.
func (*ImportComponentDefinition) UnmarshalOscal ¶
func (icd *ImportComponentDefinition) UnmarshalOscal(oicd oscalTypes_1_1_3.ImportComponentDefinition) *ImportComponentDefinition
UnmarshalOscal converts an OSCAL ImportComponentDefinition into a relational ImportComponentDefinition.
type ImportProfile ¶
type ImportProfile oscalTypes_1_1_3.ImportProfile
func (*ImportProfile) MarshalOscal ¶
func (ip *ImportProfile) MarshalOscal() *oscalTypes_1_1_3.ImportProfile
func (*ImportProfile) UnmarshalOscal ¶
func (ip *ImportProfile) UnmarshalOscal(oip oscalTypes_1_1_3.ImportProfile) *ImportProfile
type ImportSsp ¶
type ImportSsp oscalTypes_1_1_3.ImportSsp
func (*ImportSsp) MarshalOscal ¶
func (i *ImportSsp) MarshalOscal() *oscalTypes_1_1_3.ImportSsp
func (*ImportSsp) UnmarshalOscal ¶
func (i *ImportSsp) UnmarshalOscal(oip oscalTypes_1_1_3.ImportSsp) *ImportSsp
type IncludeAll ¶
type IncorporatesComponents ¶
type IncorporatesComponents oscalTypes_1_1_3.IncorporatesComponent
IncorporatesComponents represents incorporated components in OSCAL. It includes component UUID and description.
func (*IncorporatesComponents) MarshalOscal ¶
func (ic *IncorporatesComponents) MarshalOscal() *oscalTypes_1_1_3.IncorporatesComponent
MarshalOscal converts the relational IncorporatesComponents back into an OSCAL IncorporatesComponent structure.
func (*IncorporatesComponents) UnmarshalOscal ¶
func (ic *IncorporatesComponents) UnmarshalOscal(iic oscalTypes_1_1_3.IncorporatesComponent) *IncorporatesComponents
UnmarshalOscal converts an OSCAL IncorporatesComponent into a relational IncorporatesComponents.
type InformationType ¶
type InformationType struct { UUIDModel Title string `json:"title"` Description string `json:"description"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` ConfidentialityImpact *datatypes.JSONType[Impact] `json:"confidentiality-impact"` IntegrityImpact *datatypes.JSONType[Impact] `json:"integrity-impact"` AvailabilityImpact *datatypes.JSONType[Impact] `json:"availability-impact"` Categorizations datatypes.JSONSlice[InformationTypeCategorization] `json:"categorizations"` SystemInformationId uuid.UUID }
func (*InformationType) MarshalOscal ¶
func (it *InformationType) MarshalOscal() *oscalTypes_1_1_3.InformationType
func (*InformationType) UnmarshalOscal ¶
func (it *InformationType) UnmarshalOscal(oit oscalTypes_1_1_3.InformationType) *InformationType
type InformationTypeCategorization ¶
type InformationTypeCategorization oscalTypes_1_1_3.InformationTypeCategorization
func (*InformationTypeCategorization) MarshalOscal ¶
func (itc *InformationTypeCategorization) MarshalOscal() *oscalTypes_1_1_3.InformationTypeCategorization
func (*InformationTypeCategorization) UnmarshalOscal ¶
func (itc *InformationTypeCategorization) UnmarshalOscal(oitc oscalTypes_1_1_3.InformationTypeCategorization) *InformationTypeCategorization
type InheritedControlImplementation ¶
type InheritedControlImplementation struct { UUIDModel //required ProvidedUuid uuid.UUID `json:"provided-uuid"` Description string `json:"description"` //required Links datatypes.JSONSlice[Link] `json:"links"` Props datatypes.JSONSlice[Prop] `json:"props"` ResponsibleRoles []ResponsibleRole `json:"responsible-roles" gorm:"polymorphic:Parent"` ByComponentId uuid.UUID }
func (*InheritedControlImplementation) MarshalOscal ¶
func (i *InheritedControlImplementation) MarshalOscal() *oscalTypes_1_1_3.InheritedControlImplementation
func (*InheritedControlImplementation) UnmarshalOscal ¶
func (i *InheritedControlImplementation) UnmarshalOscal(oi oscalTypes_1_1_3.InheritedControlImplementation) *InheritedControlImplementation
type InventoryItem ¶
type InventoryItem struct { UUIDModel Description string `json:"description"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` ResponsibleParties datatypes.JSONSlice[ResponsibleParty] `json:"responsible-parties"` Remarks string `json:"remarks"` ImplementedComponents []ImplementedComponent `json:"implemented-components"` SystemImplementationId uuid.UUID Evidence []Evidence `gorm:"many2many:evidence_inventory_items"` }
func (*InventoryItem) MarshalOscal ¶
func (ii *InventoryItem) MarshalOscal() oscalTypes_1_1_3.InventoryItem
func (*InventoryItem) UnmarshalOscal ¶
func (ii *InventoryItem) UnmarshalOscal(oii oscalTypes_1_1_3.InventoryItem) *InventoryItem
type LeveragedAuthorization ¶
type LeveragedAuthorization struct { UUIDModel Title string `json:"title"` PartyUUID uuid.UUID `json:"party-uuid"` DateAuthorized time.Time `json:"date-authorized"` Remarks string `json:"remarks"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` SystemImplementationId uuid.UUID }
func (*LeveragedAuthorization) MarshalOscal ¶
func (la *LeveragedAuthorization) MarshalOscal() *oscalTypes_1_1_3.LeveragedAuthorization
MarshalOscal converts the LeveragedAuthorization back to an OSCAL LeveragedAuthorization
func (*LeveragedAuthorization) UnmarshalOscal ¶
func (la *LeveragedAuthorization) UnmarshalOscal(ola oscalTypes_1_1_3.LeveragedAuthorization) *LeveragedAuthorization
type Link ¶
type Link oscaltypes113.Link
func (*Link) UnmarshalOscal ¶
func (l *Link) UnmarshalOscal(data oscaltypes113.Link) *Link
type LocalDefinitions ¶
type LocalDefinitions struct { UUIDModel Remarks *string Components []SystemComponent `gorm:"many2many:local_definition_components"` InventoryItems []InventoryItem `gorm:"many2many:local_definition_inventory_items"` Users []SystemUser `gorm:"many2many:local_definition_users"` ObjectivesAndMethods []LocalObjective `gorm:"many2many:local_definition_objectives"` Activities []Activity `gorm:"many2many:local_definition_activities"` ParentID uuid.UUID ParentType string }
func (*LocalDefinitions) MarshalOscal ¶
func (i *LocalDefinitions) MarshalOscal() *oscalTypes_1_1_3.LocalDefinitions
func (*LocalDefinitions) UnmarshalOscal ¶
func (i *LocalDefinitions) UnmarshalOscal(op oscalTypes_1_1_3.LocalDefinitions) *LocalDefinitions
type LocalObjective ¶
type LocalObjective struct { UUIDModel ControlID string // required Control Control `gorm:"references:ID"` Description *string Remarks *string Props datatypes.JSONSlice[Prop] Links datatypes.JSONSlice[Link] Parts datatypes.JSONSlice[Part] // required }
func (*LocalObjective) MarshalOscal ¶
func (i *LocalObjective) MarshalOscal() *oscalTypes_1_1_3.LocalObjective
func (*LocalObjective) UnmarshalOscal ¶
func (i *LocalObjective) UnmarshalOscal(op oscalTypes_1_1_3.LocalObjective) *LocalObjective
type Location ¶
type Location struct { UUIDModel Title *string `json:"title"` Address *datatypes.JSONType[Address] `json:"address"` EmailAddresses datatypes.JSONSlice[string] `json:"email-addresses"` TelephoneNumbers datatypes.JSONSlice[TelephoneNumber] `json:"telephone-numbers"` Urls datatypes.JSONSlice[string] `json:"urls"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Remarks *string `json:"remarks"` }
func (*Location) MarshalOscal ¶
func (l *Location) MarshalOscal() *oscaltypes113.Location
MarshalOscal converts the Location back to an OSCAL Location
func (*Location) UnmarshalOscal ¶
func (l *Location) UnmarshalOscal(olocation oscaltypes113.Location) *Location
type LoggedBy ¶
type LoggedBy struct { PartyID uuid.UUID Party Party RoleID string Role Role ParentType string ParentID uuid.UUID }
func (*LoggedBy) MarshalOscal ¶
func (i *LoggedBy) MarshalOscal() *oscalTypes_1_1_3.LoggedBy
func (*LoggedBy) UnmarshalOscal ¶
func (i *LoggedBy) UnmarshalOscal(op oscalTypes_1_1_3.LoggedBy) *LoggedBy
type Matching ¶
type Matching oscalTypes_1_1_3.Matching
func (*Matching) MarshalOscal ¶
func (m *Matching) MarshalOscal() *oscalTypes_1_1_3.Matching
func (*Matching) UnmarshalOscal ¶
func (m *Matching) UnmarshalOscal(om oscalTypes_1_1_3.Matching) *Matching
type Merge ¶
type Merge struct { UUIDModel Combine datatypes.JSONType[*CombinationRule] `json:"combine"` AsIs bool `json:"as-is"` Flat datatypes.JSONType[*FlatWithoutGrouping] `json:"flat"` ProfileID uuid.UUID }
func (*Merge) MarshalOscal ¶
func (m *Merge) MarshalOscal() *oscalTypes_1_1_3.Merge
func (*Merge) UnmarshalOscal ¶
func (m *Merge) UnmarshalOscal(o oscalTypes_1_1_3.Merge) *Merge
type Metadata ¶
type Metadata struct { UUIDModel // Metadata is shared across many resources, and so it mapped using a polymorphic relationship ParentID *string ParentType *string Title string `json:"title"` Published *time.Time `json:"published"` LastModified *time.Time `json:"last-modified"` Version string `json:"version"` OscalVersion string `json:"oscal-version"` DocumentIDs datatypes.JSONSlice[DocumentID] `json:"document-ids"` // -> DocumentID Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` ResponsibleParties []ResponsibleParty `gorm:"many2many:metadata_responsible_parties;"` Revisions []Revision `json:"revisions"` Roles []Role `json:"roles" gorm:"many2many:metadata_roles"` Locations []Location `json:"locations" gorm:"many2many:metadata_locations"` Parties []Party `json:"parties" gorm:"many2many:metadata_parties"` Actions []Action `json:"actions"` Remarks string `json:"remarks"` }
func (*Metadata) MarshalOscal ¶
func (m *Metadata) MarshalOscal() *oscaltypes113.Metadata
MarshalOscal converts the Metadata back to an OSCAL Metadata
func (*Metadata) UnmarshalOscal ¶
func (m *Metadata) UnmarshalOscal(metadata oscaltypes113.Metadata) *Metadata
type MitigatingFactor ¶
type MitigatingFactor oscalTypes_1_1_3.MitigatingFactor
MitigatingFactor represents a mitigating factor in OSCAL.
func (*MitigatingFactor) MarshalOscal ¶
func (m *MitigatingFactor) MarshalOscal() *oscalTypes_1_1_3.MitigatingFactor
func (*MitigatingFactor) UnmarshalOscal ¶
func (m *MitigatingFactor) UnmarshalOscal(om oscalTypes_1_1_3.MitigatingFactor) *MitigatingFactor
type Modify ¶
type Modify struct { UUIDModel SetParameters []ParameterSetting `json:"set-parameters"` Alters []Alteration `json:"alters"` ProfileID uuid.UUID }
func (*Modify) MarshalOscal ¶
func (m *Modify) MarshalOscal() *oscalTypes_1_1_3.Modify
func (*Modify) UnmarshalOscal ¶
func (m *Modify) UnmarshalOscal(o oscalTypes_1_1_3.Modify) *Modify
type NetworkArchitecture ¶
type NetworkArchitecture struct { UUIDModel Description string `json:"description"` Remarks string `json:"remarks"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Diagrams []Diagram `json:"diagrams" gorm:"polymorphic:Parent;"` SystemCharacteristicsId uuid.UUID }
func (*NetworkArchitecture) MarshalOscal ¶
func (na *NetworkArchitecture) MarshalOscal() *oscalTypes_1_1_3.NetworkArchitecture
func (*NetworkArchitecture) UnmarshalOscal ¶
func (na *NetworkArchitecture) UnmarshalOscal(ona oscalTypes_1_1_3.NetworkArchitecture) *NetworkArchitecture
type Observation ¶
type Observation struct { UUIDModel // required Collected time.Time `json:"collected" gorm:"index"` // required, indexed Description string `json:"description"` // required Methods datatypes.JSONSlice[string] `json:"methods"` // required, stored as JSON array Expires *time.Time `json:"expires" gorm:"index"` // Indexed for date queries Links datatypes.JSONSlice[Link] `json:"links"` Origins datatypes.JSONSlice[Origin] `json:"origins"` Props datatypes.JSONSlice[Prop] `json:"props"` RelevantEvidence datatypes.JSONSlice[RelevantEvidence] `json:"relevant-evidence"` Remarks *string `json:"remarks"` Subjects datatypes.JSONSlice[SubjectReference] `json:"subjects"` Title *string `json:"title"` Types datatypes.JSONSlice[string] `json:"types"` // stored as JSON array }
Observation represents an observation in OSCAL.
func (*Observation) MarshalOscal ¶
func (o *Observation) MarshalOscal() *oscalTypes_1_1_3.Observation
func (*Observation) UnmarshalOscal ¶
func (o *Observation) UnmarshalOscal(oo oscalTypes_1_1_3.Observation) *Observation
type Origin ¶
type Origin oscalTypes_1_1_3.Origin
Origin represents an origin in OSCAL.
func (*Origin) MarshalOscal ¶
func (o *Origin) MarshalOscal() *oscalTypes_1_1_3.Origin
func (*Origin) UnmarshalOscal ¶
func (o *Origin) UnmarshalOscal(oo oscalTypes_1_1_3.Origin) *Origin
type Parameter ¶
type Parameter struct { ID string `json:"id"` Class *string `json:"class"` Label *string `json:"label"` Usage *string `json:"usage"` Remarks *string `json:"remarks"` Constraints datatypes.JSONSlice[ParameterConstraint] `json:"constraints"` Guidelines datatypes.JSONSlice[ParameterGuideline] `json:"guidelines"` Select *datatypes.JSONType[ParameterSelection] `json:"select"` Values datatypes.JSONSlice[string] `json:"values"` Props datatypes.JSONSlice[Prop] `json:"props,omitempty"` Links datatypes.JSONSlice[Link] `json:"links,omitempty"` }
func (*Parameter) MarshalOscal ¶
func (l *Parameter) MarshalOscal() *oscalTypes_1_1_3.Parameter
MarshalOscal converts the Parameter back to an OSCAL Parameter
func (*Parameter) UnmarshalOscal ¶
func (l *Parameter) UnmarshalOscal(data oscalTypes_1_1_3.Parameter) *Parameter
type ParameterConstraint ¶
type ParameterConstraint struct { Description string `json:"description"` Tests []ParameterConstraintTest `json:"tests"` }
func (*ParameterConstraint) MarshalOscal ¶
func (l *ParameterConstraint) MarshalOscal() *oscalTypes_1_1_3.ParameterConstraint
func (*ParameterConstraint) UnmarshalOscal ¶
func (l *ParameterConstraint) UnmarshalOscal(data oscalTypes_1_1_3.ParameterConstraint) *ParameterConstraint
type ParameterConstraintTest ¶
type ParameterConstraintTest struct { Expression string `json:"expression"` Remarks string `json:"remarks"` }
func (*ParameterConstraintTest) MarshalOscal ¶
func (l *ParameterConstraintTest) MarshalOscal() *oscalTypes_1_1_3.ConstraintTest
func (*ParameterConstraintTest) UnmarshalOscal ¶
func (l *ParameterConstraintTest) UnmarshalOscal(data oscalTypes_1_1_3.ConstraintTest) *ParameterConstraintTest
type ParameterGuideline ¶
type ParameterGuideline struct {
Prose string `json:"prose"`
}
func (*ParameterGuideline) MarshalOscal ¶
func (l *ParameterGuideline) MarshalOscal() *oscalTypes_1_1_3.ParameterGuideline
func (*ParameterGuideline) UnmarshalOscal ¶
func (l *ParameterGuideline) UnmarshalOscal(data oscalTypes_1_1_3.ParameterGuideline) *ParameterGuideline
type ParameterSelection ¶
type ParameterSelection struct { HowMany ParameterSelectionCount `json:"how-many"` Choice []string `json:"choice"` }
func (*ParameterSelection) MarshalOscal ¶
func (l *ParameterSelection) MarshalOscal() *oscalTypes_1_1_3.ParameterSelection
MarshalOscal converts the ParameterSelection back to an OSCAL ParameterSelection
func (*ParameterSelection) UnmarshalOscal ¶
func (l *ParameterSelection) UnmarshalOscal(data oscalTypes_1_1_3.ParameterSelection) *ParameterSelection
type ParameterSelectionCount ¶
type ParameterSelectionCount string
const ( ParameterSelectionCountOne ParameterSelectionCount = "one" ParameterSelectionCountOneOrMore ParameterSelectionCount = "one-or-more" )
type ParameterSetting ¶
type ParameterSetting struct { UUIDModel ParamID string `json:"param-id"` // required Class string `json:"class"` DependsOn string `json:"depends-on"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Label string `json:"label"` Constraints datatypes.JSONSlice[ParameterConstraint] `json:"constraints"` Guidelines datatypes.JSONSlice[ParameterGuideline] `json:"guidelines"` Values datatypes.JSONSlice[string] `json:"values"` Select *datatypes.JSONType[ParameterSelection] `json:"select"` ModifyID uuid.UUID }
func (*ParameterSetting) MarshalOscal ¶
func (p *ParameterSetting) MarshalOscal() oscalTypes_1_1_3.ParameterSetting
func (*ParameterSetting) UnmarshalOscal ¶
func (p *ParameterSetting) UnmarshalOscal(o oscalTypes_1_1_3.ParameterSetting) *ParameterSetting
type Part ¶
type Part struct { ID string `json:"id"` Name string `json:"name"` NS string `json:"ns"` Class string `json:"class"` Title string `json:"title"` Prose string `json:"prose"` Props datatypes.JSONSlice[Prop] `json:"props,omitempty"` Links datatypes.JSONSlice[Link] `json:"links,omitempty"` PartID string `json:"part_id"` Parts []Part `json:"parts"` // -> Part }
func (*Part) MarshalOscal ¶
func (p *Part) MarshalOscal() *oscalTypes_1_1_3.Part
func (*Part) UnmarshalOscal ¶
func (p *Part) UnmarshalOscal(data oscalTypes_1_1_3.Part) *Part
type Party ¶
type Party struct { UUIDModel Type PartyType `json:"type"` Name *string `json:"name"` ShortName *string `json:"short-name"` ExternalIds datatypes.JSONSlice[PartyExternalID] `json:"external-ids"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` EmailAddresses datatypes.JSONSlice[string] `json:"email-addresses"` TelephoneNumbers datatypes.JSONSlice[TelephoneNumber] `json:"telephone-numbers"` Addresses datatypes.JSONSlice[Address] `json:"addresses"` Locations []Location `json:"locations" gorm:"many2many:party_locations;"` MemberOfOrganizations []Party `json:"member-of-organizations" gorm:"many2many:party_member_of_organisations;"` // -> Party Remarks *string `json:"remarks"` }
func (*Party) MarshalOscal ¶
func (p *Party) MarshalOscal() *oscaltypes113.Party
MarshalOscal converts the Party back to an OSCAL Party
func (*Party) UnmarshalOscal ¶
func (p *Party) UnmarshalOscal(oparty oscaltypes113.Party) *Party
type PartyExternalID ¶
type PartyExternalID struct { ID string `json:"id"` Scheme PartyExternalIDScheme `json:"scheme"` }
func (*PartyExternalID) MarshalOscal ¶
func (p *PartyExternalID) MarshalOscal() *oscaltypes113.PartyExternalIdentifier
MarshalOscal converts the PartyExternalID back to an OSCAL PartyExternalIdentifier
func (*PartyExternalID) UnmarshalOscal ¶
func (p *PartyExternalID) UnmarshalOscal(oid oscaltypes113.PartyExternalIdentifier) *PartyExternalID
type PartyExternalIDScheme ¶
type PartyExternalIDScheme string
const PartyExternalIDSchemeOrchid PartyExternalIDScheme = "http://orcid.org/"
type PlanOfActionAndMilestones ¶
type PlanOfActionAndMilestones struct { UUIDModel Metadata Metadata `json:"metadata" gorm:"polymorphic:Parent;"` BackMatter BackMatter `json:"back-matter" gorm:"polymorphic:Parent;"` // Simple fields stored as JSON ImportSsp datatypes.JSONType[ImportSsp] `json:"import-ssp"` SystemId datatypes.JSONType[SystemId] `json:"system-id"` LocalDefinitions datatypes.JSONType[PlanOfActionAndMilestonesLocalDefinitions] `json:"local-definitions"` // Complex entities as proper tables with polymorphic relationships PoamItems []PoamItem `gorm:"foreignKey:PlanOfActionAndMilestonesID"` Observations []Observation `gorm:"many2many:poam_observations;"` Risks []Risk `gorm:"many2many:poam_risks;"` Findings []Finding `gorm:"many2many:poam_findings;"` }
PlanOfActionAndMilestones represents a plan of action and milestones in OSCAL It includes metadata, import-ssp, system-id, local-definitions, observations, risks, findings, poam-items, and back-matter.
func (*PlanOfActionAndMilestones) MarshalOscal ¶
func (p *PlanOfActionAndMilestones) MarshalOscal() *oscalTypes_1_1_3.PlanOfActionAndMilestones
MarshalOscal converts the relational PlanOfActionAndMilestones back into an OSCAL PlanOfActionAndMilestones structure.
func (*PlanOfActionAndMilestones) UnmarshalOscal ¶
func (p *PlanOfActionAndMilestones) UnmarshalOscal(opam oscalTypes_1_1_3.PlanOfActionAndMilestones) *PlanOfActionAndMilestones
UnmarshalOscal converts an OSCAL PlanOfActionAndMilestones into a relational PlanOfActionAndMilestones. It includes metadata, import-ssp, system-id, local-definitions, observations, risks, findings, poam-items, and back-matter.
type PlanOfActionAndMilestonesLocalDefinitions ¶
type PlanOfActionAndMilestonesLocalDefinitions struct { AssessmentAssets datatypes.JSONType[oscalTypes_1_1_3.AssessmentAssets] `json:"assessment-assets"` Components datatypes.JSONSlice[oscalTypes_1_1_3.SystemComponent] `json:"components" gorm:"type:json"` InventoryItems datatypes.JSONSlice[oscalTypes_1_1_3.InventoryItem] `json:"inventory-items" gorm:"type:json"` Remarks string `json:"remarks"` }
PlanOfActionAndMilestonesLocalDefinitions represents local definitions in POAM.
func (*PlanOfActionAndMilestonesLocalDefinitions) MarshalOscal ¶
func (p *PlanOfActionAndMilestonesLocalDefinitions) MarshalOscal() *oscalTypes_1_1_3.PlanOfActionAndMilestonesLocalDefinitions
func (*PlanOfActionAndMilestonesLocalDefinitions) UnmarshalOscal ¶
type PoamItem ¶
type PoamItem struct { PlanOfActionAndMilestonesID uuid.UUID `gorm:"primary_key"` UUID string `json:"uuid" gorm:"primary_key"` Title string `json:"title"` // required Description string `json:"description"` // required Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Origins datatypes.JSONSlice[PoamItemOrigin] `json:"origins"` // Database relationships for efficient querying RelatedFindings []Finding `gorm:"many2many:poam_item_related_findings;" json:"-"` RelatedObservations []Observation `gorm:"many2many:poam_item_related_observations;" json:"-"` RelatedRisks []Risk `gorm:"many2many:poam_item_related_risks;" json:"-"` // OSCAL compatibility - JSON fields for import/export RelatedFindingUUIDs datatypes.JSONSlice[RelatedFinding] `json:"related-findings"` RelatedObservationUUIDs datatypes.JSONSlice[RelatedObservation] `json:"related-observations"` RelatedRiskUUIDs datatypes.JSONSlice[AssociatedRisk] `json:"related-risks"` Remarks *string `json:"remarks"` }
PoamItem represents a POAM item in OSCAL.
func (*PoamItem) MarshalOscal ¶
func (p *PoamItem) MarshalOscal() *oscalTypes_1_1_3.PoamItem
func (*PoamItem) UnmarshalOscal ¶
type PoamItemOrigin ¶
type PoamItemOrigin oscalTypes_1_1_3.PoamItemOrigin
PoamItemOrigin represents a POAM item origin in OSCAL.
func (*PoamItemOrigin) MarshalOscal ¶
func (p *PoamItemOrigin) MarshalOscal() *oscalTypes_1_1_3.PoamItemOrigin
func (*PoamItemOrigin) UnmarshalOscal ¶
func (p *PoamItemOrigin) UnmarshalOscal(op oscalTypes_1_1_3.PoamItemOrigin) *PoamItemOrigin
type Profile ¶
type Profile struct { UUIDModel Metadata Metadata `json:"metadata" gorm:"Polymorphic:Parent"` BackMatter *BackMatter `json:"back-matter" gorm:"Polymorphic:Parent"` Imports []Import `json:"imports"` Merge Merge `json:"merge"` Modify *Modify `json:"modify"` }
func (*Profile) MarshalOscal ¶
func (p *Profile) MarshalOscal() *oscalTypes_1_1_3.Profile
MarshalOscal converts the Profile struct into an oscalTypes_1_1_3.Profile.
func (*Profile) UnmarshalOscal ¶
func (p *Profile) UnmarshalOscal(op oscalTypes_1_1_3.Profile) *Profile
UnmarshalOscal take type of oscalTypes_1_1_3.Profile from go-oscal and converts it into a relational model within the struct while returning a pointer to itself
type Prop ¶
type Prop oscaltypes113.Property
func (*Prop) UnmarshalOscal ¶
func (p *Prop) UnmarshalOscal(data oscaltypes113.Property) *Prop
type Protocol ¶
type Protocol oscaltypes113.Protocol
func (*Protocol) MarshalOscal ¶
func (p *Protocol) MarshalOscal() *oscaltypes113.Protocol
func (*Protocol) UnmarshalOscal ¶
func (p *Protocol) UnmarshalOscal(op oscaltypes113.Protocol) *Protocol
type ProvidedControlImplementation ¶
type ProvidedControlImplementation struct { UUIDModel Description string `json:"description"` Links datatypes.JSONSlice[Link] `json:"links"` Props datatypes.JSONSlice[Prop] `json:"props"` Remarks string `json:"remarks"` ResponsibleRoles []ResponsibleRole `json:"responsible-roles" gorm:"polymorphic:Parent;"` ExportId uuid.UUID }
func (*ProvidedControlImplementation) MarshalOscal ¶
func (pci *ProvidedControlImplementation) MarshalOscal() *oscalTypes_1_1_3.ProvidedControlImplementation
func (*ProvidedControlImplementation) UnmarshalOscal ¶
func (pci *ProvidedControlImplementation) UnmarshalOscal(opci oscalTypes_1_1_3.ProvidedControlImplementation) *ProvidedControlImplementation
type RelatedFinding ¶
type RelatedFinding oscalTypes_1_1_3.RelatedFinding
RelatedFinding represents a related finding in OSCAL.
func (*RelatedFinding) MarshalOscal ¶
func (r *RelatedFinding) MarshalOscal() *oscalTypes_1_1_3.RelatedFinding
func (*RelatedFinding) UnmarshalOscal ¶
func (r *RelatedFinding) UnmarshalOscal(orf oscalTypes_1_1_3.RelatedFinding) *RelatedFinding
type RelatedObservation ¶
type RelatedObservation oscalTypes_1_1_3.RelatedObservation
RelatedObservation represents a related observation in OSCAL.
func (*RelatedObservation) MarshalOscal ¶
func (r *RelatedObservation) MarshalOscal() *oscalTypes_1_1_3.RelatedObservation
func (*RelatedObservation) UnmarshalOscal ¶
func (r *RelatedObservation) UnmarshalOscal(oro oscalTypes_1_1_3.RelatedObservation) *RelatedObservation
type RelatedTask ¶
type RelatedTask struct { UUIDModel Task Task TaskID uuid.UUID Remarks *string Props datatypes.JSONSlice[Prop] Links datatypes.JSONSlice[Link] ResponsibleParties []ResponsibleParty `gorm:"many2many:related_task_responsible_parties;"` Subjects []AssessmentSubject `gorm:"many2many:related_task_subjects;"` IdentifiedSubject *IdentifiedSubject ParentType string ParentID uuid.UUID }
func (*RelatedTask) MarshalOscal ¶
func (i *RelatedTask) MarshalOscal() *oscalTypes_1_1_3.RelatedTask
func (*RelatedTask) UnmarshalOscal ¶
func (i *RelatedTask) UnmarshalOscal(op oscalTypes_1_1_3.RelatedTask) *RelatedTask
type RelevantEvidence ¶
type RelevantEvidence oscalTypes_1_1_3.RelevantEvidence
RelevantEvidence represents relevant evidence in OSCAL.
func (*RelevantEvidence) MarshalOscal ¶
func (r *RelevantEvidence) MarshalOscal() *oscalTypes_1_1_3.RelevantEvidence
func (*RelevantEvidence) UnmarshalOscal ¶
func (r *RelevantEvidence) UnmarshalOscal(ore oscalTypes_1_1_3.RelevantEvidence) *RelevantEvidence
type Removal ¶
type Removal oscalTypes_1_1_3.Removal
func (*Removal) MarshalOscal ¶
func (r *Removal) MarshalOscal() oscalTypes_1_1_3.Removal
func (*Removal) UnmarshalOscal ¶
func (r *Removal) UnmarshalOscal(o oscalTypes_1_1_3.Removal) *Removal
type ResourceLink ¶
type ResourceLink struct { Href string `json:"href"` // required MediaType string `json:"media-type"` Hashes []Hash `json:"hashes"` }
func (*ResourceLink) MarshalOscal ¶
func (r *ResourceLink) MarshalOscal() *oscaltypes113.ResourceLink
MarshalOscal converts the ResourceLink back to an OSCAL ResourceLink
func (*ResourceLink) UnmarshalOscal ¶
func (r *ResourceLink) UnmarshalOscal(orlink oscaltypes113.ResourceLink)
type Response ¶
type Response oscalTypes_1_1_3.Response
Response represents a response in OSCAL.
func (*Response) MarshalOscal ¶
func (r *Response) MarshalOscal() *oscalTypes_1_1_3.Response
func (*Response) UnmarshalOscal ¶
func (r *Response) UnmarshalOscal(or oscalTypes_1_1_3.Response) *Response
type ResponsibleParty ¶
type ResponsibleParty struct { UUIDModel Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Remarks string `json:"remarks"` RoleID string `json:"role-id"` // required Role Role Parties []ResponsiblePartyParties // Polymorphic relationship - allows ResponsibleParty to belong to different parent types ParentID *uuid.UUID ParentType string }
func (*ResponsibleParty) MarshalOscal ¶
func (r *ResponsibleParty) MarshalOscal() *oscaltypes113.ResponsibleParty
func (*ResponsibleParty) UnmarshalOscal ¶
func (r *ResponsibleParty) UnmarshalOscal(or oscaltypes113.ResponsibleParty) *ResponsibleParty
type ResponsiblePartyParties ¶
type ResponsibleRole ¶
type ResponsibleRole struct { UUIDModel RoleID string `json:"role-id"` // required Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Remarks string `json:"remarks"` Parties []Party `gorm:"many2many:responsible_role_parties;"` Role Role ParentID *uuid.UUID ParentType string }
func (*ResponsibleRole) MarshalOscal ¶
func (rr *ResponsibleRole) MarshalOscal() *oscaltypes113.ResponsibleRole
func (*ResponsibleRole) UnmarshalOscal ¶
func (rr *ResponsibleRole) UnmarshalOscal(or oscaltypes113.ResponsibleRole) *ResponsibleRole
type Result ¶
type Result struct { UUIDModel AssessmentResultID uuid.UUID Title string // required Description string // required Remarks *string Start *time.Time End *time.Time Props datatypes.JSONSlice[Prop] Links datatypes.JSONSlice[Link] LocalDefinitionsID uuid.UUID LocalDefinitions LocalDefinitions ReviewedControlsID uuid.UUID ReviewedControls ReviewedControls Attestations []Attestation AssessmentLogID *uuid.UUID AssessmentLog *AssessmentLog // Shared entities now using polymorphic associations Observations []Observation `gorm:"many2many:result_observations;"` Findings []Finding `gorm:"many2many:result_findings;"` Risks []Risk `gorm:"many2many:result_risks;"` }
func (*Result) MarshalOscal ¶
func (i *Result) MarshalOscal() *oscalTypes_1_1_3.Result
func (*Result) UnmarshalOscal ¶
func (i *Result) UnmarshalOscal(op oscalTypes_1_1_3.Result) *Result
type ReviewedControls ¶
type ReviewedControls struct { UUIDModel Description *string Remarks *string Props datatypes.JSONSlice[Prop] Links datatypes.JSONSlice[Link] ControlSelections []ControlSelection // required ControlObjectiveSelections []ControlObjectiveSelection }
func (*ReviewedControls) MarshalOscal ¶
func (i *ReviewedControls) MarshalOscal() *oscalTypes_1_1_3.ReviewedControls
func (*ReviewedControls) UnmarshalOscal ¶
func (i *ReviewedControls) UnmarshalOscal(op oscalTypes_1_1_3.ReviewedControls) *ReviewedControls
type Revision ¶
type Revision struct { // Only version is required UUIDModel // Revision only exist on a metadata object. We'll link them straight there with a BelongsTo relationship MetadataID uuid.UUID `json:"metadata-id"` Title *string `json:"title"` Published *time.Time `json:"published"` LastModified *time.Time `json:"last-modified"` Version string `json:"version"` // required OscalVersion *string `json:"oscal-version"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Remarks *string `json:"remarks"` }
func (*Revision) MarshalOscal ¶
func (r *Revision) MarshalOscal() *oscaltypes113.RevisionHistoryEntry
MarshalOscal converts the Revision back to an OSCAL RevisionHistoryEntry
func (*Revision) UnmarshalOscal ¶
func (r *Revision) UnmarshalOscal(entry oscaltypes113.RevisionHistoryEntry) *Revision
type Risk ¶
type Risk struct { UUIDModel // required Title string `json:"title"` // required Description string `json:"description"` // required Statement string `json:"statement"` // required Status string `json:"status" gorm:"index"` // required, indexed Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Origins datatypes.JSONSlice[Origin] `json:"origins"` ThreatIds datatypes.JSONSlice[ThreatId] `json:"threat-ids"` Characterizations datatypes.JSONSlice[Characterization] `json:"characterizations"` MitigatingFactors datatypes.JSONSlice[MitigatingFactor] `json:"mitigating-factors"` Deadline *time.Time `json:"deadline" gorm:"index"` // Indexed for date queries Remediations datatypes.JSONSlice[Response] `json:"remediations"` RiskLog datatypes.JSONType[oscalTypes_1_1_3.RiskLog] `json:"risk-log"` RelatedObservations datatypes.JSONSlice[RelatedObservation] `json:"related-observations"` }
Risk represents a risk in OSCAL. It includes uuid, title, description, statement, props, links, status, origins, threat-ids, characterizations, mitigating-factors, deadline, remediations, risk-log, and related-observations.
func (*Risk) MarshalOscal ¶
func (r *Risk) MarshalOscal() *oscalTypes_1_1_3.Risk
MarshalOscal converts the relational Risk back into an OSCAL Risk structure.
func (*Risk) UnmarshalOscal ¶
func (r *Risk) UnmarshalOscal(or oscalTypes_1_1_3.Risk) *Risk
UnmarshalOscal converts an OSCAL Risk into a relational Risk.
type RiskLog ¶
type RiskLog oscalTypes_1_1_3.RiskLog
RiskLog represents a risk log in OSCAL.
func (*RiskLog) MarshalOscal ¶
func (r *RiskLog) MarshalOscal() *oscalTypes_1_1_3.RiskLog
func (*RiskLog) UnmarshalOscal ¶
func (r *RiskLog) UnmarshalOscal(or oscalTypes_1_1_3.RiskLog) *RiskLog
type Role ¶
type Role struct { ID string `json:"id" gorm:"primary_key;"` Title string `json:"title"` ShortName *string `json:"short-name"` Description *string `json:"description"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Remarks *string `json:"remarks"` }
func (*Role) MarshalOscal ¶
func (r *Role) MarshalOscal() *oscaltypes113.Role
MarshalOscal converts the Role back to an OSCAL Role
func (*Role) UnmarshalOscal ¶
func (r *Role) UnmarshalOscal(entry oscaltypes113.Role) *Role
type SatisfiedControlImplementationResponsibility ¶
type SatisfiedControlImplementationResponsibility struct { UUIDModel ResponsibilityUuid uuid.UUID `json:"responsibility-uuid"` Description string `json:"description"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` ResponsibleRoles []ResponsibleRole `json:"responsible-roles" gorm:"polymorphic:Parent"` Remarks string `json:"remarks"` ByComponentId uuid.UUID `json:"by-component-id"` }
func (*SatisfiedControlImplementationResponsibility) MarshalOscal ¶
func (s *SatisfiedControlImplementationResponsibility) MarshalOscal() *oscalTypes_1_1_3.SatisfiedControlImplementationResponsibility
func (*SatisfiedControlImplementationResponsibility) UnmarshalOscal ¶
type SecurityImpactLevel ¶
type SecurityImpactLevel oscalTypes_1_1_3.SecurityImpactLevel
func (*SecurityImpactLevel) MarshalOscal ¶
func (s *SecurityImpactLevel) MarshalOscal() *oscalTypes_1_1_3.SecurityImpactLevel
func (*SecurityImpactLevel) UnmarshalOscal ¶
func (s *SecurityImpactLevel) UnmarshalOscal(osi oscalTypes_1_1_3.SecurityImpactLevel) *SecurityImpactLevel
type SelectControlById ¶
type SelectControlById struct { UUIDModel WithChildControls string `json:"with-child-controls"` WithIds datatypes.JSONSlice[string] `json:"with-ids"` Matching datatypes.JSONSlice[Matching] `json:"matching"` ParentID uuid.UUID ParentType string }
func (*SelectControlById) MarshalOscal ¶
func (s *SelectControlById) MarshalOscal() oscalTypes_1_1_3.SelectControlById
func (*SelectControlById) UnmarshalOscal ¶
func (s *SelectControlById) UnmarshalOscal(o oscalTypes_1_1_3.SelectControlById) *SelectControlById
type SelectObjectiveById ¶
type SelectObjectiveById struct { UUIDModel Objective string // required ParentID uuid.UUID ParentType string }
func (*SelectObjectiveById) MarshalOscal ¶
func (i *SelectObjectiveById) MarshalOscal() *oscalTypes_1_1_3.SelectObjectiveById
func (*SelectObjectiveById) UnmarshalOscal ¶
func (i *SelectObjectiveById) UnmarshalOscal(op oscalTypes_1_1_3.SelectObjectiveById) *SelectObjectiveById
type SelectSubjectById ¶
type SelectSubjectById struct { UUIDModel AssessmentSubjectID uuid.UUID // SubjectUUID technically represents a UUID of a component, party, location, user, or inventory item. // It will likely be updated once we can map it correctly SubjectUUID uuid.UUID Remarks *string Props datatypes.JSONSlice[Prop] Links datatypes.JSONSlice[Link] }
func (*SelectSubjectById) MarshalOscal ¶
func (i *SelectSubjectById) MarshalOscal() *oscalTypes_1_1_3.SelectSubjectById
func (*SelectSubjectById) UnmarshalOscal ¶
func (i *SelectSubjectById) UnmarshalOscal(op oscalTypes_1_1_3.SelectSubjectById) *SelectSubjectById
type SetParameter ¶
type SetParameter oscaltypes113.SetParameter
func (*SetParameter) MarshalOscal ¶
func (sp *SetParameter) MarshalOscal() *oscaltypes113.SetParameter
func (*SetParameter) UnmarshalOscal ¶
func (sp *SetParameter) UnmarshalOscal(osp oscaltypes113.SetParameter) *SetParameter
type Statement ¶
type Statement struct { UUIDModel StatementId string `json:"statement-id"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` ResponsibleRoles []ResponsibleRole `json:"responsible-roles" gorm:"polymorphic:Parent"` ByComponents []ByComponent `json:"by-components,omitempty" gorm:"polymorphic:Parent"` Remarks string `json:"remarks"` ImplementedRequirementId uuid.UUID }
func (*Statement) MarshalOscal ¶
func (s *Statement) MarshalOscal() *oscalTypes_1_1_3.Statement
func (*Statement) UnmarshalOscal ¶
func (s *Statement) UnmarshalOscal(os oscalTypes_1_1_3.Statement) *Statement
type Status ¶
type Status oscalTypes_1_1_3.Status
func (*Status) MarshalOscal ¶
func (s *Status) MarshalOscal() *oscalTypes_1_1_3.Status
func (*Status) UnmarshalOscal ¶
func (s *Status) UnmarshalOscal(osi oscalTypes_1_1_3.Status) *Status
type Step ¶
type Step struct { UUIDModel ActivityID uuid.UUID Title *string `json:"title,omitempty"` Description string `json:"description,omitempty"` // required Remarks *string `json:"remarks,omitempty"` Props datatypes.JSONSlice[Prop] `json:"props,omitempty"` Links datatypes.JSONSlice[Link] `json:"links,omitempty"` ResponsibleRoles []ResponsibleRole `gorm:"polymorphic:Parent;" json:"responsible-roles,omitempty"` ReviewedControlsID *uuid.UUID ReviewedControls *ReviewedControls `json:"reviewed-controls,omitempty"` }
func (*Step) MarshalOscal ¶
func (i *Step) MarshalOscal() *oscalTypes_1_1_3.Step
func (*Step) UnmarshalOscal ¶
func (i *Step) UnmarshalOscal(op oscalTypes_1_1_3.Step) *Step
type SubjectReference ¶
type SubjectReference oscalTypes_1_1_3.SubjectReference
SubjectReference represents a subject reference in OSCAL.
func (*SubjectReference) MarshalOscal ¶
func (s *SubjectReference) MarshalOscal() *oscalTypes_1_1_3.SubjectReference
func (*SubjectReference) UnmarshalOscal ¶
func (s *SubjectReference) UnmarshalOscal(os oscalTypes_1_1_3.SubjectReference) *SubjectReference
type SystemCharacteristics ¶
type SystemCharacteristics struct { UUIDModel SystemName string `json:"system-name"` SystemNameShort string `json:"system-name-short"` Description string `json:"description"` DateAuthorized *time.Time `json:"date-authorized"` SecuritySensitivityLevel string `json:"security-sensitivity-level"` Remarks string `json:"remarks"` SystemIds datatypes.JSONSlice[SystemId] `json:"system-ids"` Status datatypes.JSONType[Status] `json:"status"` SystemInformation datatypes.JSONType[SystemInformation] `json:"system-information"` AuthorizationBoundary *AuthorizationBoundary `json:"authorization-boundary"` NetworkArchitecture *NetworkArchitecture DataFlow *DataFlow SecurityImpactLevel *datatypes.JSONType[SecurityImpactLevel] `json:"security-impact-level"` Links datatypes.JSONSlice[Link] `json:"links"` Props datatypes.JSONSlice[Prop] `json:"props"` ResponsibleParties datatypes.JSONSlice[ResponsibleParty] `json:"responsible-parties"` SystemSecurityPlanId uuid.UUID }
func (*SystemCharacteristics) MarshalOscal ¶
func (sc *SystemCharacteristics) MarshalOscal() *oscalTypes_1_1_3.SystemCharacteristics
MarshalOscal converts the SystemCharacteristics back to an OSCAL SystemCharacteristics
func (*SystemCharacteristics) UnmarshalOscal ¶
func (sc *SystemCharacteristics) UnmarshalOscal(osc oscalTypes_1_1_3.SystemCharacteristics) *SystemCharacteristics
type SystemComponent ¶
type SystemComponent struct { UUIDModel Type string `json:"type"` Title string `json:"title"` Description string `json:"description"` Purpose string `json:"purpose"` Status datatypes.JSONType[SystemComponentStatus] `json:"status"` ResponsibleRoles []ResponsibleRole `json:"responsible-roles" gorm:"polymorphic:Parent;"` Protocols datatypes.JSONSlice[Protocol] `json:"protocols"` Remarks string `json:"remarks"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` SystemImplementationId uuid.UUID Evidence []Evidence `gorm:"many2many:evidence_components"` }
func (*SystemComponent) MarshalOscal ¶
func (sc *SystemComponent) MarshalOscal() *oscalTypes_1_1_3.SystemComponent
MarshalOscal converts the SystemComponent back to an OSCAL SystemComponent
func (*SystemComponent) UnmarshalOscal ¶
func (sc *SystemComponent) UnmarshalOscal(osc oscalTypes_1_1_3.SystemComponent) *SystemComponent
type SystemComponentStatus ¶
type SystemComponentStatus oscalTypes_1_1_3.SystemComponentStatus
func (*SystemComponentStatus) MarshalOscal ¶
func (s *SystemComponentStatus) MarshalOscal() *oscalTypes_1_1_3.SystemComponentStatus
func (*SystemComponentStatus) UnmarshalOscal ¶
func (s *SystemComponentStatus) UnmarshalOscal(os oscalTypes_1_1_3.SystemComponentStatus) *SystemComponentStatus
type SystemId ¶
type SystemId oscalTypes_1_1_3.SystemId
func (*SystemId) MarshalOscal ¶
func (si *SystemId) MarshalOscal() *oscalTypes_1_1_3.SystemId
func (*SystemId) UnmarshalOscal ¶
func (si *SystemId) UnmarshalOscal(osi oscalTypes_1_1_3.SystemId) *SystemId
type SystemImplementation ¶
type SystemImplementation struct { UUIDModel Props datatypes.JSONSlice[Prop] `json:"props,omitempty"` Links datatypes.JSONSlice[Link] `json:"links,omitempty"` Remarks string `json:"remarks"` Users []SystemUser `json:"users"` LeveragedAuthorizations []LeveragedAuthorization `json:"leveraged-authorizations"` Components []SystemComponent `json:"components"` InventoryItems []InventoryItem `json:"inventory-items"` SystemSecurityPlanId uuid.UUID }
func (*SystemImplementation) MarshalOscal ¶
func (si *SystemImplementation) MarshalOscal() *oscalTypes_1_1_3.SystemImplementation
func (*SystemImplementation) UnmarshalOscal ¶
func (si *SystemImplementation) UnmarshalOscal(osi oscalTypes_1_1_3.SystemImplementation) *SystemImplementation
type SystemInformation ¶
type SystemInformation struct { UUIDModel Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` InformationTypes []InformationType `json:"information-types"` SystemCharacteristicsId uuid.UUID }
func (*SystemInformation) MarshalOscal ¶
func (si *SystemInformation) MarshalOscal() *oscalTypes_1_1_3.SystemInformation
func (*SystemInformation) UnmarshalOscal ¶
func (si *SystemInformation) UnmarshalOscal(osi oscalTypes_1_1_3.SystemInformation) *SystemInformation
type SystemSecurityPlan ¶
type SystemSecurityPlan struct { UUIDModel Metadata Metadata `json:"metadata" gorm:"polymorphic:Parent;"` BackMatter *BackMatter `json:"back-matter" gorm:"polymorphic:Parent;"` ImportProfile datatypes.JSONType[ImportProfile] `json:"import-profile"` SystemCharacteristics SystemCharacteristics `json:"system-characteristics"` SystemImplementation SystemImplementation `json:"system-implementation"` ControlImplementation ControlImplementation `json:"control-implementation"` ProfileID *uuid.UUID Profile *Profile }
func (*SystemSecurityPlan) MarshalOscal ¶
func (s *SystemSecurityPlan) MarshalOscal() *oscalTypes_1_1_3.SystemSecurityPlan
func (*SystemSecurityPlan) UnmarshalOscal ¶
func (s *SystemSecurityPlan) UnmarshalOscal(os oscalTypes_1_1_3.SystemSecurityPlan) *SystemSecurityPlan
type SystemUser ¶
type SystemUser struct { UUIDModel Title string `json:"title"` ShortName string `json:"short-name"` Description string `json:"description"` Remarks string `json:"remarks"` Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` RoleIDs datatypes.JSONSlice[string] `json:"role-ids"` AuthorizedPrivileges []AuthorizedPrivilege `json:"authorized-privileges"` SystemImplementationId uuid.UUID }
func (*SystemUser) MarshalOscal ¶
func (u *SystemUser) MarshalOscal() *oscalTypes_1_1_3.SystemUser
func (*SystemUser) UnmarshalOscal ¶
func (u *SystemUser) UnmarshalOscal(ou oscalTypes_1_1_3.SystemUser) *SystemUser
type Task ¶
type Task struct { UUIDModel Type string // required: [ milestone | action ] Title string // required Description *string Remarks *string Props datatypes.JSONSlice[Prop] `json:"props"` Links datatypes.JSONSlice[Link] `json:"links"` Dependencies []TaskDependency // Different struct, as each dependency can have additional remarks Tasks []Task `gorm:"many2many:task_tasks"` // Sub tasks AssociatedActivities []AssociatedActivity Subjects []AssessmentSubject `gorm:"many2many:task_subjects"` ResponsibleRole []ResponsibleRole `gorm:"polymorphic:Parent;"` Timing *datatypes.JSONType[oscalTypes_1_1_3.EventTiming] ParentID *uuid.UUID ParentType string }
Task can fall under an AssessmentPlan, AssessmentResult, or Response
func (*Task) MarshalOscal ¶
func (i *Task) MarshalOscal() *oscalTypes_1_1_3.Task
func (*Task) UnmarshalOscal ¶
func (i *Task) UnmarshalOscal(op oscalTypes_1_1_3.Task) *Task
type TaskDependency ¶
func (*TaskDependency) MarshalOscal ¶
func (i *TaskDependency) MarshalOscal() *oscalTypes_1_1_3.TaskDependency
func (*TaskDependency) UnmarshalOscal ¶
func (i *TaskDependency) UnmarshalOscal(op oscalTypes_1_1_3.TaskDependency) *TaskDependency
type TelephoneNumber ¶
type TelephoneNumber struct { Type *TelephoneNumberType `json:"type"` Number string `json:"number"` }
func (*TelephoneNumber) MarshalOscal ¶
func (t *TelephoneNumber) MarshalOscal() *oscaltypes113.TelephoneNumber
MarshalOscal converts the TelephoneNumber back to an OSCAL TelephoneNumber
func (*TelephoneNumber) UnmarshalOscal ¶
func (t *TelephoneNumber) UnmarshalOscal(number oscaltypes113.TelephoneNumber) *TelephoneNumber
type TelephoneNumberType ¶
type TelephoneNumberType string
const ( TelephoneNumberTypeHome TelephoneNumberType = "home" TelephoneNumberTypeOffice TelephoneNumberType = "office" TelephoneNumberTypeMobile TelephoneNumberType = "mobile" )
type TermsAndConditions ¶
type TermsAndConditions struct { UUIDModel AssessmentPlanID uuid.UUID Parts []AssessmentPart `gorm:"many2many:terms_and_conditions_parts"` }
func (*TermsAndConditions) MarshalOscal ¶
func (i *TermsAndConditions) MarshalOscal() *oscalTypes_1_1_3.AssessmentPlanTermsAndConditions
func (*TermsAndConditions) UnmarshalOscal ¶
func (i *TermsAndConditions) UnmarshalOscal(op oscalTypes_1_1_3.AssessmentPlanTermsAndConditions) *TermsAndConditions
type ThreatId ¶
type ThreatId oscalTypes_1_1_3.ThreatId
ThreatId represents a threat ID in OSCAL.
func (*ThreatId) MarshalOscal ¶
func (t *ThreatId) MarshalOscal() *oscalTypes_1_1_3.ThreatId
func (*ThreatId) UnmarshalOscal ¶
func (t *ThreatId) UnmarshalOscal(ot oscalTypes_1_1_3.ThreatId) *ThreatId
type User ¶
type User struct { UUIDModel CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` DeletedAt gorm.DeletedAt `json:"deletedAt" gorm:"index"` // Soft delete Email string `json:"email" gorm:"uniqueIndex;not null"` PasswordHash string `gorm:"not null" json:"-"` FirstName string `json:"firstName"` LastName string `json:"lastName"` LastLogin *time.Time `json:"lastLogin,omitempty"` IsActive bool `json:"isActive" gorm:"default:true"` IsLocked bool `json:"isLocked" gorm:"default:false"` FailedLogins int `json:"failedLogins" gorm:"default:0"` ResetToken *string `json:"-"` ResetTokenExpiry *time.Time `json:"-"` }
func (*User) CheckPassword ¶
func (*User) SetPassword ¶
type UsesComponent ¶
type UsesComponent struct { UUIDModel AssessmentPlatformID uuid.UUID AssessmentPlatform *AssessmentPlatform // parent Remarks *string Props datatypes.JSONSlice[Prop] Links datatypes.JSONSlice[Link] ComponentID uuid.UUID Component DefinedComponent // child ResponsibleParties []ResponsibleParty `gorm:"many2many:uses_component_responsible_parties"` }
func (*UsesComponent) MarshalOscal ¶
func (i *UsesComponent) MarshalOscal() *oscalTypes_1_1_3.UsesComponent
func (*UsesComponent) UnmarshalOscal ¶
func (i *UsesComponent) UnmarshalOscal(op oscalTypes_1_1_3.UsesComponent) *UsesComponent