Documentation
¶
Index ¶
- type AssessmentRequirementModifier
- type Contact
- type Contacts
- type ControlModifier
- type Datetime
- type Email
- type EnforcementMethod
- type EvaluationPoint
- type GuidelineModifier
- type ImplementationDetails
- type ImplementationPlan
- type Mapping
- type MappingReference
- type Metadata
- type ModType
- type NotificationGroup
- type PartModifier
- type PolicyDocument
- type Scope
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AssessmentRequirementModifier ¶
type AssessmentRequirementModifier struct {
TargetId string `json:"target-id" yaml:"target-id"`
ModType ModType `json:"modification-type" yaml:"modification-type"`
ModificationRationale string `json:"modification-rationale" yaml:"modification-rationale"`
Text string `json:"text" yaml:"text"`
Applicability []string `json:"applicability" yaml:"applicability"`
Recommendation string `json:"recommendation,omitempty" yaml:"recommendation,omitempty"`
}
type Contact ¶
type Contact struct {
// The contact person's name.
Name string `json:"name" yaml:"name"`
// Indicates whether this admin is the first point of contact for inquiries. Only one entry should be marked as primary.
Primary bool `json:"primary" yaml:"primary"`
// The entity with which the contact is affiliated, such as a school or employer.
Affiliation *string `json:"affiliation,omitempty" yaml:"affiliation,omitempty"`
// A preferred email address to reach the contact.
Email *Email `json:"email,omitempty" yaml:"email,omitempty"`
// A social media handle or profile for the contact.
Social *string `json:"social,omitempty" yaml:"social,omitempty"`
}
type Contacts ¶
type Contacts struct {
Author Contact `json:"author" yaml:"author"`
Responsible []Contact `json:"responsible" yaml:"responsible"`
Accountable []Contact `json:"accountable" yaml:"accountable"`
Consulted []Contact `json:"consulted,omitempty" yaml:"consulted,omitempty"`
Informed []Contact `json:"informed,omitempty" yaml:"informed,omitempty"`
}
type ControlModifier ¶
type ControlModifier struct {
TargetId string `json:"target-id" yaml:"target-id"`
ModType ModType `json:"modification-type" yaml:"modification-type"`
ModificationRationale string `json:"modification-rationale" yaml:"modification-rationale"`
Title string `json:"title,omitempty" yaml:"title,omitempty"`
Objective string `json:"objective,omitempty" yaml:"objective,omitempty"`
}
Modifier Types
type EnforcementMethod ¶
type EnforcementMethod string
type EvaluationPoint ¶
type EvaluationPoint string
type GuidelineModifier ¶
type GuidelineModifier struct {
TargetId string `json:"target-id" yaml:"target-id"`
ModType ModType `json:"modification-type" yaml:"modification-type"`
ModificationRationale string `json:"modification-rationale" yaml:"modification-rationale"`
Title string `json:"title" yaml:"title"`
Objective string `json:"objective,omitempty" yaml:"objective,omitempty"`
Recommendations []string `json:"recommendations,omitempty" yaml:"recommendations,omitempty"`
BaseGuidelineID string `json:"base-guideline-id,omitempty" yaml:"base-guideline-id,omitempty"`
Rationale *string `json:"rationale,omitempty" yaml:"rationale,omitempty"`
GuidelineMappings []*Mapping `json:"guideline-mappings,omitempty" yaml:"guideline-mappings,omitempty"`
PrincipleMappings []*Mapping `json:"principle-mappings,omitempty" yaml:"principle-mappings,omitempty"`
SeeAlso []string `json:"see-also,omitempty" yaml:"see-also,omitempty"`
ExternalReferences []string `json:"external-references,omitempty" yaml:"external-references,omitempty"`
}
type ImplementationDetails ¶
type ImplementationPlan ¶
type ImplementationPlan struct {
// The process through which notified parties should be made aware of this policy
NotificationProcess string `json:"notification-process,omitempty" yaml:"notification-process,omitempty"`
NotifiedParties []NotificationGroup `json:"notified-parties,omitempty" yaml:"notified-parties,omitempty"`
Evaluation ImplementationDetails `json:"evaluation" yaml:"evaluation"`
EvaluationPoints []EvaluationPoint `json:"evaluation-points,omitempty" yaml:"evaluation-points,omitempty"`
Enforcement ImplementationDetails `json:"enforcement" yaml:"enforcement"`
EnforcementMethods []EnforcementMethod `json:"enforcement-methods,omitempty" yaml:"enforcement-methods,omitempty"`
// The process that will be followed in the event that noncompliance is detected in an applicable resource
NoncompliancePlan string `json:"noncompliance-plan,omitempty" yaml:"noncompliance-plan,omitempty"`
}
type Mapping ¶
type Mapping struct {
ReferenceId string `json:"reference-id" yaml:"reference-id"`
InScope Scope `json:"in-scope" yaml:"in-scope"`
OutOfScope Scope `json:"out-of-scope" yaml:"out-of-scope"`
ControlModifications []ControlModifier `json:"control-modifications" yaml:"control-modifications"`
AssessmentRequirementModifications []AssessmentRequirementModifier `json:"assessment-requirement-modifications" yaml:"assessment-requirement-modifications"`
GuidelineModifications []GuidelineModifier `json:"guideline-modifications" yaml:"guideline-modifications"`
}
type MappingReference ¶
type Metadata ¶
type Metadata struct {
Id string `json:"id" yaml:"id"`
Title string `json:"title" yaml:"title"`
Objective string `json:"objective" yaml:"objective"`
Version string `json:"version" yaml:"version"`
Contacts Contacts `json:"contacts" yaml:"contacts"`
LastModified string `json:"last-modified" yaml:"last-modified"`
OrganizationID string `json:"organization-id,omitempty" yaml:"organization-id,omitempty"`
AuthorNotes string `json:"author-notes,omitempty" yaml:"author-notes,omitempty"`
MappingReferences []MappingReference `json:"mapping-references,omitempty" yaml:"mapping-references,omitempty"`
}
type NotificationGroup ¶
type NotificationGroup string
type PartModifier ¶
type PartModifier struct {
TargetId string `json:"target-id" yaml:"target-id"`
ModType ModType `json:"modification-type" yaml:"modification-type"`
ModificationRationale string `json:"modification-rationale" yaml:"modification-rationale"`
Title string `json:"title,omitempty" yaml:"title,omitempty"`
Prose string `json:"prose" yaml:"prose"`
Recommendations []string `json:"recommendations,omitempty" yaml:"recommendations,omitempty"`
}
type PolicyDocument ¶
type PolicyDocument struct {
Metadata Metadata `json:"metadata" yaml:"metadata"`
Scope Scope `json:"scope" yaml:"scope"`
ImplementationPlan ImplementationPlan `json:"implementation-plan,omitempty" yaml:"implementation-plan,omitempty"`
GuidanceReferences []Mapping `json:"guidance-references" yaml:"guidance-references"`
ControlReferences []Mapping `json:"control-references" yaml:"control-references"`
}
Core Document Structure
func (*PolicyDocument) LoadFile ¶ added in v0.7.0
func (c *PolicyDocument) LoadFile(sourcePath string) error
LoadFile loads data from a YAML or JSON file at the provided path. If run multiple times for the same data type, this method will override previous data.
type Scope ¶
type Scope struct {
// geopolitical boundaries such as region names or jurisdictions
Boundaries []string `json:"boundaries,omitempty" yaml:"boundaries,omitempty"`
// names of technology categories or services
Technologies []string `json:"technologies,omitempty" yaml:"technologies,omitempty"`
// names of organizations who make the listed technologies available
Providers []string `json:"providers,omitempty" yaml:"providers,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.