layer3

package
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2025 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

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 Datetime

type Datetime string

type Email

type Email string

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 ImplementationDetails struct {
	Start Datetime `json:"start" yaml:"start"`

	End Datetime `json:"end,omitempty" yaml:"end,omitempty"`

	Notes string `json:"notes" yaml:"notes"`
}

type ImplementationPlan

type ImplementationPlan struct {
	// The process through which notified parties should be made aware of this policy
	NotifactionProcess 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 MappingReference struct {
	Id string `json:"id" yaml:"id"`

	Title string `json:"title" yaml:"title"`

	Version string `json:"version" yaml:"version"`

	Description string `json:"description,omitempty" yaml:"description,omitempty"`

	Url string `json:"url,omitempty" yaml:"url,omitempty"`
}

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" yaml:"author-notes"`

	MappingReferences []MappingReference `json:"mapping-references,omitempty" yaml:"mapping-references,omitempty"`
}

type ModType

type ModType string

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"`

	Contacts Contacts `json:"contacts" yaml:"contacts"`

	Scope Scope `json:"scope" yaml:"scope"`

	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"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL