system_security_plan

package
v0.3.4 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 2020 License: CC0-1.0 Imports: 5 Imported by: 2

Documentation

Overview

Code generated by https://github.com/GoComply/metaschema; DO NOT EDIT.

Code generated by https://github.com/GoComply/metaschema; DO NOT EDIT. Multiplexers are indirect models needed for serialization/deserialization as json and xml files differ materially in their structure.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AdjustmentJustification

type AdjustmentJustification = Markup

If the selected security level is different from the base security level, this contains the justification for the change.

type Annotation

type Annotation = validation_root.Annotation

type AnnotationMultiplexer

type AnnotationMultiplexer []Annotation

func (*AnnotationMultiplexer) MarshalJSON

func (mplex *AnnotationMultiplexer) MarshalJSON() ([]byte, error)

func (*AnnotationMultiplexer) UnmarshalJSON

func (mplex *AnnotationMultiplexer) UnmarshalJSON(b []byte) error

type AuthorizationBoundary

type AuthorizationBoundary struct {

	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations []Annotation `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A visual depiction of the system's authorization boundary.
	Diagrams DiagramMultiplexer `xml:"diagram,omitempty" json:"diagrams,omitempty"`
	// Commentary about the system's authorization boundary that enhances the diagram.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

A description of this system's authorization boundary, optionally supplemented by diagrams that illustrate the authorization boundary.

type AuthorizedPrivilege

type AuthorizedPrivilege struct {

	// A human readable name for the privilege.
	Title *Title `xml:"title,omitempty" json:"title,omitempty"`
	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// Describes a  function performed for a given authorized privilege by this user class.
	FunctionsPerformed []FunctionPerformed `xml:"function-performed,omitempty" json:"functions-performed,omitempty"`
}

Identifies a specific system privilege held by the user, along with an associated description and/or rationale for the privilege.

type AvailabilityImpact

type AvailabilityImpact struct {

	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// The prescribed base (Confidentiality, Integrity, or Availability) security impact level.
	Base Base `xml:"base,omitempty" json:"base,omitempty"`
	// The selected (Confidentiality, Integrity, or Availability) security impact level.
	Selected Selected `xml:"selected,omitempty" json:"selected,omitempty"`
	// If the selected security level is different from the base security level, this contains the justification for the change.
	AdjustmentJustification *AdjustmentJustification `xml:"adjustment-justification,omitempty" json:"adjustment-justification,omitempty"`
}

The expected level of impact resulting from the disruption of access to or use of information or the information system.

type BackMatter

type BackMatter = validation_root.BackMatter

type Base

type Base string

type ByComponent

type ByComponent struct {

	// A reference to the component that is implementing a given control or control statement.
	ComponentUuid string `xml:"component-uuid,attr,omitempty" json:"component-uuid,omitempty"`
	// A RFC 4122 version 4 Universally Unique Identifier (UUID) for the containing object.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`

	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations []Annotation `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// Identifies content intended for external consumption, such as with leveraged organizations.
	Export *Export `xml:"export,omitempty" json:"export,omitempty"`
	// Describes a responsibiity imposed on a leveraging system.
	InheritedGroup InheritedMultiplexer `xml:"inherited,omitempty" json:"inherited-group,omitempty"`
	// Describes how this system satisfies a responsibiity imposed by a leveraged system.
	SatisfiedGroup SatisfiedMultiplexer `xml:"satisfied,omitempty" json:"satisfied-group,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A reference to one or more roles with responsibility for performing a function relative to the control.
	ResponsibleRoles ResponsibleRoleMultiplexer `xml:"responsible-role,omitempty" json:"responsible-roles,omitempty"`
	// Identifies the parameter that will be filled in by the enclosed value element.
	ParameterSettings SetParameterMultiplexer `xml:"set-parameter,omitempty" json:"parameter-settings,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

Defines how the referenced component implements a set of controls.

func (*ByComponent) SetUuid

func (bc *ByComponent) SetUuid(uuid string)

type ByComponentMultiplexer

type ByComponentMultiplexer []ByComponent

func (*ByComponentMultiplexer) MarshalJSON

func (mplex *ByComponentMultiplexer) MarshalJSON() ([]byte, error)

func (*ByComponentMultiplexer) UnmarshalJSON

func (mplex *ByComponentMultiplexer) UnmarshalJSON(b []byte) error

type Caption

type Caption = Markup

A brief caption to annotate the diagram.

type Component

type Component struct {

	// The unique identifier for the component.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`
	// A category describing the purpose of the component.
	ComponentType string `xml:"component-type,attr,omitempty" json:"component-type,omitempty"`

	// A human readable name for the system component.
	Title *Title `xml:"title,omitempty" json:"title,omitempty"`
	// A description of the component, including information about its function.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A summary of the technological or business purpose of the component.
	Purpose *Purpose `xml:"purpose,omitempty" json:"purpose,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations []Annotation `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// Describes the operational status of the system.
	Status *Status `xml:"status,omitempty" json:"status,omitempty"`
	// Defines a role that has responsibility for the component.
	ResponsibleRoles ResponsibleRoleMultiplexer `xml:"responsible-role,omitempty" json:"responsible-roles,omitempty"`
	// Used for  components to define the protocols supported by the service.
	Protocols []Protocol `xml:"protocol,omitempty" json:"protocols,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

A defined component that can be part of an implemented system.

func (*Component) SetUuid

func (c *Component) SetUuid(uuid string)

type ComponentMultiplexer

type ComponentMultiplexer []Component

func (*ComponentMultiplexer) MarshalJSON

func (mplex *ComponentMultiplexer) MarshalJSON() ([]byte, error)

func (*ComponentMultiplexer) UnmarshalJSON

func (mplex *ComponentMultiplexer) UnmarshalJSON(b []byte) error

type ConfidentialityImpact

type ConfidentialityImpact struct {

	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// The prescribed base (Confidentiality, Integrity, or Availability) security impact level.
	Base Base `xml:"base,omitempty" json:"base,omitempty"`
	// The selected (Confidentiality, Integrity, or Availability) security impact level.
	Selected Selected `xml:"selected,omitempty" json:"selected,omitempty"`
	// If the selected security level is different from the base security level, this contains the justification for the change.
	AdjustmentJustification *AdjustmentJustification `xml:"adjustment-justification,omitempty" json:"adjustment-justification,omitempty"`
}

The expected level of impact resulting from the unauthorized disclosure of information.

type ControlImplementation

type ControlImplementation struct {

	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// Describes how the system satisfies an individual control.
	ImplementedRequirements []ImplementedRequirement `xml:"implemented-requirement,omitempty" json:"implemented-requirements,omitempty"`
}

Describes how the system satisfies a set of controls.

type DataFlow

type DataFlow struct {

	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations []Annotation `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A graphic that provides a visual representation the system, or some aspect of it.
	Diagrams DiagramMultiplexer `xml:"diagram,omitempty" json:"diagrams,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

A description of the logical flow of information within the system and across its boundaries, optionally supplemented by diagrams that illustrate these flows.

type DateAuthorized

type DateAuthorized string

type Description

type Description = validation_root.Description

type Diagram

type Diagram struct {

	// The identifier for this diagram.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`

	// A description of the diagram (e.g., alternate text). This can be used to support compliance with requirements from Section 508 of the United States Workforce Rehabilitation Act of 1973.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A brief caption to annotate the diagram.
	Caption *Caption `xml:"caption,omitempty" json:"caption,omitempty"`
	// Commentary about the diagram that enhances it.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

A graphic that provides a visual representation the system, or some aspect of it.

type DiagramMultiplexer

type DiagramMultiplexer []Diagram

func (*DiagramMultiplexer) MarshalJSON

func (mplex *DiagramMultiplexer) MarshalJSON() ([]byte, error)

func (*DiagramMultiplexer) UnmarshalJSON

func (mplex *DiagramMultiplexer) UnmarshalJSON(b []byte) error

type Export

type Export struct {

	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations AnnotationMultiplexer `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// Describes a capability which may be inherited by a leveraging system.
	ProvidedGroup ProvidedMultiplexer `xml:"provided,omitempty" json:"provided-group,omitempty"`
	// Describes a responsibiity imposed on a leveraging system.
	Responsibilities ResponsibilityMultiplexer `xml:"responsibility,omitempty" json:"responsibilities,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

Identifies content intended for external consumption, such as with leveraged organizations.

type FunctionPerformed

type FunctionPerformed string

type ImplementedComponent

type ImplementedComponent struct {

	// A reference to a component that is implemented as part of an inventory item.
	ComponentUuid string `xml:"component-uuid,attr,omitempty" json:"component-uuid,omitempty"`
	// The type of implementation
	Use string `xml:"use,attr,omitempty" json:"use,omitempty"`

	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations []Annotation `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A reference to a set of organizations or persons that have responsibility for performing a referenced role relative to the parent context.
	ResponsibleParties ResponsiblePartyMultiplexer `xml:"responsible-party,omitempty" json:"responsible-parties,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

The set of componenets that are implemented in a given system inventory item.

type ImplementedComponentMultiplexer

type ImplementedComponentMultiplexer []ImplementedComponent

func (*ImplementedComponentMultiplexer) MarshalJSON

func (mplex *ImplementedComponentMultiplexer) MarshalJSON() ([]byte, error)

func (*ImplementedComponentMultiplexer) UnmarshalJSON

func (mplex *ImplementedComponentMultiplexer) UnmarshalJSON(b []byte) error

type ImplementedRequirement

type ImplementedRequirement struct {

	// A RFC 4122 version 4 Universally Unique Identifier (UUID) for the containing object.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`
	// A reference to a control identifier.
	ControlId string `xml:"control-id,attr,omitempty" json:"control-id,omitempty"`

	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations []Annotation `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// Defines how the referenced component implements a set of controls.
	ByComponents ByComponentMultiplexer `xml:"by-component,omitempty" json:"by-components,omitempty"`
	// A reference to one or more roles with responsibility for performing a function relative to the control.
	ResponsibleRoles ResponsibleRoleMultiplexer `xml:"responsible-role,omitempty" json:"responsible-roles,omitempty"`
	// Identifies the parameter that will be filled in by the enclosed value element.
	ParameterSettings SetParameterMultiplexer `xml:"set-parameter,omitempty" json:"parameter-settings,omitempty"`
	// Identifies which statements within a control are addressed.
	Statements StatementMultiplexer `xml:"statement,omitempty" json:"statements,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

Describes how the system satisfies an individual control.

func (*ImplementedRequirement) SetUuid

func (ir *ImplementedRequirement) SetUuid(uuid string)

type ImportProfile

type ImportProfile struct {

	// A link to a document or document fragment (actual, nominal or projected)
	Href string `xml:"href,attr,omitempty" json:"href,omitempty"`

	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

Used to import the OSCAL profile representing the system's control baseline.

type InformationType

type InformationType struct {

	// A RFC 4122 version 4 Universally Unique Identifier (UUID) for the containing object.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`

	// A human readable name for the information type. This title should be meaningful within the context of the system.
	Title *Title `xml:"title,omitempty" json:"title,omitempty"`
	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// An identifier qualified by the given identification  used, such as NIST SP 800-60.
	InformationTypeIds InformationTypeIdMultiplexer `xml:"information-type-id,omitempty" json:"information-type-ids,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// The expected level of impact resulting from the unauthorized disclosure of information.
	ConfidentialityImpact *ConfidentialityImpact `xml:"confidentiality-impact,omitempty" json:"confidentiality-impact,omitempty"`
	// The expected level of impact resulting from the unauthorized modification of information.
	IntegrityImpact *IntegrityImpact `xml:"integrity-impact,omitempty" json:"integrity-impact,omitempty"`
	// The expected level of impact resulting from the disruption of access to or use of information or the information system.
	AvailabilityImpact *AvailabilityImpact `xml:"availability-impact,omitempty" json:"availability-impact,omitempty"`
}

Contains details about one information type that is stored, processed, or transmitted by the system, such as privacy information, and those defined in .

type InformationTypeId

type InformationTypeId struct {
	// Specifies the information type identification system used.
	System string `xml:"system,attr,omitempty" json:"system,omitempty"`
	Id     string `xml:",chardata" json:"id"`
}

An identifier qualified by the given identification used, such as NIST SP 800-60.

type InformationTypeIdMultiplexer

type InformationTypeIdMultiplexer []InformationTypeId

func (*InformationTypeIdMultiplexer) MarshalJSON

func (mplex *InformationTypeIdMultiplexer) MarshalJSON() ([]byte, error)

func (*InformationTypeIdMultiplexer) UnmarshalJSON

func (mplex *InformationTypeIdMultiplexer) UnmarshalJSON(b []byte) error

type Inherited

type Inherited struct {

	// A RFC 4122 version 4 Universally Unique Identifier (UUID) for the containing object.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`
	// Identifies a 'provided' assembly associated with this assembly.
	ProvidedUuid string `xml:"provided-uuid,attr,omitempty" json:"provided-uuid,omitempty"`

	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations AnnotationMultiplexer `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A reference to one or more roles with responsibility for performing a function relative to the control.
	ResponsibleRoles ResponsibleRoleMultiplexer `xml:"responsible-role,omitempty" json:"responsible-roles,omitempty"`
}

Describes a responsibiity imposed on a leveraging system.

type InheritedMultiplexer

type InheritedMultiplexer []Inherited

func (*InheritedMultiplexer) MarshalJSON

func (mplex *InheritedMultiplexer) MarshalJSON() ([]byte, error)

func (*InheritedMultiplexer) UnmarshalJSON

func (mplex *InheritedMultiplexer) UnmarshalJSON(b []byte) error

type IntegrityImpact

type IntegrityImpact struct {

	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// The prescribed base (Confidentiality, Integrity, or Availability) security impact level.
	Base Base `xml:"base,omitempty" json:"base,omitempty"`
	// The selected (Confidentiality, Integrity, or Availability) security impact level.
	Selected Selected `xml:"selected,omitempty" json:"selected,omitempty"`
	// If the selected security level is different from the base security level, this contains the justification for the change.
	AdjustmentJustification *AdjustmentJustification `xml:"adjustment-justification,omitempty" json:"adjustment-justification,omitempty"`
}

The expected level of impact resulting from the unauthorized modification of information.

type InventoryItem

type InventoryItem struct {

	// A RFC 4122 version 4 Universally Unique Identifier (UUID) for the containing object.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`
	// Organizational asset identifier that is unique in the context of the system. This may be a reference to the identifier used in an asset tracking system or a vulnerability scanning tool.
	AssetId string `xml:"asset-id,attr,omitempty" json:"asset-id,omitempty"`

	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations []Annotation `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A reference to a set of organizations or persons that have responsibility for performing a referenced role relative to the parent context.
	ResponsibleParties ResponsiblePartyMultiplexer `xml:"responsible-party,omitempty" json:"responsible-parties,omitempty"`
	// The set of componenets that are implemented in a given system inventory item.
	ImplementedComponents ImplementedComponentMultiplexer `xml:"implemented-component,omitempty" json:"implemented-components,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

A single managed inventory item within the system.

type InventoryItemMultiplexer

type InventoryItemMultiplexer []InventoryItem

func (*InventoryItemMultiplexer) MarshalJSON

func (mplex *InventoryItemMultiplexer) MarshalJSON() ([]byte, error)

func (*InventoryItemMultiplexer) UnmarshalJSON

func (mplex *InventoryItemMultiplexer) UnmarshalJSON(b []byte) error

type LeveragedAuthorization

type LeveragedAuthorization struct {

	// A RFC 4122 version 4 Universally Unique Identifier (UUID) for the containing object.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`

	// A human readable name for the leveraged authorization in the context of the system.
	Title *Title `xml:"title,omitempty" json:"title,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations []Annotation `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A reference to the party that manages the leveraged system.
	PartyUuid PartyUuid `xml:"party-uuid,omitempty" json:"party-uuid,omitempty"`
	// The date this system received its authorization.
	DateAuthorized DateAuthorized `xml:"date-authorized,omitempty" json:"date-authorized,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

A description of another authorized system from which this system inherits capabilities that satisfy security requirements. Another term for this concept is a .

type Link = validation_root.Link

type Markup

type Markup = validation_root.Markup

type Metadata

type Metadata = validation_root.Metadata

type NetworkArchitecture

type NetworkArchitecture struct {

	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations []Annotation `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A graphic that provides a visual representation the system, or some aspect of it.
	Diagrams DiagramMultiplexer `xml:"diagram,omitempty" json:"diagrams,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

A description of the system's network architecture, optionally supplemented by diagrams that illustrate the network architecture.

type PartyUuid

type PartyUuid = validation_root.PartyUuid

type PortRange

type PortRange struct {
	// Indicates the starting port number in a port range
	Start uint64 `xml:"start,attr,omitempty" json:"start,omitempty"`

	// Indicates the ending port number in a port range
	End uint64 `xml:"end,attr,omitempty" json:"end,omitempty"`

	// Indicates the transport type.
	Transport string `xml:"transport,attr,omitempty" json:"transport,omitempty"`
}

Where applicable this is the IPv4 port range on which the service operates.

type Prop

type Prop = validation_root.Prop

type Protocol

type Protocol struct {

	// A RFC 4122 version 4 Universally Unique Identifier (UUID) for the containing object.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`
	// The short name of the protocol (e.g., TLS).
	Name string `xml:"name,attr,omitempty" json:"name,omitempty"`

	// A human readable name for the protocol (e.g., Transport Layer Security).
	Title *Title `xml:"title,omitempty" json:"title,omitempty"`
	// Where applicable this is the IPv4 port range on which the service operates.
	PortRanges []PortRange `xml:"port-range,omitempty" json:"port-ranges,omitempty"`
}

Information about the protocol used to provide a service.

type Provided

type Provided struct {

	// A RFC 4122 version 4 Universally Unique Identifier (UUID) for the containing object.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`

	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations AnnotationMultiplexer `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A reference to one or more roles with responsibility for performing a function relative to the control.
	ResponsibleRoles ResponsibleRoleMultiplexer `xml:"responsible-role,omitempty" json:"responsible-roles,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

Describes a capability which may be inherited by a leveraging system.

type ProvidedMultiplexer

type ProvidedMultiplexer []Provided

func (*ProvidedMultiplexer) MarshalJSON

func (mplex *ProvidedMultiplexer) MarshalJSON() ([]byte, error)

func (*ProvidedMultiplexer) UnmarshalJSON

func (mplex *ProvidedMultiplexer) UnmarshalJSON(b []byte) error

type Purpose

type Purpose = Markup

Describes the purpose for the service within the system.

type Remarks

type Remarks = validation_root.Remarks

type Responsibility

type Responsibility struct {

	// A RFC 4122 version 4 Universally Unique Identifier (UUID) for the containing object.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`
	// Identifies a 'provided' assembly associated with this assembly.
	ProvidedUuid string `xml:"provided-uuid,attr,omitempty" json:"provided-uuid,omitempty"`

	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations AnnotationMultiplexer `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A reference to one or more roles with responsibility for performing a function relative to the control.
	ResponsibleRoles ResponsibleRoleMultiplexer `xml:"responsible-role,omitempty" json:"responsible-roles,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

Describes a responsibiity imposed on a leveraging system.

type ResponsibilityMultiplexer

type ResponsibilityMultiplexer []Responsibility

func (*ResponsibilityMultiplexer) MarshalJSON

func (mplex *ResponsibilityMultiplexer) MarshalJSON() ([]byte, error)

func (*ResponsibilityMultiplexer) UnmarshalJSON

func (mplex *ResponsibilityMultiplexer) UnmarshalJSON(b []byte) error

type ResponsibleParty

type ResponsibleParty = validation_root.ResponsibleParty

type RoleId

type RoleId string

type Satisfied

type Satisfied struct {

	// A RFC 4122 version 4 Universally Unique Identifier (UUID) for the containing object.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`
	// Identifies a 'provided' assembly associated with this assembly.
	ResponsibilityUuid string `xml:"responsibility-uuid,attr,omitempty" json:"responsibility-uuid,omitempty"`

	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations AnnotationMultiplexer `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A reference to one or more roles with responsibility for performing a function relative to the control.
	ResponsibleRoles ResponsibleRoleMultiplexer `xml:"responsible-role,omitempty" json:"responsible-roles,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

Describes how this system satisfies a responsibiity imposed by a leveraged system.

type SatisfiedMultiplexer

type SatisfiedMultiplexer []Satisfied

func (*SatisfiedMultiplexer) MarshalJSON

func (mplex *SatisfiedMultiplexer) MarshalJSON() ([]byte, error)

func (*SatisfiedMultiplexer) UnmarshalJSON

func (mplex *SatisfiedMultiplexer) UnmarshalJSON(b []byte) error

type SecurityImpactLevel

type SecurityImpactLevel struct {

	// A target-level of confidentiality for the system, based on the sensitivity of information within the system.
	SecurityObjectiveConfidentiality SecurityObjectiveConfidentiality `xml:"security-objective-confidentiality,omitempty" json:"security-objective-confidentiality,omitempty"`
	// A target-level of integrity for the system, based on the sensitivity of information within the system.
	SecurityObjectiveIntegrity SecurityObjectiveIntegrity `xml:"security-objective-integrity,omitempty" json:"security-objective-integrity,omitempty"`
	// A target-level of availability for the system, based on the sensitivity of information within the system.
	SecurityObjectiveAvailability SecurityObjectiveAvailability `xml:"security-objective-availability,omitempty" json:"security-objective-availability,omitempty"`
}

The overall level of expected impact resulting from unauthorized disclosure, modification, or loss of access to information.

type SecurityObjectiveAvailability

type SecurityObjectiveAvailability string

type SecurityObjectiveConfidentiality

type SecurityObjectiveConfidentiality string

type SecurityObjectiveIntegrity

type SecurityObjectiveIntegrity string

type SecuritySensitivityLevel

type SecuritySensitivityLevel string

type Selected

type Selected string

type ShortName

type ShortName = validation_root.ShortName

type Statement

type Statement struct {

	// A reference to the specific implemented statement associated with a control.
	StatementId string `xml:"statement-id,attr,omitempty" json:"statement-id,omitempty"`
	// A RFC 4122 version 4 Universally Unique Identifier (UUID) for the containing object.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`

	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations AnnotationMultiplexer `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A reference to one or more roles with responsibility for performing a function relative to the control.
	ResponsibleRoles ResponsibleRoleMultiplexer `xml:"responsible-role,omitempty" json:"responsible-roles,omitempty"`
	// Defines how the referenced component implements a set of controls.
	ByComponents ByComponentMultiplexer `xml:"by-component,omitempty" json:"by-components,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

Identifies which statements within a control are addressed.

func (*Statement) SetUuid

func (st *Statement) SetUuid(uuid string)

type StatementMultiplexer

type StatementMultiplexer []Statement

func (*StatementMultiplexer) MarshalJSON

func (mplex *StatementMultiplexer) MarshalJSON() ([]byte, error)

func (*StatementMultiplexer) UnmarshalJSON

func (mplex *StatementMultiplexer) UnmarshalJSON(b []byte) error

type Status

type Status struct {

	// The current operating status.
	State string `xml:"state,attr,omitempty" json:"state,omitempty"`

	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

Describes the operational status of the system.

type SystemCharacteristics

type SystemCharacteristics struct {

	// A unique identifier for the system described by this system security plan.
	SystemIds []SystemId `xml:"system-id,omitempty" json:"system-ids,omitempty"`
	// The full name of the system.
	SystemName SystemName `xml:"system-name,omitempty" json:"system-name,omitempty"`
	// A short name for the system, such as an acronym, that is suitable for display in a data table or summary list.
	SystemNameShort SystemNameShort `xml:"system-name-short,omitempty" json:"system-name-short,omitempty"`
	// A free-text description of the system.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations []Annotation `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// The date this system received its authorization.
	DateAuthorized DateAuthorized `xml:"date-authorized,omitempty" json:"date-authorized,omitempty"`
	// The overall information system sensitivity categorization, such as defined by .
	SecuritySensitivityLevel SecuritySensitivityLevel `xml:"security-sensitivity-level,omitempty" json:"security-sensitivity-level,omitempty"`
	// Contains details about all information types that are stored, processed, or transmitted by the system, such as privacy information, and those defined in .
	SystemInformation *SystemInformation `xml:"system-information,omitempty" json:"system-information,omitempty"`
	// The overall level of expected impact resulting from unauthorized disclosure, modification, or loss of access to information.
	SecurityImpactLevel *SecurityImpactLevel `xml:"security-impact-level,omitempty" json:"security-impact-level,omitempty"`
	// Describes the operational status of the system.
	Status *Status `xml:"status,omitempty" json:"status,omitempty"`
	// A description of this system's authorization boundary, optionally supplemented by diagrams that illustrate the authorization boundary.
	AuthorizationBoundary *AuthorizationBoundary `xml:"authorization-boundary,omitempty" json:"authorization-boundary,omitempty"`
	// A description of the system's network architecture, optionally supplemented by diagrams that illustrate the network architecture.
	NetworkArchitecture *NetworkArchitecture `xml:"network-architecture,omitempty" json:"network-architecture,omitempty"`
	// A description of the logical flow of information within the system and across its boundaries, optionally supplemented by diagrams that illustrate these flows.
	DataFlow *DataFlow `xml:"data-flow,omitempty" json:"data-flow,omitempty"`
	// A reference to a set of organizations or persons that have responsibility for performing a referenced role relative to the parent context.
	ResponsibleParties ResponsiblePartyMultiplexer `xml:"responsible-party,omitempty" json:"responsible-parties,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

Contains the characteristics of the system, such as its name, purpose, and security impact level.

type SystemId

type SystemId struct {
	// Identifies the identification system from which the provided identifier was assigned.
	IdentifierType string `xml:"identifier-type,attr,omitempty" json:"identifier-type,omitempty"`
	Id             string `xml:",chardata" json:"id"`
}

A unique identifier for the system described by this system security plan.

type SystemImplementation

type SystemImplementation struct {

	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations []Annotation `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A description of another authorized system from which this system inherits capabilities that satisfy security requirements. Another term for this concept is a .
	LeveragedAuthorizations []LeveragedAuthorization `xml:"leveraged-authorization,omitempty" json:"leveraged-authorizations,omitempty"`
	// A type of user that interacts with the system based on an associated role.
	Users UserMultiplexer `xml:"user,omitempty" json:"users,omitempty"`
	// A defined component that can be part of an implemented system.
	Components ComponentMultiplexer `xml:"component,omitempty" json:"components,omitempty"`
	// A set of  entries that represent the managed inventory instances of the system.
	SystemInventory *SystemInventory `xml:"system-inventory,omitempty" json:"system-inventory,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

Provides information as to how the system is implemented.

type SystemInformation

type SystemInformation struct {

	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations []Annotation `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// Contains details about one information type that is stored, processed, or transmitted by the system, such as privacy information, and those defined in .
	InformationTypes []InformationType `xml:"information-type,omitempty" json:"information-types,omitempty"`
}

Contains details about all information types that are stored, processed, or transmitted by the system, such as privacy information, and those defined in .

type SystemInventory

type SystemInventory struct {

	// A single managed inventory item within the system.
	InventoryItems InventoryItemMultiplexer `xml:"inventory-item,omitempty" json:"inventory-items,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

A set of entries that represent the managed inventory instances of the system.

type SystemName

type SystemName string

type SystemNameShort

type SystemNameShort string

type SystemSecurityPlan

type SystemSecurityPlan struct {
	XMLName xml.Name `xml:"http://csrc.nist.gov/ns/oscal/1.0 system-security-plan" json:"-"`
	// A RFC 4122 version 4 Universally Unique Identifier (UUID) for the containing object.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`

	// Provides information about the publication and availability of the containing document.
	Metadata *Metadata `xml:"metadata,omitempty" json:"metadata,omitempty"`
	// Used to import the OSCAL profile representing the system's control baseline.
	ImportProfile *ImportProfile `xml:"import-profile,omitempty" json:"import-profile,omitempty"`
	// Contains the characteristics of the system, such as its name, purpose, and security impact level.
	SystemCharacteristics *SystemCharacteristics `xml:"system-characteristics,omitempty" json:"system-characteristics,omitempty"`
	// Provides information as to how the system is implemented.
	SystemImplementation *SystemImplementation `xml:"system-implementation,omitempty" json:"system-implementation,omitempty"`
	// Describes how the system satisfies a set of controls.
	ControlImplementation *ControlImplementation `xml:"control-implementation,omitempty" json:"control-implementation,omitempty"`
	// A collection of citations and resource references.
	BackMatter *BackMatter `xml:"back-matter,omitempty" json:"back-matter,omitempty"`
}

A system security plan, such as those described in NIST SP 800-18

func (*SystemSecurityPlan) SetUuid

func (ssp *SystemSecurityPlan) SetUuid(uuid string)

type Title

type Title = validation_root.Title

type User

type User struct {

	// The unique identifier for the user class.
	Uuid string `xml:"uuid,attr,omitempty" json:"uuid,omitempty"`

	// A title for display and navigation
	Title *Title `xml:"title,omitempty" json:"title,omitempty"`
	// A common name, short name or acronym
	ShortName ShortName `xml:"short-name,omitempty" json:"short-name,omitempty"`
	// A description supporting the parent item.
	Description *Description `xml:"description,omitempty" json:"description,omitempty"`
	// A value with a name, attributed to the containing control, part, or group.
	Properties []Prop `xml:"prop,omitempty" json:"properties,omitempty"`
	// A name/value pair with optional explanatory remarks.
	Annotations []Annotation `xml:"annotation,omitempty" json:"annotations,omitempty"`
	// A reference to a local or remote resource
	Links []Link `xml:"link,omitempty" json:"links,omitempty"`
	// A reference to the roles served by the user.
	RoleIds []RoleId `xml:"role-id,omitempty" json:"role-ids,omitempty"`
	// Identifies a specific system privilege held by the user, along with an associated description and/or rationale for the privilege.
	AuthorizedPrivileges []AuthorizedPrivilege `xml:"authorized-privilege,omitempty" json:"authorized-privileges,omitempty"`
	// Additional commentary on the parent item.
	Remarks *Remarks `xml:"remarks,omitempty" json:"remarks,omitempty"`
}

A type of user that interacts with the system based on an associated role.

func (*User) SetUuid

func (u *User) SetUuid(uuid string)

type UserMultiplexer

type UserMultiplexer []User

func (*UserMultiplexer) MarshalJSON

func (mplex *UserMultiplexer) MarshalJSON() ([]byte, error)

func (*UserMultiplexer) UnmarshalJSON

func (mplex *UserMultiplexer) UnmarshalJSON(b []byte) error

Jump to

Keyboard shortcuts

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