oscal

package
v0.18.0-rc2 Latest Latest
Warning

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

Go to latest
Published: Jul 9, 2026 License: AGPL-3.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InventorySourceSSP               = "System Security Plan"
	InventorySourceEvidence          = "Evidence Collection"
	InventorySourcePOAM              = "Plan of Action and Milestones"
	InventorySourceAssessmentPlan    = "Assessment Plan"
	InventorySourceAssessmentResults = "Assessment Results"
	InventorySourceUnknown           = "Unknown"

	// Source type identifiers
	SourceTypeSSP               = "ssp"
	SourceTypeEvidence          = "evidence"
	SourceTypePOAM              = "poam"
	SourceTypeAssessmentPlan    = "assessment-plan"
	SourceTypeAssessmentResults = "assessment-results"
	SourceTypeAP                = "ap"
	SourceTypeAR                = "ar"
	SourceTypeUnknown           = "unknown"
)

Source type constants

Variables

View Source
var ErrDashboardSuggestionWorkerDisabled = errors.New("dashboard suggestion worker disabled")

Functions

func BuildControlCatalogForProfile added in v0.4.1

func BuildControlCatalogForProfile(profile *relational.Profile, db *gorm.DB) (*relational.Catalog, error)

func CollectControlIDs added in v0.7.0

func CollectControlIDs(controls []relational.Control, controlsMap map[string]uuid.UUID)

CollectControlIDs recursively extracts control IDs and their CatalogIDs from a list of controls

func CollectControlIDsFromGroups added in v0.7.0

func CollectControlIDsFromGroups(groups []relational.Group, controlsMap map[string]uuid.UUID)

CollectControlIDsFromGroups recursively extracts control IDs and their CatalogIDs from groups

func CombineBackmatter

func CombineBackmatter(backmatters *[]relational.BackMatter) *relational.BackMatter

Helper functions CombineBackmatter merges multiple BackMatter slices into a single BackMatter by concatenating all resources.

func FindFullProfile

func FindFullProfile(db *gorm.DB, id uuid.UUID) (*relational.Profile, error)

FindFullProfile loads a Profile by its UUID string from the database, preloading all related entities such as metadata, imports, merges, modifications, and back matter.

func FindOscalCatalogFromBackMatter

func FindOscalCatalogFromBackMatter(profile *relational.Profile, ref string) (uuid.UUID, error)

FindOscalCatalogFromBackMatter searches the profile’s BackMatter for a resource matching the reference string and returns its catalog UUID if found.

func GatherControlIds

func GatherControlIds(imports relational.Import) []string

GatherControlIds extracts unique control IDs from an Import's IncludeControls, avoiding duplicates.

func GetCatalogBackmatter

func GetCatalogBackmatter(db *gorm.DB, uuids []uuid.UUID) (*[]relational.BackMatter, error)

GetCatalogBackmatter retrieves back matter records for the given catalog UUIDs, preloading associated resources from the database.

func GetControlCatalogFromBuiltProfile added in v0.7.0

func GetControlCatalogFromBuiltProfile(profile *relational.Profile, db *gorm.DB) (*relational.Catalog, error)

func GetControlIDsMapFromProfile added in v0.7.0

func GetControlIDsMapFromProfile(profile *relational.Profile, db *gorm.DB) (map[string]uuid.UUID, error)

GetControlIDsMapFromProfile resolves a profile and returns a map of control IDs to their CatalogIDs.

func NewValidationErrorResponse added in v0.4.2

func NewValidationErrorResponse(errors []ValidationError) *echo.HTTPError

func RegisterHandlers

func RegisterHandlers(server *api.Server, logger *zap.SugaredLogger, db *gorm.DB, config *config.Config, evidenceSvc *evidencesvc.EvidenceService, jobEnqueuer SSPJobEnqueuer, pep *middleware.PEP)

RegisterHandlers mounts the OSCAL route groups. pep is the shared, config-selected Policy Enforcement Point (cmd/run.go builds it once); callers that pass nil (e.g. test suites) get a builtin-backed PEP, reproducing the prior access rules with no behavior change.

func ResolveControls

func ResolveControls(profile *relational.Profile, db *gorm.DB) ([]uuid.UUID, []relational.Control, error)

ResolveControls orchestrates control resolution for all imports in the profile, returning the list of catalog UUIDs and the fully processed controls.

func ResponsibilityPosture

func ResponsibilityPosture(db *gorm.DB, downstreamSSPID uuid.UUID, responsibilityUUIDs []uuid.UUID) (map[uuid.UUID]string, error)

ResponsibilityPosture computes per-responsibility compliance posture (satisfied / not-satisfied / unknown) for a downstream SSP, using the same status-count/evidence logic as control-keyed posture (computeProfileControlStatus), but keyed by responsibility_uuid via filter_responsibilities instead of by (catalogId, controlId) via filter_controls (BCH-1339). Feeds the Inherited Capability projection (SSPLeverageHandler.LeveragedControls, BCH-1338 Phase 2) so a downstream can see whether an inherited responsibility is actually backed by satisfying evidence, not just recorded as satisfied at subscribe time. Every requested uuid is always present in the returned map — defaulting to "unknown" when no filter targets it — never an absent key, matching bulkResolveUpstreamResponsibilities's convention in ssp_leverage.go.

func SyncExportOffering

func SyncExportOffering(db *gorm.DB, offeringID uuid.UUID) error

SyncExportOffering is the single write path for an SSPExportOffering's ContentHash and Version, sibling of SyncProfileControls (profiles.go). It recomputes the content hash from the offering's current title/description/items and, only if that hash actually changed, increments Version and persists the new hash — so calling it on an unchanged offering (an idempotent republish) is a no-op. Mirrors SyncProfileControls's concurrency guard: it captures UpdatedAt before recomputing, then aborts inside the write transaction if the row was modified in the meantime, rather than overwriting a newer state with a stale computation.

func SyncProfileControls added in v0.7.0

func SyncProfileControls(db *gorm.DB, profileID uuid.UUID) ([]string, error)

SyncProfileControls resolves all controls for a profile and updates the ProfileControl pivot table.

Types

type ActivityHandler added in v0.4.1

type ActivityHandler struct {
	// contains filtered or unexported fields
}

func NewActivityHandler added in v0.4.1

func NewActivityHandler(sugar *zap.SugaredLogger, db *gorm.DB) *ActivityHandler

func (*ActivityHandler) CreateActivity added in v0.4.1

func (h *ActivityHandler) CreateActivity(ctx echo.Context) error

CreateActivity godoc

@Summary		Create an Activity
@Description	Creates a new activity for us in other resources.
@Tags			Activities
@Accept			json
@Produce		json
@Param			activity	body		oscalTypes_1_1_3.Activity	true	"Activity object"
@Success		201			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Activity]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/activities [post]

func (*ActivityHandler) DeleteActivity added in v0.4.1

func (h *ActivityHandler) DeleteActivity(ctx echo.Context) error

DeleteActivity godoc

@Summary		Delete Activity
@Description	Deletes an activity
@Tags			Activities
@Param			id	path	string	true	"Activity ID"
@Success		204	"No Content"
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/activities/{id} [delete]

func (*ActivityHandler) GetActivity added in v0.4.1

func (h *ActivityHandler) GetActivity(ctx echo.Context) error

GetActivity godoc

@Summary		Retrieve an Activity
@Description	Retrieves an Activity by its unique ID.
@Tags			Activities
@Accept			json
@Produce		json
@Param			id	path		string	true	"Activity ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Activity]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/activities/{id} [get]

func (*ActivityHandler) Register added in v0.4.1

func (h *ActivityHandler) Register(api *echo.Group, guard middleware.ResourceGuard)

func (*ActivityHandler) UpdateActivity added in v0.4.1

func (h *ActivityHandler) UpdateActivity(ctx echo.Context) error

UpdateActivity godoc

@Summary		Update an Activity
@Description	Updates properties of an existing Activity by its ID.
@Tags			Activities
@Accept			json
@Produce		json
@Param			id			path		string						true	"Activity ID"
@Param			activity	body		oscalTypes_1_1_3.Activity	true	"Activity object"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Activity]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/activities/{id} [put]

type AiDiagnosticsConfig added in v0.17.0

type AiDiagnosticsConfig struct {
	Model                string `json:"model"`
	PromptVersion        string `json:"promptVersion"`
	MaxControlsPerChunk  int    `json:"maxControlsPerChunk"`
	MaxLabelSetsPerChunk int    `json:"maxLabelSetsPerChunk"`
	MaxCallsPerRun       int    `json:"maxCallsPerRun"`
	QueueWorkers         int    `json:"queueWorkers"`
}

type AiDiagnosticsHandler added in v0.17.0

type AiDiagnosticsHandler struct {
	// contains filtered or unexported fields
}

func NewAiDiagnosticsHandler added in v0.17.0

func NewAiDiagnosticsHandler(sugar *zap.SugaredLogger, db *gorm.DB, cfg *config.AIConfig) *AiDiagnosticsHandler

func (*AiDiagnosticsHandler) Register added in v0.17.0

func (h *AiDiagnosticsHandler) Register(apiGroup *echo.Group)

func (*AiDiagnosticsHandler) RunDetail added in v0.17.0

func (h *AiDiagnosticsHandler) RunDetail(ctx echo.Context) error

RunDetail godoc

@Summary		Get AI diagnostic run detail
@Description	Returns one dashboard suggestion run with cells and events.
@Tags			AI Diagnostics
@Produce		json
@Param			runId	path		string	true	"Dashboard suggestion run ID"
@Success		200		{object}	handler.GenericDataResponse[oscal.AiDiagnosticsRunDetail]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/admin/ai-diagnostics/runs/{runId} [get]

func (*AiDiagnosticsHandler) Runs added in v0.17.0

func (h *AiDiagnosticsHandler) Runs(ctx echo.Context) error

Runs godoc

@Summary		List AI diagnostic runs
@Description	Lists dashboard suggestion runs across all SSPs, newest first, with optional status and SSP filters.
@Tags			AI Diagnostics
@Produce		json
@Param			status	query		string	false	"Run status"	Enums(pending, running, completed, failed)
@Param			sspId	query		string	false	"System Security Plan ID"
@Param			limit	query		int		false	"Page size, default 25, max 100"	minimum(1)	maximum(100)
@Param			cursor	query		string	false	"Opaque pagination cursor"
@Success		200		{object}	handler.GenericDataListResponse[oscal.AiDiagnosticsRun]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/admin/ai-diagnostics/runs [get]

func (*AiDiagnosticsHandler) Summary added in v0.17.0

func (h *AiDiagnosticsHandler) Summary(ctx echo.Context) error

Summary godoc

@Summary		Get AI diagnostics summary
@Description	Returns cross-SSP dashboard suggestion totals, suggestion queue stats, and health checks for admins.
@Tags			AI Diagnostics
@Produce		json
@Success		200	{object}	handler.GenericDataResponse[oscal.AiDiagnosticsSummary]
@Failure		401	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/admin/ai-diagnostics/summary [get]

type AiDiagnosticsHealthCheck added in v0.17.0

type AiDiagnosticsHealthCheck struct {
	ID                 string   `json:"id"`
	Status             string   `json:"status"`
	Message            string   `json:"message"`
	RecommendedActions []string `json:"recommendedActions"`
}

type AiDiagnosticsQueue added in v0.17.0

type AiDiagnosticsQueue struct {
	Name              string     `json:"name"`
	MaxWorkers        int        `json:"maxWorkers"`
	Available         int64      `json:"available"`
	Running           int64      `json:"running"`
	Retryable         int64      `json:"retryable"`
	Scheduled         int64      `json:"scheduled"`
	Completed24h      int64      `json:"completed24h"`
	Discarded24h      int64      `json:"discarded24h"`
	OldestAvailableAt *time.Time `json:"oldestAvailableAt"`
}

type AiDiagnosticsRun added in v0.17.0

type AiDiagnosticsRun struct {
	ID                       string                `json:"id"`
	SSPID                    string                `json:"sspId"`
	SSPName                  string                `json:"sspName"`
	Status                   string                `json:"status"`
	Model                    string                `json:"model"`
	PromptVersion            string                `json:"promptVersion"`
	PlannedCalls             int                   `json:"plannedCalls"`
	CompletedCells           int                   `json:"completedCells"`
	FailedCells              int                   `json:"failedCells"`
	InputTokens              int                   `json:"inputTokens"`
	OutputTokens             int                   `json:"outputTokens"`
	CacheReadInputTokens     int                   `json:"cacheReadInputTokens"`
	CacheCreationInputTokens int                   `json:"cacheCreationInputTokens"`
	CacheHitRatio            float64               `json:"cacheHitRatio"`
	MappingsReturned         int                   `json:"mappingsReturned"`
	MappingsRejected         int                   `json:"mappingsRejected"`
	RateLimitedTotal         int                   `json:"rateLimitedTotal"`
	StartedAt                *time.Time            `json:"startedAt"`
	CompletedAt              *time.Time            `json:"completedAt"`
	DurationMs               int64                 `json:"durationMs"`
	TriggeredBy              *suggestionEventActor `json:"triggeredBy,omitempty"`
}

type AiDiagnosticsRunCell added in v0.17.0

type AiDiagnosticsRunCell struct {
	CellIndex                int        `json:"cellIndex"`
	Status                   string     `json:"status"`
	ControlKeys              []string   `json:"controlKeys"`
	LabelSetHashes           []string   `json:"labelSetHashes"`
	InputTokens              int        `json:"inputTokens"`
	OutputTokens             int        `json:"outputTokens"`
	CacheReadInputTokens     int        `json:"cacheReadInputTokens"`
	CacheCreationInputTokens int        `json:"cacheCreationInputTokens"`
	RateLimitedCount         int        `json:"rateLimitedCount"`
	MappingsReturned         int        `json:"mappingsReturned"`
	MappingsRejected         int        `json:"mappingsRejected"`
	Error                    *string    `json:"error"`
	CompletedAt              *time.Time `json:"completedAt"`
}

type AiDiagnosticsRunDetail added in v0.17.0

type AiDiagnosticsRunDetail struct {
	AiDiagnosticsRun
	Cells  []AiDiagnosticsRunCell             `json:"cells"`
	Events []dashboardSuggestionEventResponse `json:"events"`
}

type AiDiagnosticsSummary added in v0.17.0

type AiDiagnosticsSummary struct {
	Enabled bool                       `json:"enabled"`
	Config  AiDiagnosticsConfig        `json:"config"`
	Totals  AiDiagnosticsTotals        `json:"totals"`
	Queue   *AiDiagnosticsQueue        `json:"queue"`
	Checks  []AiDiagnosticsHealthCheck `json:"checks"`
}

type AiDiagnosticsTotals added in v0.17.0

type AiDiagnosticsTotals struct {
	Runs                     int64            `json:"runs"`
	RunsByStatus             map[string]int64 `json:"runsByStatus"`
	CellsCompleted           int64            `json:"cellsCompleted"`
	CellsFailed              int64            `json:"cellsFailed"`
	InputTokens              int64            `json:"inputTokens"`
	OutputTokens             int64            `json:"outputTokens"`
	CacheReadInputTokens     int64            `json:"cacheReadInputTokens"`
	CacheCreationInputTokens int64            `json:"cacheCreationInputTokens"`
	CacheHitRatio            float64          `json:"cacheHitRatio"`
	MappingsReturned         int64            `json:"mappingsReturned"`
	MappingsRejected         int64            `json:"mappingsRejected"`
	SuggestionsAccepted      int64            `json:"suggestionsAccepted"`
	SuggestionsRejected      int64            `json:"suggestionsRejected"`
	SuggestionsPending       int64            `json:"suggestionsPending"`
	RateLimitedTotal         int64            `json:"rateLimitedTotal"`
}

type ApplySuggestionRequest added in v0.13.0

type ApplySuggestionRequest struct {
	ComponentDefinitionID *uuid.UUID `json:"component-definition-id" binding:"required" format:"uuid"`
	DefinedComponentID    *uuid.UUID `json:"defined-component-id" binding:"required" format:"uuid"`
}

func (*ApplySuggestionRequest) Validate added in v0.13.0

func (r *ApplySuggestionRequest) Validate() error

type AssessmentPlanCreateRequest added in v0.4.2

type AssessmentPlanCreateRequest struct {
	Data *oscalTypes.AssessmentPlan
}

func (*AssessmentPlanCreateRequest) Validate added in v0.4.2

type AssessmentPlanHandler

type AssessmentPlanHandler struct {
	// contains filtered or unexported fields
}

func NewAssessmentPlanHandler

func NewAssessmentPlanHandler(sugar *zap.SugaredLogger, db *gorm.DB) *AssessmentPlanHandler

func (*AssessmentPlanHandler) AssociateTaskActivity added in v0.4.1

func (h *AssessmentPlanHandler) AssociateTaskActivity(ctx echo.Context) error

AssociateTaskActivity godoc

@Summary		Associate an Activity with a Task
@Description	Associates an existing Activity to a Task within an Assessment Plan.
@Tags			Assessment Plans
@Produce		json
@Param			id			path	string	true	"Assessment Plan ID"
@Param			taskId		path	string	true	"Task ID"
@Param			activityId	path	string	true	"Activity ID"
@Success		200			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/tasks/{taskId}/associated-activities/{activityId} [post]

func (*AssessmentPlanHandler) Create

func (h *AssessmentPlanHandler) Create(ctx echo.Context) error

Create godoc

@Summary		Create an Assessment Plan
@Description	Creates a new OSCAL Assessment Plan with comprehensive validation.
@Tags			Assessment Plans
@Accept			json
@Produce		json
@Param			plan	body		oscalTypes_1_1_3.AssessmentPlan									true	"Assessment Plan object with required fields: UUID, metadata (title, version), import-ssp"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AssessmentPlan]	"Successfully created assessment plan"
@Failure		400		{object}	api.Error														"Bad request - validation errors or malformed input"
@Failure		401		{object}	api.Error														"Unauthorized - invalid or missing JWT token"
@Failure		500		{object}	api.Error														"Internal server error"
@Security		OAuth2Password
@Router			/oscal/assessment-plans [post]

func (*AssessmentPlanHandler) CreateAssessmentAsset

func (h *AssessmentPlanHandler) CreateAssessmentAsset(ctx echo.Context) error

CreateAssessmentAsset godoc

@Summary		Create Assessment Plan Asset
@Description	Creates a new assessment asset for an Assessment Plan.
@Tags			Assessment Plans
@Accept			json
@Produce		json
@Param			id		path		string								true	"Assessment Plan ID"
@Param			asset	body		oscalTypes_1_1_3.AssessmentAssets	true	"Assessment Asset object"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AssessmentAssets]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/assessment-assets [post]

func (*AssessmentPlanHandler) CreateAssessmentSubject

func (h *AssessmentPlanHandler) CreateAssessmentSubject(ctx echo.Context) error

CreateAssessmentSubject godoc

@Summary		Create Assessment Plan Subject
@Description	Creates a new assessment subject for an Assessment Plan.
@Tags			Assessment Plans
@Accept			json
@Produce		json
@Param			id		path		string								true	"Assessment Plan ID"
@Param			subject	body		oscalTypes_1_1_3.AssessmentSubject	true	"Assessment Subject object"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AssessmentSubject]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/assessment-subjects [post]

func (*AssessmentPlanHandler) CreateTask

func (h *AssessmentPlanHandler) CreateTask(ctx echo.Context) error

CreateTask godoc

@Summary		Create Assessment Plan Task
@Description	Creates a new task for an Assessment Plan.
@Tags			Assessment Plans
@Accept			json
@Produce		json
@Param			id		path		string					true	"Assessment Plan ID"
@Param			task	body		oscalTypes_1_1_3.Task	true	"Task object"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Task]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/tasks [post]

func (*AssessmentPlanHandler) Delete

func (h *AssessmentPlanHandler) Delete(ctx echo.Context) error

Delete godoc

@Summary		Delete an Assessment Plan
@Description	Deletes an Assessment Plan by its unique ID.
@Tags			Assessment Plans
@Param			id	path	string	true	"Assessment Plan ID"
@Success		204	"No Content"
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id} [delete]

func (*AssessmentPlanHandler) DeleteAssessmentAsset

func (h *AssessmentPlanHandler) DeleteAssessmentAsset(ctx echo.Context) error

DeleteAssessmentAsset godoc

@Summary		Delete Assessment Plan Asset
@Description	Deletes an assessment asset from an Assessment Plan.
@Tags			Assessment Plans
@Param			id		path	string	true	"Assessment Plan ID"
@Param			assetId	path	string	true	"Assessment Asset ID"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/assessment-assets/{assetId} [delete]

func (*AssessmentPlanHandler) DeleteAssessmentSubject

func (h *AssessmentPlanHandler) DeleteAssessmentSubject(ctx echo.Context) error

DeleteAssessmentSubject godoc

@Summary		Delete Assessment Plan Subject
@Description	Deletes an assessment subject from an Assessment Plan.
@Tags			Assessment Plans
@Param			id			path	string	true	"Assessment Plan ID"
@Param			subjectId	path	string	true	"Assessment Subject ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/assessment-subjects/{subjectId} [delete]

func (*AssessmentPlanHandler) DeleteTask

func (h *AssessmentPlanHandler) DeleteTask(ctx echo.Context) error

DeleteTask godoc

@Summary		Delete Assessment Plan Task
@Description	Deletes a task from an Assessment Plan.
@Tags			Assessment Plans
@Param			id		path	string	true	"Assessment Plan ID"
@Param			taskId	path	string	true	"Task ID"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/tasks/{taskId} [delete]

func (*AssessmentPlanHandler) DisassociateTaskActivity added in v0.4.1

func (h *AssessmentPlanHandler) DisassociateTaskActivity(ctx echo.Context) error

DisassociateTaskActivity godoc

@Summary		Disassociate an Activity from a Task
@Description	Removes an association of an Activity from a Task within an Assessment Plan.
@Tags			Assessment Plans
@Param			id			path	string	true	"Assessment Plan ID"
@Param			taskId		path	string	true	"Task ID"
@Param			activityId	path	string	true	"Activity ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/tasks/{taskId}/associated-activities/{activityId} [delete]

func (*AssessmentPlanHandler) Full

func (h *AssessmentPlanHandler) Full(ctx echo.Context) error

Full godoc

@Summary		Get a full Assessment Plan
@Description	Retrieves a single Assessment Plan by its unique ID with all related data preloaded.
@Tags			Assessment Plans
@Produce		json
@Param			id	path		string	true	"Assessment Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AssessmentPlan]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/full [get]

func (*AssessmentPlanHandler) Get

Get godoc

@Summary		Get an Assessment Plan
@Description	Retrieves a single Assessment Plan by its unique ID.
@Tags			Assessment Plans
@Produce		json
@Param			id	path		string	true	"Assessment Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AssessmentPlan]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id} [get]

func (*AssessmentPlanHandler) GetAssessmentAssets

func (h *AssessmentPlanHandler) GetAssessmentAssets(ctx echo.Context) error

GetAssessmentAssets godoc

@Summary		Get Assessment Plan Assets
@Description	Retrieves all assessment assets for an Assessment Plan.
@Tags			Assessment Plans
@Produce		json
@Param			id	path		string	true	"Assessment Plan ID"
@Success		200	{object}	handler.GenericDataResponse[[]oscalTypes_1_1_3.AssessmentAssets]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/assessment-assets [get]

func (*AssessmentPlanHandler) GetAssessmentSubjects

func (h *AssessmentPlanHandler) GetAssessmentSubjects(ctx echo.Context) error

GetAssessmentSubjects godoc

@Summary		Get Assessment Plan Subjects
@Description	Retrieves all assessment subjects for an Assessment Plan.
@Tags			Assessment Plans
@Produce		json
@Param			id	path		string	true	"Assessment Plan ID"
@Success		200	{object}	handler.GenericDataResponse[[]oscalTypes_1_1_3.AssessmentSubject]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/assessment-subjects [get]

func (*AssessmentPlanHandler) GetBackMatter

func (h *AssessmentPlanHandler) GetBackMatter(ctx echo.Context) error

GetBackMatter godoc

@Summary		Get Assessment Plan Back Matter
@Description	Retrieves back matter for an Assessment Plan.
@Tags			Assessment Plans
@Produce		json
@Param			id	path		string	true	"Assessment Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.BackMatter]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/back-matter [get]

func (*AssessmentPlanHandler) GetImportSsp

func (h *AssessmentPlanHandler) GetImportSsp(ctx echo.Context) error

GetImportSsp godoc

@Summary		Get Assessment Plan Import SSP
@Description	Retrieves import SSP information for an Assessment Plan.
@Tags			Assessment Plans
@Produce		json
@Param			id	path		string	true	"Assessment Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ImportSsp]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/import-ssp [get]

func (*AssessmentPlanHandler) GetLocalDefinitions

func (h *AssessmentPlanHandler) GetLocalDefinitions(ctx echo.Context) error

GetLocalDefinitions godoc

@Summary		Get Assessment Plan Local Definitions
@Description	Retrieves local definitions for an Assessment Plan.
@Tags			Assessment Plans
@Produce		json
@Param			id	path		string	true	"Assessment Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.LocalDefinitions]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/local-definitions [get]

func (*AssessmentPlanHandler) GetMetadata

func (h *AssessmentPlanHandler) GetMetadata(ctx echo.Context) error

GetMetadata godoc

@Summary		Get Assessment Plan Metadata
@Description	Retrieves metadata for an Assessment Plan.
@Tags			Assessment Plans
@Produce		json
@Param			id	path		string	true	"Assessment Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Metadata]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/metadata [get]

func (*AssessmentPlanHandler) GetTaskActivities added in v0.4.1

func (h *AssessmentPlanHandler) GetTaskActivities(ctx echo.Context) error

GetTaskActivities godoc

@Summary		List Associated Activities for a Task
@Description	Retrieves all Activities associated with a specific Task in an Assessment Plan.
@Tags			Assessment Plans
@Produce		json
@Param			id		path		string	true	"Assessment Plan ID"
@Param			taskId	path		string	true	"Task ID"
@Success		200		{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.AssociatedActivity]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/tasks/{taskId}/associated-activities [get]

func (*AssessmentPlanHandler) GetTasks

func (h *AssessmentPlanHandler) GetTasks(ctx echo.Context) error

GetTasks godoc

@Summary		Get Assessment Plan Tasks
@Description	Retrieves all tasks for an Assessment Plan.
@Tags			Assessment Plans
@Produce		json
@Param			id	path		string	true	"Assessment Plan ID"
@Success		200	{object}	handler.GenericDataResponse[[]oscalTypes_1_1_3.Task]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/tasks [get]

func (*AssessmentPlanHandler) GetTermsAndConditions

func (h *AssessmentPlanHandler) GetTermsAndConditions(ctx echo.Context) error

GetTermsAndConditions godoc

@Summary		Get Assessment Plan Terms and Conditions
@Description	Retrieves terms and conditions for an Assessment Plan.
@Tags			Assessment Plans
@Produce		json
@Param			id	path		string	true	"Assessment Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AssessmentPlanTermsAndConditions]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/terms-and-conditions [get]

func (*AssessmentPlanHandler) List

func (h *AssessmentPlanHandler) List(ctx echo.Context) error

List godoc

@Summary		List Assessment Plans
@Description	Retrieves all Assessment Plans.
@Tags			Assessment Plans
@Produce		json
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.AssessmentPlan]
@Failure		400	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans [get]

func (*AssessmentPlanHandler) Register

func (h *AssessmentPlanHandler) Register(api *echo.Group, guard middleware.ResourceGuard)

Register registers Assessment Plan endpoints to the API group.

func (*AssessmentPlanHandler) Update

func (h *AssessmentPlanHandler) Update(ctx echo.Context) error

Update godoc

@Summary		Update an Assessment Plan
@Description	Updates an existing Assessment Plan.
@Tags			Assessment Plans
@Accept			json
@Produce		json
@Param			id		path		string							true	"Assessment Plan ID"
@Param			plan	body		oscalTypes_1_1_3.AssessmentPlan	true	"Assessment Plan object"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AssessmentPlan]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id} [put]

func (*AssessmentPlanHandler) UpdateAssessmentAsset

func (h *AssessmentPlanHandler) UpdateAssessmentAsset(ctx echo.Context) error

UpdateAssessmentAsset godoc

@Summary		Update Assessment Plan Asset
@Description	Updates an existing assessment asset for an Assessment Plan.
@Tags			Assessment Plans
@Accept			json
@Produce		json
@Param			id		path		string								true	"Assessment Plan ID"
@Param			assetId	path		string								true	"Assessment Asset ID"
@Param			asset	body		oscalTypes_1_1_3.AssessmentAssets	true	"Assessment Asset object"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AssessmentAssets]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/assessment-assets/{assetId} [put]

func (*AssessmentPlanHandler) UpdateAssessmentSubject

func (h *AssessmentPlanHandler) UpdateAssessmentSubject(ctx echo.Context) error

UpdateAssessmentSubject godoc

@Summary		Update Assessment Plan Subject
@Description	Updates an existing assessment subject for an Assessment Plan.
@Tags			Assessment Plans
@Accept			json
@Produce		json
@Param			id			path		string								true	"Assessment Plan ID"
@Param			subjectId	path		string								true	"Assessment Subject ID"
@Param			subject		body		oscalTypes_1_1_3.AssessmentSubject	true	"Assessment Subject object"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AssessmentSubject]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/assessment-subjects/{subjectId} [put]

func (*AssessmentPlanHandler) UpdateTask

func (h *AssessmentPlanHandler) UpdateTask(ctx echo.Context) error

UpdateTask godoc

@Summary		Update Assessment Plan Task
@Description	Updates an existing task for an Assessment Plan.
@Tags			Assessment Plans
@Accept			json
@Produce		json
@Param			id		path		string					true	"Assessment Plan ID"
@Param			taskId	path		string					true	"Task ID"
@Param			task	body		oscalTypes_1_1_3.Task	true	"Task object"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Task]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-plans/{id}/tasks/{taskId} [put]

type AssessmentPlanUpdateRequest added in v0.4.2

type AssessmentPlanUpdateRequest struct {
	Data *oscalTypes.AssessmentPlan
}

func (*AssessmentPlanUpdateRequest) Validate added in v0.4.2

type AssessmentResultsHandler added in v0.4.2

type AssessmentResultsHandler struct {
	// contains filtered or unexported fields
}

AssessmentResultsHandler handles OSCAL Assessment Results endpoints.

@Tags	Assessment Results

All types are defined in oscalTypes_1_1_3 (see types.go)

func NewAssessmentResultsHandler added in v0.4.2

func NewAssessmentResultsHandler(sugar *zap.SugaredLogger, db *gorm.DB) *AssessmentResultsHandler

NewAssessmentResultsHandler creates a new handler for Assessment Results endpoints.

func (*AssessmentResultsHandler) AssociateResultFinding added in v0.4.2

func (h *AssessmentResultsHandler) AssociateResultFinding(ctx echo.Context) error

AssociateResultFinding godoc

@Summary		Associate a Finding with a Result
@Description	Associates an existing Finding to a Result within an Assessment Results.
@Tags			Assessment Results
@Produce		json
@Param			id			path	string	true	"Assessment Results ID"
@Param			resultId	path	string	true	"Result ID"
@Param			findingId	path	string	true	"Finding ID"
@Success		200			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/associated-findings/{findingId} [post]

func (*AssessmentResultsHandler) AssociateResultObservation added in v0.4.2

func (h *AssessmentResultsHandler) AssociateResultObservation(ctx echo.Context) error

AssociateResultObservation godoc

@Summary		Associate an Observation with a Result
@Description	Associates an existing Observation to a Result within an Assessment Results.
@Tags			Assessment Results
@Produce		json
@Param			id				path	string	true	"Assessment Results ID"
@Param			resultId		path	string	true	"Result ID"
@Param			observationId	path	string	true	"Observation ID"
@Success		200				"No Content"
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/associated-observations/{observationId} [post]

func (*AssessmentResultsHandler) AssociateResultRisk added in v0.4.2

func (h *AssessmentResultsHandler) AssociateResultRisk(ctx echo.Context) error

AssociateResultRisk godoc

@Summary		Associate a Risk with a Result
@Description	Associates an existing Risk to a Result within an Assessment Results.
@Tags			Assessment Results
@Produce		json
@Param			id			path	string	true	"Assessment Results ID"
@Param			resultId	path	string	true	"Result ID"
@Param			riskId		path	string	true	"Risk ID"
@Success		200			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/associated-risks/{riskId} [post]

func (*AssessmentResultsHandler) Create added in v0.4.2

func (h *AssessmentResultsHandler) Create(ctx echo.Context) error

Create godoc

@Summary		Create an Assessment Results
@Description	Creates an Assessment Results from input.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			ar	body		oscalTypes_1_1_3.AssessmentResults	true	"Assessment Results data"
@Success		201	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AssessmentResults]
@Failure		400	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results [post]

func (*AssessmentResultsHandler) CreateBackMatter added in v0.4.2

func (h *AssessmentResultsHandler) CreateBackMatter(ctx echo.Context) error

CreateBackMatter godoc

@Summary		Create back matter
@Description	Creates or replaces the back matter for an Assessment Results.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string						true	"Assessment Results ID"
@Param			backMatter	body		oscalTypes_1_1_3.BackMatter	true	"Back Matter"
@Success		201			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.BackMatter]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/back-matter [post]

func (*AssessmentResultsHandler) CreateBackMatterResource added in v0.4.2

func (h *AssessmentResultsHandler) CreateBackMatterResource(ctx echo.Context) error

CreateBackMatterResource godoc

@Summary		Create back matter resource
@Description	Creates a new resource in the back matter for an Assessment Results.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string						true	"Assessment Results ID"
@Param			resource	body		oscalTypes_1_1_3.Resource	true	"Resource"
@Success		201			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Resource]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/back-matter/resources [post]

func (*AssessmentResultsHandler) CreateResult added in v0.4.2

func (h *AssessmentResultsHandler) CreateResult(ctx echo.Context) error

CreateResult godoc

@Summary		Create a result for an Assessment Results
@Description	Creates a new result for a given Assessment Results.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id		path		string					true	"Assessment Results ID"
@Param			result	body		oscalTypes_1_1_3.Result	true	"Result data"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Result]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results [post]

func (*AssessmentResultsHandler) CreateResultAttestation added in v0.4.2

func (h *AssessmentResultsHandler) CreateResultAttestation(ctx echo.Context) error

CreateResultAttestation godoc

@Summary		Create an attestation for a result
@Description	Creates a new attestation for a given result.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string									true	"Assessment Results ID"
@Param			resultId	path		string									true	"Result ID"
@Param			attestation	body		oscalTypes_1_1_3.AttestationStatements	true	"Attestation data"
@Success		201			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AttestationStatements]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/attestations [post]

func (*AssessmentResultsHandler) CreateResultFinding added in v0.4.2

func (h *AssessmentResultsHandler) CreateResultFinding(ctx echo.Context) error

CreateResultFinding godoc

@Summary		Create a finding for a result
@Description	Creates a new finding for a given result.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string						true	"Assessment Results ID"
@Param			resultId	path		string						true	"Result ID"
@Param			finding		body		oscalTypes_1_1_3.Finding	true	"Finding data"
@Success		201			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Finding]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/findings [post]

func (*AssessmentResultsHandler) CreateResultObservation added in v0.4.2

func (h *AssessmentResultsHandler) CreateResultObservation(ctx echo.Context) error

CreateResultObservation godoc

@Summary		Create an observation for a result
@Description	Creates a new observation for a given result.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string							true	"Assessment Results ID"
@Param			resultId	path		string							true	"Result ID"
@Param			observation	body		oscalTypes_1_1_3.Observation	true	"Observation data"
@Success		201			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Observation]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/observations [post]

func (*AssessmentResultsHandler) CreateResultRisk added in v0.4.2

func (h *AssessmentResultsHandler) CreateResultRisk(ctx echo.Context) error

CreateResultRisk godoc

@Summary		Create a risk for a result
@Description	Creates a new risk for a given result.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string					true	"Assessment Results ID"
@Param			resultId	path		string					true	"Result ID"
@Param			risk		body		oscalTypes_1_1_3.Risk	true	"Risk data"
@Success		201			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Risk]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/risks [post]

func (*AssessmentResultsHandler) Delete added in v0.4.2

func (h *AssessmentResultsHandler) Delete(ctx echo.Context) error

Delete godoc

@Summary		Delete an Assessment Results
@Description	Deletes an Assessment Results by its ID.
@Tags			Assessment Results
@Param			id	path	string	true	"Assessment Results ID"
@Success		204	"No Content"
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id} [delete]

func (*AssessmentResultsHandler) DeleteBackMatter added in v0.4.2

func (h *AssessmentResultsHandler) DeleteBackMatter(ctx echo.Context) error

DeleteBackMatter godoc

@Summary		Delete back matter
@Description	Deletes the back matter for an Assessment Results.
@Tags			Assessment Results
@Param			id	path	string	true	"Assessment Results ID"
@Success		204	"No Content"
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/back-matter [delete]

func (*AssessmentResultsHandler) DeleteBackMatterResource added in v0.4.2

func (h *AssessmentResultsHandler) DeleteBackMatterResource(ctx echo.Context) error

DeleteBackMatterResource godoc

@Summary		Delete back matter resource
@Description	Deletes a specific resource from the back matter for an Assessment Results.
@Tags			Assessment Results
@Param			id			path	string	true	"Assessment Results ID"
@Param			resourceId	path	string	true	"Resource ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/back-matter/resources/{resourceId} [delete]

func (*AssessmentResultsHandler) DeleteResult added in v0.4.2

func (h *AssessmentResultsHandler) DeleteResult(ctx echo.Context) error

DeleteResult godoc

@Summary		Delete a result
@Description	Deletes a specific result from an Assessment Results.
@Tags			Assessment Results
@Param			id			path	string	true	"Assessment Results ID"
@Param			resultId	path	string	true	"Result ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId} [delete]

func (*AssessmentResultsHandler) DeleteResultAttestation added in v0.4.2

func (h *AssessmentResultsHandler) DeleteResultAttestation(ctx echo.Context) error

DeleteResultAttestation godoc

@Summary		Delete an attestation
@Description	Deletes a specific attestation from a result.
@Tags			Assessment Results
@Param			id				path	string	true	"Assessment Results ID"
@Param			resultId		path	string	true	"Result ID"
@Param			attestationId	path	string	true	"Attestation ID"
@Success		204				"No Content"
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/attestations/{attestationId} [delete]

func (*AssessmentResultsHandler) DeleteResultFinding added in v0.4.2

func (h *AssessmentResultsHandler) DeleteResultFinding(ctx echo.Context) error

DeleteResultFinding godoc

@Summary		Delete a finding
@Description	Deletes a specific finding from a result.
@Tags			Assessment Results
@Param			id			path	string	true	"Assessment Results ID"
@Param			resultId	path	string	true	"Result ID"
@Param			findingId	path	string	true	"Finding ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/findings/{findingId} [delete]

func (*AssessmentResultsHandler) DeleteResultObservation added in v0.4.2

func (h *AssessmentResultsHandler) DeleteResultObservation(ctx echo.Context) error

DeleteResultObservation godoc

@Summary		Delete an observation
@Description	Deletes a specific observation from a result.
@Tags			Assessment Results
@Param			id			path	string	true	"Assessment Results ID"
@Param			resultId	path	string	true	"Result ID"
@Param			obsId		path	string	true	"Observation ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/observations/{obsId} [delete]

func (*AssessmentResultsHandler) DeleteResultRisk added in v0.4.2

func (h *AssessmentResultsHandler) DeleteResultRisk(ctx echo.Context) error

DeleteResultRisk godoc

@Summary		Delete a risk
@Description	Deletes a specific risk from a result.
@Tags			Assessment Results
@Param			id			path	string	true	"Assessment Results ID"
@Param			resultId	path	string	true	"Result ID"
@Param			riskId		path	string	true	"Risk ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/risks/{riskId} [delete]

func (*AssessmentResultsHandler) DisassociateResultFinding added in v0.4.2

func (h *AssessmentResultsHandler) DisassociateResultFinding(ctx echo.Context) error

DisassociateResultFinding godoc

@Summary		Disassociate a Finding from a Result
@Description	Removes an association of a Finding from a Result within an Assessment Results.
@Tags			Assessment Results
@Param			id			path	string	true	"Assessment Results ID"
@Param			resultId	path	string	true	"Result ID"
@Param			findingId	path	string	true	"Finding ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/associated-findings/{findingId} [delete]

func (*AssessmentResultsHandler) DisassociateResultObservation added in v0.4.2

func (h *AssessmentResultsHandler) DisassociateResultObservation(ctx echo.Context) error

DisassociateResultObservation godoc

@Summary		Disassociate an Observation from a Result
@Description	Removes an association of an Observation from a Result within an Assessment Results.
@Tags			Assessment Results
@Param			id				path	string	true	"Assessment Results ID"
@Param			resultId		path	string	true	"Result ID"
@Param			observationId	path	string	true	"Observation ID"
@Success		204				"No Content"
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/associated-observations/{observationId} [delete]

func (*AssessmentResultsHandler) DisassociateResultRisk added in v0.4.2

func (h *AssessmentResultsHandler) DisassociateResultRisk(ctx echo.Context) error

DisassociateResultRisk godoc

@Summary		Disassociate a Risk from a Result
@Description	Removes an association of a Risk from a Result within an Assessment Results.
@Tags			Assessment Results
@Param			id			path	string	true	"Assessment Results ID"
@Param			resultId	path	string	true	"Result ID"
@Param			riskId		path	string	true	"Risk ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/associated-risks/{riskId} [delete]

func (*AssessmentResultsHandler) Full added in v0.4.2

Full godoc

@Summary		Get a complete Assessment Results
@Description	Retrieves a complete Assessment Results by its ID, including all metadata and related objects.
@Tags			Assessment Results
@Produce		json
@Param			id	path		string	true	"Assessment Results ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AssessmentResults]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/full [get]

func (*AssessmentResultsHandler) Get added in v0.4.2

Get godoc

@Summary		Get an Assessment Results
@Description	Retrieves a single Assessment Results by its unique ID.
@Tags			Assessment Results
@Produce		json
@Param			id	path		string	true	"Assessment Results ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AssessmentResults]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id} [get]

func (*AssessmentResultsHandler) GetAllFindings added in v0.4.2

func (h *AssessmentResultsHandler) GetAllFindings(ctx echo.Context) error

GetAllFindings godoc

@Summary		List all findings available for association
@Description	Retrieves all findings in the system that can be associated with results.
@Tags			Assessment Results
@Produce		json
@Param			id	path		string	true	"Assessment Results ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Finding]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/findings [get]

func (*AssessmentResultsHandler) GetAllObservations added in v0.4.2

func (h *AssessmentResultsHandler) GetAllObservations(ctx echo.Context) error

GetAllObservations godoc

@Summary		List all observations available for association
@Description	Retrieves all observations in the system that can be associated with results.
@Tags			Assessment Results
@Produce		json
@Param			id	path		string	true	"Assessment Results ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Observation]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/observations [get]

func (*AssessmentResultsHandler) GetAllRisks added in v0.4.2

func (h *AssessmentResultsHandler) GetAllRisks(ctx echo.Context) error

GetAllRisks godoc

@Summary		List all risks available for association
@Description	Retrieves all risks in the system that can be associated with results.
@Tags			Assessment Results
@Produce		json
@Param			id	path		string	true	"Assessment Results ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Risk]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/risks [get]

func (*AssessmentResultsHandler) GetAvailableControls added in v0.4.2

func (h *AssessmentResultsHandler) GetAvailableControls(ctx echo.Context) error

GetAvailableControls godoc

@Summary		Get available controls for findings
@Description	Retrieves controls that can be referenced in findings
@Tags			Assessment Results
@Produce		json
@Param			id	path		string	true	"Assessment Results ID"
@Success		200	{object}	handler.GenericDataListResponse[[]oscalTypes_1_1_3.Control]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/available-controls [get]

func (*AssessmentResultsHandler) GetBackMatter added in v0.4.2

func (h *AssessmentResultsHandler) GetBackMatter(ctx echo.Context) error

GetBackMatter godoc

@Summary		Get back matter
@Description	Retrieves the back matter for an Assessment Results.
@Tags			Assessment Results
@Produce		json
@Param			id	path		string	true	"Assessment Results ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.BackMatter]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/back-matter [get]

func (*AssessmentResultsHandler) GetBackMatterResources added in v0.4.2

func (h *AssessmentResultsHandler) GetBackMatterResources(ctx echo.Context) error

GetBackMatterResources godoc

@Summary		Get back matter resources
@Description	Retrieves all resources from the back matter for an Assessment Results.
@Tags			Assessment Results
@Produce		json
@Param			id	path		string	true	"Assessment Results ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Resource]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/back-matter/resources [get]

func (*AssessmentResultsHandler) GetControlDetails added in v0.4.2

func (h *AssessmentResultsHandler) GetControlDetails(ctx echo.Context) error

GetControlDetails godoc

@Summary		Get control details with statements and objectives
@Description	Retrieves a control with all its parts for reference in findings
@Tags			Assessment Results
@Produce		json
@Param			id			path		string	true	"Assessment Results ID"
@Param			controlId	path		string	true	"Control ID"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Control]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/control/{controlId} [get]

func (*AssessmentResultsHandler) GetImportAp added in v0.4.2

func (h *AssessmentResultsHandler) GetImportAp(ctx echo.Context) error

GetImportAp godoc

@Summary		Get Assessment Results import-ap
@Description	Retrieves import-ap for a given Assessment Results.
@Tags			Assessment Results
@Produce		json
@Param			id	path		string	true	"Assessment Results ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ImportAp]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/import-ap [get]

func (*AssessmentResultsHandler) GetLocalDefinitions added in v0.4.2

func (h *AssessmentResultsHandler) GetLocalDefinitions(ctx echo.Context) error

GetLocalDefinitions godoc

@Summary		Get Assessment Results local-definitions
@Description	Retrieves local-definitions for a given Assessment Results.
@Tags			Assessment Results
@Produce		json
@Param			id	path		string	true	"Assessment Results ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.LocalDefinitions]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/local-definitions [get]

func (*AssessmentResultsHandler) GetMetadata added in v0.4.2

func (h *AssessmentResultsHandler) GetMetadata(ctx echo.Context) error

GetMetadata godoc

@Summary		Get Assessment Results metadata
@Description	Retrieves metadata for a given Assessment Results.
@Tags			Assessment Results
@Produce		json
@Param			id	path		string	true	"Assessment Results ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Metadata]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/metadata [get]

func (*AssessmentResultsHandler) GetResult added in v0.4.2

func (h *AssessmentResultsHandler) GetResult(ctx echo.Context) error

GetResult godoc

@Summary		Get a specific result
@Description	Retrieves a specific result from an Assessment Results.
@Tags			Assessment Results
@Produce		json
@Param			id			path		string	true	"Assessment Results ID"
@Param			resultId	path		string	true	"Result ID"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Result]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId} [get]

func (*AssessmentResultsHandler) GetResultAssociatedFindings added in v0.4.2

func (h *AssessmentResultsHandler) GetResultAssociatedFindings(ctx echo.Context) error

GetResultAssociatedFindings godoc

@Summary		List Associated Findings for a Result
@Description	Retrieves all Findings associated with a specific Result in an Assessment Results.
@Tags			Assessment Results
@Produce		json
@Param			id			path		string	true	"Assessment Results ID"
@Param			resultId	path		string	true	"Result ID"
@Success		200			{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Finding]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/associated-findings [get]

func (*AssessmentResultsHandler) GetResultAssociatedObservations added in v0.4.2

func (h *AssessmentResultsHandler) GetResultAssociatedObservations(ctx echo.Context) error

GetResultAssociatedObservations godoc

@Summary		List Associated Observations for a Result
@Description	Retrieves all Observations associated with a specific Result in an Assessment Results.
@Tags			Assessment Results
@Produce		json
@Param			id			path		string	true	"Assessment Results ID"
@Param			resultId	path		string	true	"Result ID"
@Success		200			{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Observation]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/associated-observations [get]

func (*AssessmentResultsHandler) GetResultAssociatedRisks added in v0.4.2

func (h *AssessmentResultsHandler) GetResultAssociatedRisks(ctx echo.Context) error

GetResultAssociatedRisks godoc

@Summary		List Associated Risks for a Result
@Description	Retrieves all Risks associated with a specific Result in an Assessment Results.
@Tags			Assessment Results
@Produce		json
@Param			id			path		string	true	"Assessment Results ID"
@Param			resultId	path		string	true	"Result ID"
@Success		200			{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Risk]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/associated-risks [get]

func (*AssessmentResultsHandler) GetResultAttestations added in v0.4.2

func (h *AssessmentResultsHandler) GetResultAttestations(ctx echo.Context) error

GetResultAttestations godoc

@Summary		Get attestations for a result
@Description	Retrieves all attestations for a given result.
@Tags			Assessment Results
@Produce		json
@Param			id			path		string	true	"Assessment Results ID"
@Param			resultId	path		string	true	"Result ID"
@Success		200			{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.AttestationStatements]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/attestations [get]

func (*AssessmentResultsHandler) GetResultFindings added in v0.4.2

func (h *AssessmentResultsHandler) GetResultFindings(ctx echo.Context) error

GetResultFindings godoc

@Summary		Get findings for a result
@Description	Retrieves all findings for a given result.
@Tags			Assessment Results
@Produce		json
@Param			id			path		string	true	"Assessment Results ID"
@Param			resultId	path		string	true	"Result ID"
@Success		200			{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Finding]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/findings [get]

func (*AssessmentResultsHandler) GetResultObservations added in v0.4.2

func (h *AssessmentResultsHandler) GetResultObservations(ctx echo.Context) error

GetResultObservations godoc

@Summary		Get observations for a result
@Description	Retrieves all observations for a given result.
@Tags			Assessment Results
@Produce		json
@Param			id			path		string	true	"Assessment Results ID"
@Param			resultId	path		string	true	"Result ID"
@Success		200			{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Observation]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/observations [get]

func (*AssessmentResultsHandler) GetResultRisks added in v0.4.2

func (h *AssessmentResultsHandler) GetResultRisks(ctx echo.Context) error

GetResultRisks godoc

@Summary		Get risks for a result
@Description	Retrieves all risks for a given result.
@Tags			Assessment Results
@Produce		json
@Param			id			path		string	true	"Assessment Results ID"
@Param			resultId	path		string	true	"Result ID"
@Success		200			{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Risk]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/risks [get]

func (*AssessmentResultsHandler) GetResults added in v0.4.2

func (h *AssessmentResultsHandler) GetResults(ctx echo.Context) error

GetResults godoc

@Summary		Get results for an Assessment Results
@Description	Retrieves all results for a given Assessment Results.
@Tags			Assessment Results
@Produce		json
@Param			id	path		string	true	"Assessment Results ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Result]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results [get]

func (*AssessmentResultsHandler) List added in v0.4.2

List godoc

@Summary		List Assessment Results
@Description	Retrieves all Assessment Results.
@Tags			Assessment Results
@Produce		json
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.AssessmentResults]
@Failure		400	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results [get]

func (*AssessmentResultsHandler) Register added in v0.4.2

func (h *AssessmentResultsHandler) Register(api *echo.Group, guard middleware.ResourceGuard)

Register registers Assessment Results endpoints to the API group.

func (*AssessmentResultsHandler) Update added in v0.4.2

func (h *AssessmentResultsHandler) Update(ctx echo.Context) error

Update godoc

@Summary		Update an Assessment Results
@Description	Updates an existing Assessment Results.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id	path		string								true	"Assessment Results ID"
@Param			ar	body		oscalTypes_1_1_3.AssessmentResults	true	"Updated Assessment Results object"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AssessmentResults]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id} [put]

func (*AssessmentResultsHandler) UpdateBackMatter added in v0.4.2

func (h *AssessmentResultsHandler) UpdateBackMatter(ctx echo.Context) error

UpdateBackMatter godoc

@Summary		Update back matter
@Description	Updates the back matter for an Assessment Results.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string						true	"Assessment Results ID"
@Param			backMatter	body		oscalTypes_1_1_3.BackMatter	true	"Back Matter"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.BackMatter]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/back-matter [put]

func (*AssessmentResultsHandler) UpdateBackMatterResource added in v0.4.2

func (h *AssessmentResultsHandler) UpdateBackMatterResource(ctx echo.Context) error

UpdateBackMatterResource godoc

@Summary		Update back matter resource
@Description	Updates a specific resource in the back matter for an Assessment Results.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string						true	"Assessment Results ID"
@Param			resourceId	path		string						true	"Resource ID"
@Param			resource	body		oscalTypes_1_1_3.Resource	true	"Resource"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Resource]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/back-matter/resources/{resourceId} [put]

func (*AssessmentResultsHandler) UpdateImportAp added in v0.4.2

func (h *AssessmentResultsHandler) UpdateImportAp(ctx echo.Context) error

UpdateImportAp godoc

@Summary		Update Assessment Results import-ap
@Description	Updates import-ap for a given Assessment Results.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string						true	"Assessment Results ID"
@Param			importAp	body		oscalTypes_1_1_3.ImportAp	true	"Import AP data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ImportAp]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/import-ap [put]

func (*AssessmentResultsHandler) UpdateLocalDefinitions added in v0.4.2

func (h *AssessmentResultsHandler) UpdateLocalDefinitions(ctx echo.Context) error

UpdateLocalDefinitions godoc

@Summary		Update Assessment Results local-definitions
@Description	Updates local-definitions for a given Assessment Results.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id					path		string								true	"Assessment Results ID"
@Param			localDefinitions	body		oscalTypes_1_1_3.LocalDefinitions	true	"Local definitions data"
@Success		200					{object}	handler.GenericDataResponse[oscalTypes_1_1_3.LocalDefinitions]
@Failure		400					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/local-definitions [put]

func (*AssessmentResultsHandler) UpdateMetadata added in v0.4.2

func (h *AssessmentResultsHandler) UpdateMetadata(ctx echo.Context) error

UpdateMetadata godoc

@Summary		Update Assessment Results metadata
@Description	Updates metadata for a given Assessment Results.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string						true	"Assessment Results ID"
@Param			metadata	body		oscalTypes_1_1_3.Metadata	true	"Metadata data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Metadata]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/metadata [put]

func (*AssessmentResultsHandler) UpdateResult added in v0.4.2

func (h *AssessmentResultsHandler) UpdateResult(ctx echo.Context) error

UpdateResult godoc

@Summary		Update a result
@Description	Updates a specific result in an Assessment Results.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string					true	"Assessment Results ID"
@Param			resultId	path		string					true	"Result ID"
@Param			result		body		oscalTypes_1_1_3.Result	true	"Result data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Result]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId} [put]

func (*AssessmentResultsHandler) UpdateResultAttestation added in v0.4.2

func (h *AssessmentResultsHandler) UpdateResultAttestation(ctx echo.Context) error

UpdateResultAttestation godoc

@Summary		Update an attestation
@Description	Updates a specific attestation in a result.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id				path		string									true	"Assessment Results ID"
@Param			resultId		path		string									true	"Result ID"
@Param			attestationId	path		string									true	"Attestation ID"
@Param			attestation		body		oscalTypes_1_1_3.AttestationStatements	true	"Attestation data"
@Success		200				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AttestationStatements]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/attestations/{attestationId} [put]

func (*AssessmentResultsHandler) UpdateResultFinding added in v0.4.2

func (h *AssessmentResultsHandler) UpdateResultFinding(ctx echo.Context) error

UpdateResultFinding godoc

@Summary		Update a finding
@Description	Updates a specific finding in a result.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string						true	"Assessment Results ID"
@Param			resultId	path		string						true	"Result ID"
@Param			findingId	path		string						true	"Finding ID"
@Param			finding		body		oscalTypes_1_1_3.Finding	true	"Finding data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Finding]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/findings/{findingId} [put]

func (*AssessmentResultsHandler) UpdateResultObservation added in v0.4.2

func (h *AssessmentResultsHandler) UpdateResultObservation(ctx echo.Context) error

UpdateResultObservation godoc

@Summary		Update an observation
@Description	Updates a specific observation in a result.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string							true	"Assessment Results ID"
@Param			resultId	path		string							true	"Result ID"
@Param			obsId		path		string							true	"Observation ID"
@Param			observation	body		oscalTypes_1_1_3.Observation	true	"Observation data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Observation]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/observations/{obsId} [put]

func (*AssessmentResultsHandler) UpdateResultRisk added in v0.4.2

func (h *AssessmentResultsHandler) UpdateResultRisk(ctx echo.Context) error

UpdateResultRisk godoc

@Summary		Update a risk
@Description	Updates a specific risk in a result.
@Tags			Assessment Results
@Accept			json
@Produce		json
@Param			id			path		string					true	"Assessment Results ID"
@Param			resultId	path		string					true	"Result ID"
@Param			riskId		path		string					true	"Risk ID"
@Param			risk		body		oscalTypes_1_1_3.Risk	true	"Risk data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Risk]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/assessment-results/{id}/results/{resultId}/risks/{riskId} [put]

type BuildByPropsRequest added in v0.12.0

type BuildByPropsRequest struct {
	CatalogID     string `json:"catalogId"`
	MatchStrategy string `json:"matchStrategy"` // all | any
	Rules         []rule `json:"rules"`
	Title         string `json:"title"`
	Version       string `json:"version"`
}

BuildByPropsRequest represents the payload to build a Profile by matching control props.

type BuildByPropsResponse added in v0.12.0

type BuildByPropsResponse struct {
	ProfileID  uuid.UUID                `json:"profileId"`
	ControlIDs []string                 `json:"controlIds"`
	Profile    oscalTypes_1_1_3.Profile `json:"profile"`
}

BuildByPropsResponse represents the response payload for Profile build-by-props.

type CatalogHandler

type CatalogHandler struct {
	// contains filtered or unexported fields
}

func NewCatalogHandler

func NewCatalogHandler(l *zap.SugaredLogger, db *gorm.DB) *CatalogHandler

func (*CatalogHandler) Create

func (h *CatalogHandler) Create(ctx echo.Context) error

@Summary Create a new Catalog @Description Creates a new OSCAL Catalog. The catalog type may be supplied via the ?type= query param or a catalog-type metadata prop; it defaults to standard. @Tags Catalog @Accept json @Produce json @Param catalog body oscalTypes_1_1_3.Catalog true "Catalog object" @Param type query string false "Catalog type (standard|policy|procedure); overrides any metadata prop" @Success 201 {object} handler.GenericDataResponse[oscalTypes_1_1_3.Catalog] @Failure 400 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/catalogs [post]

func (*CatalogHandler) CreateControl

func (h *CatalogHandler) CreateControl(ctx echo.Context) error

@Summary Create a new Control for a Catalog @Description Adds a top-level control under the specified Catalog. @Tags Catalog @Accept json @Produce json @Param id path string true "Catalog ID" @Param control body oscalTypes_1_1_3.Control true "Control object" @Success 201 {object} handler.GenericDataResponse[oscalTypes_1_1_3.Control] @Failure 400 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/catalogs/{id}/controls [post]

func (*CatalogHandler) CreateControlSubControl

func (h *CatalogHandler) CreateControlSubControl(ctx echo.Context) error

@Summary Create a new Sub-Control for a Control within a Catalog @Description Adds a child control under the specified Catalog Control. @Tags Catalog @Accept json @Produce json @Param id path string true "Catalog ID" @Param control path string true "Parent Control ID" @Param control body oscalTypes_1_1_3.Control true "Control object" @Success 201 {object} handler.GenericDataResponse[oscalTypes_1_1_3.Control] @Failure 400 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/catalogs/{id}/controls/{control}/controls [post]

func (*CatalogHandler) CreateGroup

func (h *CatalogHandler) CreateGroup(ctx echo.Context) error

@Summary Create a new Group for a Catalog @Description Adds a top-level group under the specified Catalog. @Tags Catalog @Accept json @Produce json @Param id path string true "Catalog ID" @Param group body oscalTypes_1_1_3.Group true "Group object" @Success 201 {object} handler.GenericDataResponse[oscalTypes_1_1_3.Group] @Failure 400 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/catalogs/{id}/groups [post]

func (*CatalogHandler) CreateGroupControl

func (h *CatalogHandler) CreateGroupControl(ctx echo.Context) error

CreateGroupControl godoc

@Summary		Create a new Control for a Catalog Group
@Description	Adds a control under the specified Catalog and Group.
@Tags			Catalog
@Accept			json
@Produce		json
@Param			id		path		string						true	"Catalog ID"
@Param			group	path		string						true	"Parent Group ID"
@Param			control	body		oscalTypes_1_1_3.Control	true	"Control object"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Control]
@Failure		400		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/catalogs/{id}/groups/{group}/controls [post]

func (*CatalogHandler) CreateGroupSubGroup

func (h *CatalogHandler) CreateGroupSubGroup(ctx echo.Context) error

@Summary Create a new Sub-Group for a Catalog Group @Description Adds a sub-group under the specified Catalog and Group. @Tags Catalog @Accept json @Produce json @Param id path string true "Catalog ID" @Param group path string true "Parent Group ID" @Param group body oscalTypes_1_1_3.Group true "Group object" @Success 201 {object} handler.GenericDataResponse[oscalTypes_1_1_3.Group] @Failure 400 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/catalogs/{id}/groups/{group}/groups [post]

func (*CatalogHandler) Delete added in v0.9.0

func (h *CatalogHandler) Delete(ctx echo.Context) error

Delete godoc

@Summary		Delete a Catalog (cascade)
@Description	Deletes a Catalog and cascades to related groups/controls, metadata and back-matter.
@Tags			Catalog
@Param			id	path	string	true	"Catalog ID"
@Success		204	"No Content"
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/catalogs/{id} [delete]

func (*CatalogHandler) DeleteControl added in v0.9.0

func (h *CatalogHandler) DeleteControl(ctx echo.Context) error

DeleteControl godoc

@Summary		Delete a Control (cascade)
@Description	Deletes a Control and cascades to nested children; clears filter associations.
@Tags			Catalog
@Param			id		path	string	true	"Catalog ID"
@Param			control	path	string	true	"Control ID"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/catalogs/{id}/controls/{control} [delete]

func (*CatalogHandler) DeleteGroup added in v0.9.0

func (h *CatalogHandler) DeleteGroup(ctx echo.Context) error

DeleteGroup godoc

@Summary		Delete a Group (cascade)
@Description	Deletes a Group and cascades to nested groups and controls.
@Tags			Catalog
@Param			id		path	string	true	"Catalog ID"
@Param			group	path	string	true	"Group ID"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/catalogs/{id}/groups/{group} [delete]

func (*CatalogHandler) Full

func (h *CatalogHandler) Full(ctx echo.Context) error

func (*CatalogHandler) Get

func (h *CatalogHandler) Get(ctx echo.Context) error

Get godoc

@Summary		Get a Catalog
@Description	Retrieves a single Catalog by its unique ID.
@Tags			Catalog
@Produce		json
@Param			id	path		string	true	"Catalog ID"

@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Catalog]

@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/catalogs/{id} [get]

func (*CatalogHandler) GetAllControls added in v0.12.0

func (h *CatalogHandler) GetAllControls(ctx echo.Context) error

@Summary List controls for a Catalog @Description Retrieves the top-level controls for a given Catalog. @Tags Catalog @Produce json @Param id path string true "Catalog ID" @Success 200 {object} handler.GenericDataListResponse[oscalTypes_1_1_3.Control] @Failure 400 {object} api.Error @Failure 404 {object} api.Error @Failure 401 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/catalogs/{id}/all-controls [get]

func (*CatalogHandler) GetBackMatter

func (h *CatalogHandler) GetBackMatter(ctx echo.Context) error

GetBackMatter godoc

@Summary		Get back-matter for a Catalog
@Description	Retrieves the back-matter for a given Catalog.
@Tags			Catalog
@Produce		json
@Param			id	path		string	true	"Catalog ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.BackMatter]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/catalogs/{id}/back-matter [get]

func (*CatalogHandler) GetControl

func (h *CatalogHandler) GetControl(ctx echo.Context) error

GetControl godoc

@Summary		Get a specific Control within a Catalog
@Description	Retrieves a single Control by its ID for a given Catalog.
@Tags			Catalog
@Produce		json
@Param			id		path		string	true	"Catalog ID"
@Param			control	path		string	true	"Control ID"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Control]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/catalogs/{id}/controls/{control} [get]

func (*CatalogHandler) GetControlSubControls

func (h *CatalogHandler) GetControlSubControls(ctx echo.Context) error

@Summary List child controls for a Control within a Catalog @Description Retrieves the controls directly under a specific Control in a given Catalog. @Tags Catalog @Produce json @Param id path string true "Catalog ID" @Param control path string true "Control ID" @Success 200 {object} handler.GenericDataListResponse[oscalTypes_1_1_3.Control] @Failure 400 {object} api.Error @Failure 404 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/catalogs/{id}/controls/{control}/controls [get]

func (*CatalogHandler) GetControls

func (h *CatalogHandler) GetControls(ctx echo.Context) error

@Summary List controls for a Catalog @Description Retrieves the top-level controls for a given Catalog. @Tags Catalog @Produce json @Param id path string true "Catalog ID" @Success 200 {object} handler.GenericDataListResponse[oscalTypes_1_1_3.Control] @Failure 400 {object} api.Error @Failure 404 {object} api.Error @Failure 401 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/catalogs/{id}/controls [get]

func (*CatalogHandler) GetGroup

func (h *CatalogHandler) GetGroup(ctx echo.Context) error

GetGroup godoc

@Summary		Get a specific Group within a Catalog
@Description	Retrieves a single Group by its ID for a given Catalog.
@Tags			Catalog
@Produce		json
@Param			id		path		string	true	"Catalog ID"
@Param			group	path		string	true	"Group ID"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Group]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/catalogs/{id}/groups/{group} [get]

func (*CatalogHandler) GetGroupControls

func (h *CatalogHandler) GetGroupControls(ctx echo.Context) error

GetGroupControls godoc

@Summary		List controls for a Group within a Catalog
@Description	Retrieves the controls directly under a specific Group in a given Catalog.
@Tags			Catalog
@Produce		json
@Param			id		path		string	true	"Catalog ID"
@Param			group	path		string	true	"Group ID"
@Success		200		{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Control]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/catalogs/{id}/groups/{group}/controls [get]

func (*CatalogHandler) GetGroupSubGroups

func (h *CatalogHandler) GetGroupSubGroups(ctx echo.Context) error

GetGroupSubGroups godoc

@Summary		List sub-groups for a Group within a Catalog
@Description	Retrieves the sub-groups of a specific Group in a given Catalog.
@Tags			Catalog
@Produce		json
@Param			id		path		string	true	"Catalog ID"
@Param			group	path		string	true	"Group ID"
@Success		200		{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Group]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/catalogs/{id}/groups/{group}/groups [get]

func (*CatalogHandler) GetGroups

func (h *CatalogHandler) GetGroups(ctx echo.Context) error

GetGroups godoc

@Summary		List groups for a Catalog
@Description	Retrieves the top-level groups for a given Catalog.
@Tags			Catalog
@Produce		json
@Param			id	path		string	true	"Catalog ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Group]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/catalogs/{id}/groups [get]

func (*CatalogHandler) List

func (h *CatalogHandler) List(ctx echo.Context) error

@Summary List catalogs @Description Retrieves all catalogs, optionally filtered by catalog type. @Tags Catalog @Produce json @Param type query string false "Filter by catalog type (standard|policy|procedure)" @Success 200 {object} handler.GenericDataListResponse[oscalTypes_1_1_3.Catalog] @Failure 400 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/catalogs [get]

func (*CatalogHandler) Register

func (h *CatalogHandler) Register(api *echo.Group, guard middleware.ResourceGuard)

func (*CatalogHandler) SetActive

func (h *CatalogHandler) SetActive(ctx echo.Context) error

SetActive godoc

@Summary		Set a Catalog's active state
@Description	Marks a catalog active or inactive. Inactive catalogs are hidden from the lineage /roots listing but remain reachable as control-link children. This is the reliable way to toggle the flag (a struct-based Update leaves it untouched).
@Tags			Catalog
@Accept			json
@Produce		json
@Param			id		path		string							true	"Catalog ID"
@Param			body	body		handler.SetCatalogActiveRequest	true	"Active state"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Catalog]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/catalogs/{id}/active [put]

func (*CatalogHandler) Update

func (h *CatalogHandler) Update(ctx echo.Context) error

@Summary Update a Catalog @Description Updates an existing OSCAL Catalog. @Tags Catalog @Accept json @Produce json @Param id path string true "Catalog ID" @Param catalog body oscalTypes_1_1_3.Catalog true "Updated Catalog object" @Success 200 {object} handler.GenericDataResponse[oscalTypes_1_1_3.Catalog] @Failure 400 {object} api.Error @Failure 404 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/catalogs/{id} [put]

func (*CatalogHandler) UpdateControl

func (h *CatalogHandler) UpdateControl(ctx echo.Context) error

@Summary Update a Control within a Catalog @Description Updates the properties of an existing Control under the specified Catalog. @Tags Catalog @Accept json @Produce json @Param id path string true "Catalog ID" @Param control path string true "Control ID" @Param control body oscalTypes_1_1_3.Control true "Updated Control object" @Success 200 {object} handler.GenericDataResponse[oscalTypes_1_1_3.Control] @Failure 400 {object} api.Error @Failure 404 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/catalogs/{id}/controls/{control} [put]

func (*CatalogHandler) UpdateGroup

func (h *CatalogHandler) UpdateGroup(ctx echo.Context) error

@Summary Update a Group within a Catalog @Description Updates the properties of an existing Group under the specified Catalog. @Tags Catalog @Accept json @Produce json @Param id path string true "Catalog ID" @Param group path string true "Group ID" @Param group body oscalTypes_1_1_3.Group true "Updated Group object" @Success 200 {object} handler.GenericDataResponse[oscalTypes_1_1_3.Group] @Failure 400 {object} api.Error @Failure 404 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/catalogs/{id}/groups/{group} [put]

type ComponentDefinitionHandler

type ComponentDefinitionHandler struct {
	// contains filtered or unexported fields
}

func NewComponentDefinitionHandler

func NewComponentDefinitionHandler(sugar *zap.SugaredLogger, db *gorm.DB) *ComponentDefinitionHandler

func (*ComponentDefinitionHandler) Create

Create godoc

@Summary		Create a component definition
@Description	Creates a new component definition.
@Tags			Component Definitions
@Accept			json
@Produce		json
@Param			componentDefinition	body		oscalTypes_1_1_3.ComponentDefinition	true	"Component Definition"
@Success		201					{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ComponentDefinition]
@Failure		400					{object}	api.Error
@Failure		401					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions [post]

func (*ComponentDefinitionHandler) CreateBackMatter

func (h *ComponentDefinitionHandler) CreateBackMatter(ctx echo.Context) error

CreateBackMatter godoc

@Summary		Create back-matter for a component definition
@Description	Creates new back-matter for a given component definition.
@Tags			Component Definitions
@Accept			json
@Produce		json
@Param			id			path		string						true	"Component Definition ID"
@Param			back-matter	body		oscalTypes_1_1_3.BackMatter	true	"Back Matter"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.BackMatter]
@Failure		400			{object}	api.Error
@Failure		401			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/back-matter [post]

func (*ComponentDefinitionHandler) CreateCapabilities

func (h *ComponentDefinitionHandler) CreateCapabilities(ctx echo.Context) error

CreateCapabilities godoc

@Summary		Create capabilities for a component definition
@Description	Creates new capabilities for a given component definition.
@Tags			Component Definitions
@Accept			json
@Produce		json
@Param			id				path		string							true	"Component Definition ID"
@Param			capabilities	body		[]oscalTypes_1_1_3.Capability	true	"Capabilities"
@Success		200				{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Capability]
@Failure		400				{object}	api.Error
@Failure		401				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/capabilities [post]

func (*ComponentDefinitionHandler) CreateComponents

func (h *ComponentDefinitionHandler) CreateComponents(ctx echo.Context) error

CreateComponents godoc

@Summary		Create components for a component definition
@Description	Creates new components for a given component definition.
@Tags			Component Definitions
@Accept			json
@Produce		json
@Param			id			path		string								true	"Component Definition ID"
@Param			components	body		[]oscalTypes_1_1_3.DefinedComponent	true	"Components to create"
@Success		200			{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.DefinedComponent]
@Failure		400			{object}	api.Error
@Failure		401			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/components [post]

func (*ComponentDefinitionHandler) CreateControlImplementations

func (h *ComponentDefinitionHandler) CreateControlImplementations(ctx echo.Context) error

CreateControlImplementations godoc

@Summary		Create control implementations for a defined component
@Description	Creates new control implementations for a given defined component.
@Tags			Component Definitions
@Accept			json
@Produce		json
@Param			id						path		string										true	"Component Definition ID"
@Param			defined-component		path		string										true	"Defined Component ID"
@Param			control-implementations	body		[]oscalTypes_1_1_3.ControlImplementationSet	true	"Control Implementations"
@Success		200						{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.ControlImplementationSet]
@Failure		400						{object}	api.Error
@Failure		401						{object}	api.Error
@Failure		404						{object}	api.Error
@Failure		500						{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/components/{defined-component}/control-implementations [post]

func (*ComponentDefinitionHandler) CreateDefinedComponent

func (h *ComponentDefinitionHandler) CreateDefinedComponent(ctx echo.Context) error

CreateDefinedComponent godoc

@Summary		Create a defined component for a component definition
@Description	Creates a new defined component for a given component definition.
@Tags			Component Definitions
@Accept			json
@Produce		json
@Param			id					path		string								true	"Component Definition ID"
@Param			defined-component	body		oscalTypes_1_1_3.DefinedComponent	true	"Defined Component to create"
@Success		200					{object}	handler.GenericDataResponse[oscalTypes_1_1_3.DefinedComponent]
@Failure		400					{object}	api.Error
@Failure		401					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/components/{defined-component} [post]

func (*ComponentDefinitionHandler) CreateImportComponentDefinitions

func (h *ComponentDefinitionHandler) CreateImportComponentDefinitions(ctx echo.Context) error

CreateImportComponentDefinitions godoc

@Summary		Create import component definitions for a component definition
@Description	Creates new import component definitions for a given component definition.
@Tags			Component Definitions
@Produce		json
@Param			id								path		string											true	"Component Definition ID"
@Param			import-component-definitions	body		[]oscalTypes_1_1_3.ImportComponentDefinition	true	"Import Component Definitions"
@Success		200								{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.ImportComponentDefinition]
@Failure		400								{object}	api.Error
@Failure		401								{object}	api.Error
@Failure		404								{object}	api.Error
@Failure		500								{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/import-component-definitions [post]

func (*ComponentDefinitionHandler) CreateIncorporatesComponents

func (h *ComponentDefinitionHandler) CreateIncorporatesComponents(ctx echo.Context) error

CreateIncorporatesComponents godoc

@Summary		Create incorporates components for a component definition
@Description	Creates new incorporates components for a given component definition.
@Tags			Component Definitions
@Accept			json
@Produce		json
@Param			id						path		string										true	"Component Definition ID"
@Param			incorporates-components	body		[]oscalTypes_1_1_3.IncorporatesComponent	true	"Incorporates Components"
@Success		200						{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.IncorporatesComponent]
@Failure		400						{object}	api.Error
@Failure		401						{object}	api.Error
@Failure		404						{object}	api.Error
@Failure		500						{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/capabilities/incorporates-components [post]

func (*ComponentDefinitionHandler) Full

Full godoc

@Summary		Get a complete Component Definition
@Description	Retrieves a complete Component Definition by its ID, including all metadata and revisions.
@Tags			Component Definitions
@Produce		json
@Param			id	path		string	true	"Component Definition ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ComponentDefinition]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/full [get]

func (*ComponentDefinitionHandler) Get

Get godoc

@Summary		Get a component definition
@Description	Retrieves a single component definition by its unique ID.
@Tags			Component Definitions
@Produce		json
@Param			id	path		string	true	"Component Definition ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ComponentDefinition]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id} [get]

func (*ComponentDefinitionHandler) GetBackMatter

func (h *ComponentDefinitionHandler) GetBackMatter(ctx echo.Context) error

GetBackMatter godoc

@Summary		Get back-matter for a Component Definition
@Description	Retrieves the back-matter for a given Component Definition.
@Tags			Component Definitions
@Produce		json
@Param			id	path		string	true	"Component Definition ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.BackMatter]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/back-matter [get]

func (*ComponentDefinitionHandler) GetCapabilities

func (h *ComponentDefinitionHandler) GetCapabilities(ctx echo.Context) error

GetCapabilities godoc

@Summary		Get capabilities for a component definition
@Description	Retrieves all capabilities for a given component definition.
@Tags			Component Definitions
@Produce		json
@Param			id	path		string	true	"Component Definition ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Capability]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/capabilities [get]

func (*ComponentDefinitionHandler) GetComponents

func (h *ComponentDefinitionHandler) GetComponents(ctx echo.Context) error

GetComponents godoc

@Summary		Get components for a component definition
@Description	Retrieves all components for a given component definition.
@Tags			Component Definitions
@Produce		json
@Param			id	path		string	true	"Component Definition ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.DefinedComponent]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/components [get]

func (*ComponentDefinitionHandler) GetControlImplementations

func (h *ComponentDefinitionHandler) GetControlImplementations(ctx echo.Context) error

GetControlImplementations godoc

@Summary		Get control implementations for a defined component
@Description	Retrieves all control implementations for a given defined component.
@Tags			Component Definitions
@Produce		json
@Param			id					path		string	true	"Component Definition ID"
@Param			defined-component	path		string	true	"Defined Component ID"
@Success		200					{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.ControlImplementationSet]
@Failure		400					{object}	api.Error
@Failure		401					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/components/{defined-component}/control-implementations [get]

func (*ComponentDefinitionHandler) GetDefinedComponent

func (h *ComponentDefinitionHandler) GetDefinedComponent(ctx echo.Context) error

GetDefinedComponent godoc

@Summary		Get a defined component for a component definition
@Description	Retrieves a defined component for a given component definition.
@Tags			Component Definitions
@Produce		json
@Param			id					path		string	true	"Component Definition ID"
@Param			defined-component	path		string	true	"Defined Component ID"
@Success		200					{object}	handler.GenericDataResponse[oscalTypes_1_1_3.DefinedComponent]
@Failure		400					{object}	api.Error
@Failure		401					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/components/{defined-component} [get]

func (*ComponentDefinitionHandler) GetImplementedRequirements

func (h *ComponentDefinitionHandler) GetImplementedRequirements(ctx echo.Context) error

GetImplementedRequirements godoc

@Summary		Get implemented requirements for a defined component
@Description	Retrieves all implemented requirements for a given defined component.
@Tags			Component Definitions
@Produce		json
@Param			id					path		string	true	"Component Definition ID"
@Param			defined-component	path		string	true	"Defined Component ID"
@Success		200					{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.ImplementedRequirementControlImplementation]
@Failure		400					{object}	api.Error
@Failure		401					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/components/{defined-component}/control-implementations/implemented-requirements [get]

func (*ComponentDefinitionHandler) GetImportComponentDefinitions

func (h *ComponentDefinitionHandler) GetImportComponentDefinitions(ctx echo.Context) error

GetImportComponentDefinitions godoc

@Summary		Get import component definitions for a defined component
@Description	Retrieves all import component definitions for a given defined component.
@Tags			Component Definitions
@Produce		json
@Param			id					path		string	true	"Component Definition ID"
@Param			defined-component	path		string	true	"Defined Component ID"
@Success		200					{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.ImportComponentDefinition]
@Failure		400					{object}	api.Error
@Failure		401					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/import-component-definitions [get]

func (*ComponentDefinitionHandler) GetIncorporatesComponents

func (h *ComponentDefinitionHandler) GetIncorporatesComponents(ctx echo.Context) error

GetIncorporatesComponents godoc

@Summary		Get incorporates components for a component definition
@Description	Retrieves all incorporates components for a given component definition.
@Tags			Component Definitions
@Produce		json
@Param			id	path		string	true	"Component Definition ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.IncorporatesComponent]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/capabilities/incorporates-components [get]

func (*ComponentDefinitionHandler) GetStatements

func (h *ComponentDefinitionHandler) GetStatements(ctx echo.Context) error

GetStatements godoc

@Summary		Get statements for a defined component
@Description	Retrieves all statements for a given defined component.
@Tags			Component Definitions
@Produce		json
@Param			id					path		string	true	"Component Definition ID"
@Param			defined-component	path		string	true	"Defined Component ID"
@Success		200					{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.ControlStatementImplementation]
@Failure		400					{object}	api.Error
@Failure		401					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/components/{defined-component}/control-implementations/implemented-requirements/statements [get]

func (*ComponentDefinitionHandler) List

List godoc

@Summary		List component definitions
@Description	Retrieves all component definitions.
@Tags			Component Definitions
@Produce		json
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.ComponentDefinition]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions [get]

func (*ComponentDefinitionHandler) Register

func (*ComponentDefinitionHandler) Update

Update godoc

@Summary		Update a component definition
@Description	Updates an existing component definition.
@Tags			Component Definitions
@Accept			json
@Produce		json
@Param			id					path		string									true	"Component Definition ID"
@Param			componentDefinition	body		oscalTypes_1_1_3.ComponentDefinition	true	"Updated Component Definition object"
@Success		200					{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ComponentDefinition]
@Failure		400					{object}	api.Error
@Failure		401					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id} [put]

func (*ComponentDefinitionHandler) UpdateCapability

func (h *ComponentDefinitionHandler) UpdateCapability(ctx echo.Context) error

UpdateCapability godoc

@Summary		Update a capability for a component definition
@Description	Updates a single capability for a given component definition.
@Tags			Component Definitions
@Accept			json
@Produce		json
@Param			id			path		string						true	"Component Definition ID"
@Param			capability	path		string						true	"Capability ID (UUID)"
@Param			capability	body		oscalTypes_1_1_3.Capability	true	"Capability to update"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Capability]
@Failure		400			{object}	api.Error
@Failure		401			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/capabilities/{capability} [put]

func (*ComponentDefinitionHandler) UpdateComponents

func (h *ComponentDefinitionHandler) UpdateComponents(ctx echo.Context) error

UpdateComponents godoc

@Summary		Update components for a component definition
@Description	Updates the components for a given component definition.
@Tags			Component Definitions
@Accept			json
@Produce		json
@Param			id			path		string								true	"Component Definition ID"
@Param			components	body		[]oscalTypes_1_1_3.DefinedComponent	true	"Components to update"
@Success		200			{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.DefinedComponent]
@Failure		400			{object}	api.Error
@Failure		401			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/components [put]

func (*ComponentDefinitionHandler) UpdateControlImplementations

func (h *ComponentDefinitionHandler) UpdateControlImplementations(ctx echo.Context) error

UpdateControlImplementations godoc

@Summary		Update control implementations for a defined component
@Description	Updates control implementations for a given defined component.
@Tags			Component Definitions
@Accept			json
@Produce		json
@Param			id						path		string										true	"Component Definition ID"
@Param			defined-component		path		string										true	"Defined Component ID"
@Param			control-implementations	body		[]oscalTypes_1_1_3.ControlImplementationSet	true	"Control Implementations"
@Success		200						{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.ControlImplementationSet]
@Failure		400						{object}	api.Error
@Failure		401						{object}	api.Error
@Failure		404						{object}	api.Error
@Failure		500						{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/components/{defined-component}/control-implementations [put]

func (*ComponentDefinitionHandler) UpdateDefinedComponent

func (h *ComponentDefinitionHandler) UpdateDefinedComponent(ctx echo.Context) error

UpdateDefinedComponent godoc

@Summary		Update a defined component for a component definition
@Description	Updates a defined component for a given component definition.
@Tags			Component Definitions
@Accept			json
@Produce		json
@Param			id					path		string								true	"Component Definition ID"
@Param			defined-component	path		string								true	"Defined Component ID"
@Param			defined-component	body		oscalTypes_1_1_3.DefinedComponent	true	"Defined Component to update"
@Success		200					{object}	handler.GenericDataResponse[oscalTypes_1_1_3.DefinedComponent]
@Failure		400					{object}	api.Error
@Failure		401					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/components/{defined-component} [put]

func (*ComponentDefinitionHandler) UpdateImportComponentDefinitions

func (h *ComponentDefinitionHandler) UpdateImportComponentDefinitions(ctx echo.Context) error

UpdateImportComponentDefinitions godoc

@Summary		Update import component definitions for a component definition
@Description	Updates the import component definitions for a given component definition.
@Tags			Component Definitions
@Produce		json
@Param			id								path		string											true	"Component Definition ID"
@Param			import-component-definitions	body		[]oscalTypes_1_1_3.ImportComponentDefinition	true	"Import Component Definitions"
@Success		200								{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.ImportComponentDefinition]
@Failure		400								{object}	api.Error
@Failure		401								{object}	api.Error
@Failure		404								{object}	api.Error
@Failure		500								{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/import-component-definitions [put]

func (*ComponentDefinitionHandler) UpdateSingleControlImplementation

func (h *ComponentDefinitionHandler) UpdateSingleControlImplementation(ctx echo.Context) error

UpdateSingleControlImplementation godoc

@Summary		Update a single control implementation for a defined component
@Description	Updates a specific control implementation for a given defined component.
@Tags			Component Definitions
@Accept			json
@Produce		json
@Param			id						path		string										true	"Component Definition ID"
@Param			defined-component		path		string										true	"Defined Component ID"
@Param			control-implementation	path		string										true	"Control Implementation ID"
@Param			control-implementation	body		oscalTypes_1_1_3.ControlImplementationSet	true	"Control Implementation"
@Success		200						{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ControlImplementationSet]
@Failure		400						{object}	api.Error
@Failure		401						{object}	api.Error
@Failure		404						{object}	api.Error
@Failure		500						{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/component-definitions/{id}/components/{defined-component}/control-implementations/{control-implementation} [put]

type CreateInventoryItemRequest added in v0.4.5

type CreateInventoryItemRequest struct {
	Destination   string                         `json:"destination"` // "ssp", "poam", or "unattached"
	DestinationID string                         `json:"destination_id,omitempty"`
	InventoryItem oscalTypes_1_1_3.InventoryItem `json:"inventory_item"`
}

CreateInventoryItemRequest represents the request for creating an inventory item

type DashboardSuggestionHandler added in v0.17.0

type DashboardSuggestionHandler struct {
	// contains filtered or unexported fields
}

func NewDashboardSuggestionHandler added in v0.17.0

func NewDashboardSuggestionHandler(sugar *zap.SugaredLogger, db *gorm.DB, cfg *config.AIConfig, jobEnqueuer SSPJobEnqueuer) *DashboardSuggestionHandler

func (*DashboardSuggestionHandler) Accept added in v0.17.0

Accept godoc

@Summary		Accept dashboard suggestions
@Description	Accepts pending dashboard suggestions and creates or extends SSP-bound filters.
@Tags			Dashboard Suggestions
@Accept			json
@Produce		json
@Param			id		path		string								true	"System Security Plan ID"
@Param			request	body		dashboardSuggestionDecisionRequest	true	"Suggestion IDs"
@Success		200		{object}	handler.GenericDataResponse[oscal.acceptDashboardSuggestionsResponse]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		409		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestions/accept [post]

func (*DashboardSuggestionHandler) Config added in v0.17.0

Config godoc

@Summary		Get dashboard suggestions feature configuration
@Description	Returns whether AI dashboard suggestions are enabled.
@Tags			Dashboard Suggestions
@Produce		json
@Success		200	{object}	handler.GenericDataResponse[oscal.dashboardSuggestionConfigResponse]
@Router			/dashboard-suggestions/config [get]

func (*DashboardSuggestionHandler) ControlResults added in v0.17.0

func (h *DashboardSuggestionHandler) ControlResults(ctx echo.Context) error

ControlResults godoc

@Summary		List dashboard suggestion control results for an SSP
@Description	Returns the latest dashboard-suggestion evaluation outcome per evaluated control.
@Tags			Dashboard Suggestions
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataListResponse[oscal.controlSuggestionResultResponse]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestions/control-results [get]

func (*DashboardSuggestionHandler) EditGroup added in v0.17.0

func (h *DashboardSuggestionHandler) EditGroup(ctx echo.Context) error

EditGroup godoc

@Summary		Edit a group of pending dashboard suggestions
@Description	Edits the title, proposed filter labels, and control membership of a pending suggestion group. User-provided labels are stored verbatim (the evidence-subset rule is bypassed) and the rows are flagged as user-edited.
@Tags			Dashboard Suggestions
@Accept			json
@Produce		json
@Param			id		path		string								true	"System Security Plan ID"
@Param			request	body		editDashboardSuggestionGroupRequest	true	"Group edit"
@Success		200		{object}	handler.GenericDataListResponse[oscal.dashboardSuggestionResponse]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		409		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestions/edit-group [post]

func (*DashboardSuggestionHandler) Events added in v0.17.0

Events godoc

@Summary		List dashboard suggestion events
@Description	Returns audit events for one dashboard suggestion.
@Tags			Dashboard Suggestions
@Produce		json
@Param			id				path		string	true	"System Security Plan ID"
@Param			suggestionId	path		string	true	"Dashboard suggestion ID"
@Success		200				{object}	handler.GenericDataListResponse[oscal.dashboardSuggestionEventResponse]
@Failure		400				{object}	api.Error
@Failure		401				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestions/{suggestionId}/events [get]

func (*DashboardSuggestionHandler) Generalize added in v0.17.0

func (h *DashboardSuggestionHandler) Generalize(ctx echo.Context) error

Generalize godoc

@Summary		Suggest filter merges for an SSP
@Description	Runs the deterministic filter-merge detector for this SSP and creates pending generalization suggestions for near-duplicate filters that differ only by one generalizable label. No LLM is involved.
@Tags			Dashboard Suggestions
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscal.generalizeDashboardSuggestionsResponse]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestions/generalize [post]

func (*DashboardSuggestionHandler) Generate added in v0.17.0

func (h *DashboardSuggestionHandler) Generate(ctx echo.Context) error

Generate godoc

@Summary		Generate dashboard suggestions for an SSP
@Description	Creates a dashboard suggestion run, snapshots the resolved scope, creates run cells, and enqueues cell processing.
@Tags			Dashboard Suggestions
@Accept			json
@Produce		json
@Param			id		path		string								true	"System Security Plan ID"
@Param			request	body		generateDashboardSuggestionsRequest	false	"Generation request"
@Success		202		{object}	handler.GenericDataResponse[oscal.dashboardSuggestionRunResponse]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		409		{object}	api.Error
@Failure		422		{object}	api.Error
@Failure		503		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestions/generate [post]

func (*DashboardSuggestionHandler) GetRun added in v0.17.0

GetRun godoc

@Summary		Get a dashboard suggestion run
@Description	Returns a dashboard suggestion run with cell progress.
@Tags			Dashboard Suggestions
@Produce		json
@Param			id		path		string	true	"System Security Plan ID"
@Param			runId	path		string	true	"Dashboard suggestion run ID"
@Success		200		{object}	handler.GenericDataResponse[oscal.dashboardSuggestionRunResponse]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestion-runs/{runId} [get]

func (*DashboardSuggestionHandler) LabelKeys added in v0.17.0

func (h *DashboardSuggestionHandler) LabelKeys(ctx echo.Context) error

LabelKeys godoc

@Summary		List distinct evidence label keys and values
@Description	Returns distinct evidence label keys with their distinct values, for building an evidence-scoping filter without loading every label set.
@Tags			Dashboard Suggestions
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataListResponse[suggestions.LabelKeyInput]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestions/label-keys [get]

func (*DashboardSuggestionHandler) LabelSets added in v0.17.0

func (h *DashboardSuggestionHandler) LabelSets(ctx echo.Context) error

LabelSets godoc

@Summary		List dashboard suggestion label sets
@Description	Returns canonical evidence label sets for dashboard suggestion scope selection.
@Tags			Dashboard Suggestions
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataListResponse[suggestions.LabelSetInput]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestions/label-sets [get]

func (*DashboardSuggestionHandler) LabelValues added in v0.17.0

func (h *DashboardSuggestionHandler) LabelValues(ctx echo.Context) error

LabelValues godoc

@Summary		Search evidence label values for a key
@Description	Returns distinct evidence label values for a given label key, optionally matching a substring query. Searched server-side so high-cardinality values are reachable.
@Tags			Dashboard Suggestions
@Produce		json
@Param			id		path		string	true	"System Security Plan ID"
@Param			key		query		string	true	"Label key"
@Param			query	query		string	false	"Substring to match against values"
@Success		200		{object}	handler.GenericDataListResponse[string]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestions/label-values [get]

func (*DashboardSuggestionHandler) LatestRun added in v0.17.0

func (h *DashboardSuggestionHandler) LatestRun(ctx echo.Context) error

LatestRun godoc

@Summary		Get latest dashboard suggestion run for an SSP
@Description	Returns the latest dashboard suggestion run with cell progress.
@Tags			Dashboard Suggestions
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscal.dashboardSuggestionRunResponse]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestion-runs/latest [get]

func (*DashboardSuggestionHandler) ListSuggestions added in v0.17.0

func (h *DashboardSuggestionHandler) ListSuggestions(ctx echo.Context) error

ListSuggestions godoc

@Summary		List dashboard suggestions for an SSP
@Description	Lists dashboard suggestions joined with control title and target filter name.
@Tags			Dashboard Suggestions
@Produce		json
@Param			id		path		string	true	"System Security Plan ID"
@Param			status	query		string	false	"Suggestion status (default pending)"
@Success		200		{object}	handler.GenericDataListResponse[oscal.dashboardSuggestionResponse]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestions [get]

func (*DashboardSuggestionHandler) Preview added in v0.17.0

func (h *DashboardSuggestionHandler) Preview(ctx echo.Context) error

Preview godoc

@Summary		Preview dashboard suggestion generation for an SSP
@Description	Resolves the requested dashboard suggestion scope and returns planned call counts without creating runs or enqueueing work.
@Tags			Dashboard Suggestions
@Accept			json
@Produce		json
@Param			id		path		string								true	"System Security Plan ID"
@Param			request	body		generateDashboardSuggestionsRequest	false	"Preview request"
@Success		200		{object}	handler.GenericDataResponse[oscal.dashboardSuggestionPreviewResponse]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		422		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestions/preview [post]

func (*DashboardSuggestionHandler) Register added in v0.17.0

func (h *DashboardSuggestionHandler) Register(apiGroup *echo.Group, auth echo.MiddlewareFunc, guard middleware.ResourceGuard)

Register mounts the SSP-scoped dashboard-suggestion routes. auth is the per-route auth middleware; guard enforces the dashboard-suggestion resource. generate/generalize create runs; preview and the label/run/list GETs are reads; accept/reject/edit-group mutate existing suggestions (update).

func (*DashboardSuggestionHandler) RegisterConfig added in v0.17.0

func (h *DashboardSuggestionHandler) RegisterConfig(apiGroup *echo.Group, middlewares ...echo.MiddlewareFunc)

RegisterConfig mounts the feature-config probe. The caller passes the auth middleware + the read guard, so /config sits behind auth like every other route: a valid token identifies the subject and the guard enforces dashboard-suggestion:read.

func (*DashboardSuggestionHandler) Reject added in v0.17.0

Reject godoc

@Summary		Reject dashboard suggestions
@Description	Rejects pending dashboard suggestions.
@Tags			Dashboard Suggestions
@Accept			json
@Produce		json
@Param			id		path		string								true	"System Security Plan ID"
@Param			request	body		dashboardSuggestionDecisionRequest	true	"Suggestion IDs and reason"
@Success		200		{object}	handler.GenericDataListResponse[oscal.dashboardSuggestionResponse]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		409		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/dashboard-suggestions/reject [post]

type GetAllInventoryItemsRequest added in v0.4.5

type GetAllInventoryItemsRequest struct {
	IncludeSSP      string `query:"include_ssp" json:"include_ssp,omitempty"`
	IncludeEvidence string `query:"include_evidence" json:"include_evidence,omitempty"`
	IncludePOAM     string `query:"include_poam" json:"include_poam,omitempty"`
	IncludeAP       string `query:"include_ap" json:"include_ap,omitempty"`
	IncludeAR       string `query:"include_ar" json:"include_ar,omitempty"`
	ItemType        string `query:"item_type" json:"item_type,omitempty"`
	AttachedToSSP   string `query:"attached_to_ssp" json:"attached_to_ssp,omitempty"`
}

GetAllInventoryItemsRequest represents the request for getting all inventory items

type ImportFileResult added in v0.7.0

type ImportFileResult struct {
	Filename string `json:"filename"`
	Success  bool   `json:"success"`
	Message  string `json:"message"`
	Type     string `json:"type,omitempty"`
	Title    string `json:"title,omitempty"`
}

type ImportHandler added in v0.7.0

type ImportHandler struct {
	// contains filtered or unexported fields
}

func NewImportHandler added in v0.7.0

func NewImportHandler(l *zap.SugaredLogger, db *gorm.DB) *ImportHandler

func (*ImportHandler) ImportOSCAL added in v0.7.0

func (h *ImportHandler) ImportOSCAL(ctx echo.Context) error

ImportOSCAL godoc

@Summary		Import OSCAL files
@Description	Import multiple OSCAL JSON files (catalogs, profiles, SSPs, etc.)
@Tags			OSCAL
@Accept			multipart/form-data
@Produce		json
@Param			files	formData	file	true	"OSCAL JSON files to import"
@Success		200		{object}	handler.GenericDataResponse[ImportResponse]
@Failure		400		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/import [post]

func (*ImportHandler) Register added in v0.7.0

func (h *ImportHandler) Register(api *echo.Group, guard middleware.ResourceGuard)

type ImportResponse added in v0.7.0

type ImportResponse struct {
	TotalFiles      int                `json:"total_files"`
	SuccessfulCount int                `json:"successful_count"`
	FailedCount     int                `json:"failed_count"`
	Results         []ImportFileResult `json:"results"`
}

type InventoryHandler added in v0.4.5

type InventoryHandler struct {
	// contains filtered or unexported fields
}

InventoryHandler handles inventory-related endpoints

func NewInventoryHandler added in v0.4.5

func NewInventoryHandler(sugar *zap.SugaredLogger, db *gorm.DB) *InventoryHandler

NewInventoryHandler creates a new InventoryHandler

func (*InventoryHandler) CreateInventoryItem added in v0.4.5

func (h *InventoryHandler) CreateInventoryItem(ctx echo.Context) error

CreateInventoryItem godoc

@Summary		Create Inventory Item
@Description	Creates a new inventory item with optional attachment to SSP or POAM
@Tags			Inventory
@Accept			json
@Produce		json
@Param			request	body		CreateInventoryItemRequest	true	"Create Inventory Item Request"
@Success		201		{object}	handler.GenericDataResponse[InventoryItemWithSource]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/inventory [post]

func (*InventoryHandler) GetAllInventoryItems added in v0.4.5

func (h *InventoryHandler) GetAllInventoryItems(ctx echo.Context) error

GetAllInventoryItems godoc

@Summary		Get All Inventory Items
@Description	Retrieves all inventory items from all sources (SSP, Evidence, POAM, AP, AR)
@Tags			Inventory
@Produce		json
@Param			include_ssp			query		string	false	"Include items from System Security Plans"
@Param			include_evidence	query		string	false	"Include items from Evidence"
@Param			include_poam		query		string	false	"Include items from Plan of Action and Milestones"
@Param			include_ap			query		string	false	"Include items from Assessment Plans"
@Param			include_ar			query		string	false	"Include items from Assessment Results"
@Param			item_type			query		string	false	"Filter by item type (e.g., operating-system, database, web-server)"
@Param			attached_to_ssp		query		string	false	"Filter by SSP attachment status"
@Success		200					{object}	handler.GenericDataListResponse[InventoryItemWithSource]
@Failure		400					{object}	api.Error
@Failure		401					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/inventory [get]

func (*InventoryHandler) GetInventoryItem added in v0.4.5

func (h *InventoryHandler) GetInventoryItem(ctx echo.Context) error

GetInventoryItem godoc

@Summary		Get Inventory Item by ID
@Description	Retrieves a specific inventory item by its ID
@Tags			Inventory
@Produce		json
@Param			id	path		string	true	"Inventory Item ID"
@Success		200	{object}	handler.GenericDataResponse[InventoryItemWithSource]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/inventory/{id} [get]

func (*InventoryHandler) Register added in v0.4.5

func (h *InventoryHandler) Register(api *echo.Group, guard middleware.ResourceGuard)

Register registers inventory routes

type InventoryItemWithSource added in v0.4.5

type InventoryItemWithSource struct {
	oscalTypes_1_1_3.InventoryItem
	Source     string `json:"source"`
	SourceID   string `json:"source_id"`
	SourceType string `json:"source_type"`
}

InventoryItemWithSource represents an inventory item with its source information

type PartyHandler

type PartyHandler struct {
	// contains filtered or unexported fields
}

func NewPartyHandler

func NewPartyHandler(l *zap.SugaredLogger, db *gorm.DB) *PartyHandler

func (*PartyHandler) Get

func (h *PartyHandler) Get(ctx echo.Context) error

Get godoc

@Summary		Get a Party
@Description	Retrieves a single Party by its unique ID.
@Tags			Oscal
@Produce		json
@Param			id	path		string	true	"Party ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Party]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/parties/{id} [get]

func (*PartyHandler) List

func (h *PartyHandler) List(ctx echo.Context) error

List godoc

@Summary		List parties
@Description	Retrieves all parties.
@Tags			Oscal
@Produce		json
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Party]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/parties [get]

func (*PartyHandler) Register

func (h *PartyHandler) Register(api *echo.Group, guard middleware.ResourceGuard)

type PlanOfActionAndMilestonesHandler

type PlanOfActionAndMilestonesHandler struct {
	// contains filtered or unexported fields
}

PlanOfActionAndMilestonesHandler handles OSCAL Plan of Action and Milestones (POA&M) endpoints.

@Tags	Plan Of Action and Milestones

All types are defined in oscalTypes_1_1_3 (see types.go)

func NewPlanOfActionAndMilestonesHandler

func NewPlanOfActionAndMilestonesHandler(sugar *zap.SugaredLogger, db *gorm.DB) *PlanOfActionAndMilestonesHandler

NewPlanOfActionAndMilestonesHandler creates a new handler for POA&M endpoints.

func (*PlanOfActionAndMilestonesHandler) Create

Create godoc

@Summary		Create a new POA&M
@Description	Creates a new Plan of Action and Milestones.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			poam	body		oscalTypes_1_1_3.PlanOfActionAndMilestones	true	"POA&M data"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.PlanOfActionAndMilestones]
@Failure		400		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones [post]

func (*PlanOfActionAndMilestonesHandler) CreateBackMatter

func (h *PlanOfActionAndMilestonesHandler) CreateBackMatter(ctx echo.Context) error

CreateBackMatter creates back-matter for a POA&M

func (*PlanOfActionAndMilestonesHandler) CreateBackMatterResource

func (h *PlanOfActionAndMilestonesHandler) CreateBackMatterResource(ctx echo.Context) error

CreateBackMatterResource godoc

@Summary		Create a new back-matter resource for a POA&M
@Description	Creates a new back-matter resource for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id			path		string						true	"POA&M ID"
@Param			resource	body		oscalTypes_1_1_3.Resource	true	"Resource data"
@Success		201			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Resource]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/back-matter/resources [post]

func (*PlanOfActionAndMilestonesHandler) CreateFinding

func (h *PlanOfActionAndMilestonesHandler) CreateFinding(ctx echo.Context) error

CreateFinding godoc

@Summary		Create a new finding for a POA&M
@Description	Creates a new finding for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id		path		string						true	"POA&M ID"
@Param			finding	body		oscalTypes_1_1_3.Finding	true	"Finding data"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Finding]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/findings [post]

func (*PlanOfActionAndMilestonesHandler) CreateImportSsp

func (h *PlanOfActionAndMilestonesHandler) CreateImportSsp(ctx echo.Context) error

CreateImportSsp godoc

@Summary		Create import-ssp for a POA&M
@Description	Creates import-ssp for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id			path		string						true	"POA&M ID"
@Param			importSsp	body		oscalTypes_1_1_3.ImportSsp	true	"Import SSP data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ImportSsp]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/import-ssp [post]

func (*PlanOfActionAndMilestonesHandler) CreateObservation

func (h *PlanOfActionAndMilestonesHandler) CreateObservation(ctx echo.Context) error

CreateObservation godoc

@Summary		Create a new observation for a POA&M
@Description	Creates a new observation for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id			path		string							true	"POA&M ID"
@Param			observation	body		oscalTypes_1_1_3.Observation	true	"Observation data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Observation]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/observations [post]

func (*PlanOfActionAndMilestonesHandler) CreatePoamItem

func (h *PlanOfActionAndMilestonesHandler) CreatePoamItem(ctx echo.Context) error

CreatePoamItem godoc

@Summary		Create a new POAM item for a POA&M
@Description	Creates a new POAM item for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id			path		string						true	"POA&M ID"
@Param			poam-item	body		oscalTypes_1_1_3.PoamItem	true	"POAM Item data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.PoamItem]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/poam-items [post]

func (*PlanOfActionAndMilestonesHandler) CreateRisk

CreateRisk godoc

@Summary		Create a new risk for a POA&M
@Description	Creates a new risk for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id		path		string					true	"POA&M ID"
@Param			risk	body		oscalTypes_1_1_3.Risk	true	"Risk data"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Risk]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/risks [post]

func (*PlanOfActionAndMilestonesHandler) CreateSystemId

func (h *PlanOfActionAndMilestonesHandler) CreateSystemId(ctx echo.Context) error

CreateSystemId godoc

@Summary		Create system-id for a POA&M
@Description	Creates system-id for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id			path		string						true	"POA&M ID"
@Param			systemId	body		oscalTypes_1_1_3.SystemId	true	"System ID data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemId]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/system-id [post]

func (*PlanOfActionAndMilestonesHandler) Delete

Delete

@Summary		Delete a POA&M
@Description	Deletes an existing Plan of Action and Milestones and all its related data.
@Tags			Plan Of Action and Milestones
@Param			id	path	string	true	"POA&M ID"
@Success		204	"No Content"
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id} [delete]

func (*PlanOfActionAndMilestonesHandler) DeleteBackMatter

func (h *PlanOfActionAndMilestonesHandler) DeleteBackMatter(ctx echo.Context) error

DeleteBackMatter deletes back-matter for a POA&M

func (*PlanOfActionAndMilestonesHandler) DeleteBackMatterResource

func (h *PlanOfActionAndMilestonesHandler) DeleteBackMatterResource(ctx echo.Context) error

DeleteBackMatterResource godoc

@Summary		Delete a back-matter resource from a POA&M
@Description	Deletes an existing back-matter resource for a given POA&M.
@Tags			Plan Of Action and Milestones
@Param			id			path	string	true	"POA&M ID"
@Param			resourceId	path	string	true	"Resource ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/back-matter/resources/{resourceId} [delete]

func (*PlanOfActionAndMilestonesHandler) DeleteFinding

func (h *PlanOfActionAndMilestonesHandler) DeleteFinding(ctx echo.Context) error

DeleteFinding godoc

@Summary		Delete a finding from a POA&M
@Description	Deletes an existing finding for a given POA&M.
@Tags			Plan Of Action and Milestones
@Param			id			path	string	true	"POA&M ID"
@Param			findingId	path	string	true	"Finding ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/findings/{findingId} [delete]

func (*PlanOfActionAndMilestonesHandler) DeleteObservation

func (h *PlanOfActionAndMilestonesHandler) DeleteObservation(ctx echo.Context) error

DeleteObservation godoc

@Summary		Delete an observation from a POA&M
@Description	Deletes an existing observation for a given POA&M.
@Tags			Plan Of Action and Milestones
@Param			id		path	string	true	"POA&M ID"
@Param			obsId	path	string	true	"Observation ID"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/observations/{obsId} [delete]

func (*PlanOfActionAndMilestonesHandler) DeletePoamItem

func (h *PlanOfActionAndMilestonesHandler) DeletePoamItem(ctx echo.Context) error

DeletePoamItem godoc

@Summary		Delete a POAM item from a POA&M
@Description	Deletes an existing POAM item for a given POA&M.
@Tags			Plan Of Action and Milestones
@Param			id		path	string	true	"POA&M ID"
@Param			itemId	path	string	true	"POAM Item ID"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/poam-items/{itemId} [delete]

func (*PlanOfActionAndMilestonesHandler) DeleteRisk

DeleteRisk godoc

@Summary		Delete a risk from a POA&M
@Description	Deletes an existing risk for a given POA&M.
@Tags			Plan Of Action and Milestones
@Param			id		path	string	true	"POA&M ID"
@Param			riskId	path	string	true	"Risk ID"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/risks/{riskId} [delete]

func (*PlanOfActionAndMilestonesHandler) Full

Full godoc

@Summary		Get a complete POA&M
@Description	Retrieves a complete POA&M by its ID, including all metadata and related objects.
@Tags			Plan Of Action and Milestones
@Produce		json
@Param			id	path		string	true	"POA&M ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.PlanOfActionAndMilestones]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/full [get]

func (*PlanOfActionAndMilestonesHandler) Get

Get godoc

@Summary		Get a POA&M
@Description	Retrieves a single Plan of Action and Milestones by its unique ID.
@Tags			Plan Of Action and Milestones
@Produce		json
@Param			id	path		string	true	"POA&M ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.PlanOfActionAndMilestones]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id} [get]

func (*PlanOfActionAndMilestonesHandler) GetBackMatter

func (h *PlanOfActionAndMilestonesHandler) GetBackMatter(ctx echo.Context) error

GetBackMatter godoc

@Summary		Get POA&M back-matter
@Description	Retrieves back-matter for a given POA&M.
@Tags			Plan Of Action and Milestones
@Produce		json
@Param			id	path		string	true	"POA&M ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.BackMatter]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/back-matter [get]

func (*PlanOfActionAndMilestonesHandler) GetBackMatterResources

func (h *PlanOfActionAndMilestonesHandler) GetBackMatterResources(ctx echo.Context) error

GetBackMatterResources godoc

@Summary		Get back-matter resources for a POA&M
@Description	Retrieves all back-matter resources for a given POA&M.
@Tags			Plan Of Action and Milestones
@Produce		json
@Param			id	path		string	true	"POA&M ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Resource]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/back-matter/resources [get]

func (*PlanOfActionAndMilestonesHandler) GetFindings

func (h *PlanOfActionAndMilestonesHandler) GetFindings(ctx echo.Context) error

GetFindings godoc

@Summary		Get findings for a POA&M
@Description	Retrieves all findings for a given POA&M.
@Tags			Plan Of Action and Milestones
@Produce		json
@Param			id	path		string	true	"POA&M ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Finding]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/findings [get]

func (*PlanOfActionAndMilestonesHandler) GetImportSsp

func (h *PlanOfActionAndMilestonesHandler) GetImportSsp(ctx echo.Context) error

GetImportSsp godoc

@Summary		Get POA&M import-ssp
@Description	Retrieves import-ssp for a given POA&M.
@Tags			Plan Of Action and Milestones
@Produce		json
@Param			id	path		string	true	"POA&M ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ImportSsp]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/import-ssp [get]

func (*PlanOfActionAndMilestonesHandler) GetLocalDefinitions

func (h *PlanOfActionAndMilestonesHandler) GetLocalDefinitions(ctx echo.Context) error

GetLocalDefinitions godoc

@Summary		Get POA&M local definitions
@Description	Retrieves local definitions for a given POA&M.
@Tags			Plan Of Action and Milestones
@Produce		json
@Param			id	path		string	true	"POA&M ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.PlanOfActionAndMilestonesLocalDefinitions]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/local-definitions [get]

func (*PlanOfActionAndMilestonesHandler) GetMetadata

func (h *PlanOfActionAndMilestonesHandler) GetMetadata(ctx echo.Context) error

GetMetadata godoc

@Summary		Get POA&M metadata
@Description	Retrieves metadata for a given POA&M.
@Tags			Plan Of Action and Milestones
@Produce		json
@Param			id	path		string	true	"POA&M ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Metadata]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/metadata [get]

func (*PlanOfActionAndMilestonesHandler) GetObservations

func (h *PlanOfActionAndMilestonesHandler) GetObservations(ctx echo.Context) error

GetObservations godoc

@Summary		Get observations for a POA&M
@Description	Retrieves all observations for a given POA&M.
@Tags			Plan Of Action and Milestones
@Produce		json
@Param			id	path		string	true	"POA&M ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Observation]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/observations [get]

func (*PlanOfActionAndMilestonesHandler) GetPoamItems

func (h *PlanOfActionAndMilestonesHandler) GetPoamItems(ctx echo.Context) error

GetPoamItems godoc

@Summary		Get POA&M items
@Description	Retrieves all POA&M items for a given POA&M.
@Tags			Plan Of Action and Milestones
@Produce		json
@Param			id	path		string	true	"POA&M ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.PoamItem]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/poam-items [get]

func (*PlanOfActionAndMilestonesHandler) GetRisks

GetRisks godoc

@Summary		Get risks for a POA&M
@Description	Retrieves all risks for a given POA&M.
@Tags			Plan Of Action and Milestones
@Produce		json
@Param			id	path		string	true	"POA&M ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Risk]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/risks [get]

func (*PlanOfActionAndMilestonesHandler) GetSystemId

func (h *PlanOfActionAndMilestonesHandler) GetSystemId(ctx echo.Context) error

GetSystemId godoc

@Summary		Get POA&M system-id
@Description	Retrieves system-id for a given POA&M.
@Tags			Plan Of Action and Milestones
@Produce		json
@Param			id	path		string	true	"POA&M ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemId]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/system-id [get]

func (*PlanOfActionAndMilestonesHandler) List

List godoc

@Summary		List POA&Ms
@Description	Retrieves all Plan of Action and Milestones.
@Tags			Plan Of Action and Milestones
@Produce		json
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.PlanOfActionAndMilestones]
@Failure		400	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones [get]

func (*PlanOfActionAndMilestonesHandler) Register

Register registers POA&M endpoints to the API group.

func (*PlanOfActionAndMilestonesHandler) Update

Update godoc

@Summary		Update a POA&M
@Description	Updates an existing Plan of Action and Milestones.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id		path		string										true	"POA&M ID"
@Param			poam	body		oscalTypes_1_1_3.PlanOfActionAndMilestones	true	"POA&M data"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.PlanOfActionAndMilestones]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id} [put]

func (*PlanOfActionAndMilestonesHandler) UpdateBackMatter

func (h *PlanOfActionAndMilestonesHandler) UpdateBackMatter(ctx echo.Context) error

UpdateBackMatter updates back-matter for a POA&M

func (*PlanOfActionAndMilestonesHandler) UpdateBackMatterResource

func (h *PlanOfActionAndMilestonesHandler) UpdateBackMatterResource(ctx echo.Context) error

UpdateBackMatterResource godoc

@Summary		Update a back-matter resource for a POA&M
@Description	Updates an existing back-matter resource for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id			path		string						true	"POA&M ID"
@Param			resourceId	path		string						true	"Resource ID"
@Param			resource	body		oscalTypes_1_1_3.Resource	true	"Resource data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Resource]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/back-matter/resources/{resourceId} [put]

func (*PlanOfActionAndMilestonesHandler) UpdateFinding

func (h *PlanOfActionAndMilestonesHandler) UpdateFinding(ctx echo.Context) error

UpdateFinding godoc

@Summary		Update a finding for a POA&M
@Description	Updates an existing finding for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id			path		string						true	"POA&M ID"
@Param			findingId	path		string						true	"Finding ID"
@Param			finding		body		oscalTypes_1_1_3.Finding	true	"Finding data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Finding]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/findings/{findingId} [put]

func (*PlanOfActionAndMilestonesHandler) UpdateImportSsp

func (h *PlanOfActionAndMilestonesHandler) UpdateImportSsp(ctx echo.Context) error

UpdateImportSsp godoc

@Summary		Update import-ssp for a POA&M
@Description	Updates import-ssp for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id			path		string						true	"POA&M ID"
@Param			importSsp	body		oscalTypes_1_1_3.ImportSsp	true	"Import SSP data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ImportSsp]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/import-ssp [put]

func (*PlanOfActionAndMilestonesHandler) UpdateLocalDefinitions added in v0.11.0

func (h *PlanOfActionAndMilestonesHandler) UpdateLocalDefinitions(ctx echo.Context) error

UpdateLocalDefinitions godoc

@Summary		Update POA&M local-definitions
@Description	Updates local-definitions for a given POA&M with special handling of array and object fields.
@Description	- Components and inventory-items arrays are treated as full replacements: the existing values on the POA&M are overwritten by the arrays provided in the request body (no per-element merge is performed).
@Description	- Sending an empty array [] for components or inventory-items clears that specific field (resulting in an empty array on the POA&M).
@Description	- Omitting a field in the request body leaves the existing value for that field unchanged.
@Description	- Sending an empty JSON object {} as the payload deletes the entire local-definitions object for the POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id					path		string														true	"POA&M ID"
@Param			local-definitions	body		oscalTypes_1_1_3.PlanOfActionAndMilestonesLocalDefinitions	true	"Local definitions data"
@Success		200					{object}	handler.GenericDataResponse[oscalTypes_1_1_3.PlanOfActionAndMilestonesLocalDefinitions]
@Failure		400					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/local-definitions [put]

func (*PlanOfActionAndMilestonesHandler) UpdateMetadata

func (h *PlanOfActionAndMilestonesHandler) UpdateMetadata(ctx echo.Context) error

UpdateMetadata godoc

@Summary		Update POA&M metadata
@Description	Updates metadata for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id			path		string						true	"POA&M ID"
@Param			metadata	body		oscalTypes_1_1_3.Metadata	true	"Metadata data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Metadata]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/metadata [put]

func (*PlanOfActionAndMilestonesHandler) UpdateObservation

func (h *PlanOfActionAndMilestonesHandler) UpdateObservation(ctx echo.Context) error

UpdateObservation godoc

@Summary		Update an observation for a POA&M
@Description	Updates an existing observation for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id			path		string							true	"POA&M ID"
@Param			obsId		path		string							true	"Observation ID"
@Param			observation	body		oscalTypes_1_1_3.Observation	true	"Observation data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Observation]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/observations/{obsId} [put]

func (*PlanOfActionAndMilestonesHandler) UpdatePoamItem

func (h *PlanOfActionAndMilestonesHandler) UpdatePoamItem(ctx echo.Context) error

UpdatePoamItem godoc

@Summary		Update a POAM item for a POA&M
@Description	Updates an existing POAM item for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id			path		string						true	"POA&M ID"
@Param			itemId		path		string						true	"POAM Item ID"
@Param			poam-item	body		oscalTypes_1_1_3.PoamItem	true	"POAM Item data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.PoamItem]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/poam-items/{itemId} [put]

func (*PlanOfActionAndMilestonesHandler) UpdateRisk

UpdateRisk godoc

@Summary		Update a risk for a POA&M
@Description	Updates an existing risk for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id		path		string					true	"POA&M ID"
@Param			riskId	path		string					true	"Risk ID"
@Param			risk	body		oscalTypes_1_1_3.Risk	true	"Risk data"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Risk]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/risks/{riskId} [put]

func (*PlanOfActionAndMilestonesHandler) UpdateSystemId

func (h *PlanOfActionAndMilestonesHandler) UpdateSystemId(ctx echo.Context) error

UpdateSystemId godoc

@Summary		Update system-id for a POA&M
@Description	Updates system-id for a given POA&M.
@Tags			Plan Of Action and Milestones
@Accept			json
@Produce		json
@Param			id			path		string						true	"POA&M ID"
@Param			systemId	body		oscalTypes_1_1_3.SystemId	true	"System ID data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemId]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/plan-of-action-and-milestones/{id}/system-id [put]

type ProfileComplianceControl added in v0.13.0

type ProfileComplianceControl struct {
	ControlID      string                         `json:"controlId"`
	CatalogID      uuid.UUID                      `json:"catalogId"`
	Title          string                         `json:"title"`
	GroupID        string                         `json:"groupId,omitempty"`
	GroupTitle     string                         `json:"groupTitle,omitempty"`
	Implemented    *bool                          `json:"implemented,omitempty"`
	StatusCounts   []ProfileComplianceStatusCount `json:"statusCounts"`
	ComputedStatus string                         `json:"computedStatus"`
}

type ProfileComplianceGroup added in v0.13.0

type ProfileComplianceGroup struct {
	ID            string `json:"id"`
	Title         string `json:"title"`
	TotalControls int    `json:"totalControls"`
	Satisfied     int    `json:"satisfied"`
	NotSatisfied  int    `json:"notSatisfied"`
	Unknown       int    `json:"unknown"`
	CompliancePct int    `json:"compliancePercent"`
}

type ProfileComplianceImplementation added in v0.13.0

type ProfileComplianceImplementation struct {
	ImplementedControls   int `json:"implementedControls"`
	ImplementationPct     int `json:"implementationPercent"`
	UnimplementedControls int `json:"unimplementedControls"`
}

type ProfileComplianceProgress added in v0.13.0

type ProfileComplianceProgress struct {
	Scope          ProfileComplianceScope           `json:"scope"`
	Summary        ProfileComplianceSummary         `json:"summary"`
	Implementation *ProfileComplianceImplementation `json:"implementation,omitempty"`
	Groups         []ProfileComplianceGroup         `json:"groups"`
	Controls       []ProfileComplianceControl       `json:"controls"`
}

type ProfileComplianceScope added in v0.13.0

type ProfileComplianceScope struct {
	Type  string    `json:"type"`
	ID    uuid.UUID `json:"id"`
	Title string    `json:"title"`
}

type ProfileComplianceStatusCount added in v0.13.0

type ProfileComplianceStatusCount struct {
	Count  int64  `json:"count"`
	Status string `json:"status"`
}

type ProfileComplianceSummary added in v0.13.0

type ProfileComplianceSummary struct {
	TotalControls    int  `json:"totalControls"`
	Satisfied        int  `json:"satisfied"`
	NotSatisfied     int  `json:"notSatisfied"`
	Unknown          int  `json:"unknown"`
	CompliancePct    int  `json:"compliancePercent"`
	AssessedPct      int  `json:"assessedPercent"`
	ImplementedTotal *int `json:"implementedControls,omitempty"`
}

type ProfileHandler

type ProfileHandler struct {
	// contains filtered or unexported fields
}

func NewProfileHandler

func NewProfileHandler(sugar *zap.SugaredLogger, db *gorm.DB) *ProfileHandler

func (*ProfileHandler) AddImport

func (h *ProfileHandler) AddImport(ctx echo.Context) error

AddImport godoc

@Summary		Add Import to Profile
@Description	Adds an import to a profile by its UUID and type (catalog/profile). Only catalogs are currently supported currently
@Tags			Profile
@Param			id	path	string	true	"Profile ID"
@Accept			json
@Produce		json
@Param			request	body		oscal.ProfileHandler.AddImport.request	true	"Request data"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Import]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		409		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/imports/add [post]

func (*ProfileHandler) BuildByProps added in v0.12.0

func (h *ProfileHandler) BuildByProps(ctx echo.Context) error

BuildByProps

@Summary		Build Profile by Control Props
@Description	Generates a Profile selecting controls from a catalog based on prop matching rules. Returns the created Profile and the matched control IDs.
@Tags			Profile
@Accept			json
@Produce		json
@Param			request	body		oscal.BuildByPropsRequest	true	"Prop matching request"
@Success		201		{object}	handler.GenericDataResponse[oscal.BuildByPropsResponse]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/build-props [post]

func (*ProfileHandler) ComplianceProgress added in v0.13.0

func (h *ProfileHandler) ComplianceProgress(ctx echo.Context) error

ComplianceProgress godoc

@Summary		Get compliance progress for a Profile
@Description	Returns aggregated compliance progress for controls in a Profile, including summary, optional per-control rows, and group rollups.
@Tags			Profile
@Param			id				path	string	true	"Profile ID"
@Param			includeControls	query	bool	false	"Include per-control breakdown (default true)"
@Param			sspId			query	string	false	"System Security Plan ID for implementation coverage"
@Produce		json
@Success		200	{object}	handler.GenericDataResponse[oscal.ProfileComplianceProgress]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/compliance-progress [get]

func (*ProfileHandler) Create

func (h *ProfileHandler) Create(ctx echo.Context) error

Create godoc

@Summary		Create a new OSCAL Profile
@Description	Creates a new OSCAL Profile.
@Tags			Profile
@Accept			json
@Produce		json
@Param			profile	body		oscalTypes_1_1_3.Profile	true	"Profile object"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Profile]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles [post]

func (*ProfileHandler) DeleteImport

func (h *ProfileHandler) DeleteImport(ctx echo.Context) error

DeleteImport godoc

@Summary		Delete Import from Profile
@Description	Deletes an import from a profile by its href
@Tags			Profile
@Param			id		path	string	true	"Profile ID"
@Param			href	path	string	true	"Import Href"
@Produce		json
@Success		204	"Import deleted successfully"
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/imports/{href} [delete]

func (*ProfileHandler) Get

func (h *ProfileHandler) Get(ctx echo.Context) error

Get godoc

@Summary		Get Profile
@Description	Get an OSCAL profile with the uuid provided
@Tags			Profile
@Param			id	path	string	true	"Profile ID"
@Produce		json
@Success		200	{object}	handler.GenericDataResponse[oscal.ProfileHandler.Get.response]
@Failure		404	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		400	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id} [get]

func (*ProfileHandler) GetBackmatter

func (h *ProfileHandler) GetBackmatter(ctx echo.Context) error

GetBackmatter godoc

@Summary		Get Backmatter
@Description	Get the BackMatter for a specific profile
@Tags			Profile
@Param			id	path	string	true	"Profile ID"
@Produce		json
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.BackMatter]
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		400	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/back-matter [get]

func (*ProfileHandler) GetFull

func (h *ProfileHandler) GetFull(ctx echo.Context) error

GetFull godoc

@Summary		Get full Profile
@Description	Retrieves the full OSCAL Profile, including all nested content.
@Tags			Profile
@Produce		json
@Param			id	path		string	true	"Profile ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Profile]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/full [get]

func (*ProfileHandler) GetImport

func (h *ProfileHandler) GetImport(ctx echo.Context) error

GetImport godoc

@Summary		Get Import from Profile by Backmatter Href
@Description	Retrieves a specific import from a profile by its backmatter href
@Tags			Profile
@Param			id		path	string	true	"Profile UUID"
@Param			href	path	string	true	"Import Href"
@Produce		json
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Import]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/imports/{href} [get]

func (*ProfileHandler) GetMerge

func (h *ProfileHandler) GetMerge(ctx echo.Context) error

GetMerge godoc

@Summary		Get merge section
@Description	Retrieves the merge section for a specific profile.
@Tags			Profile
@Param			id	path	string	true	"Profile ID"
@Produce		json
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Merge]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/merge [get]

func (*ProfileHandler) GetModify

func (h *ProfileHandler) GetModify(ctx echo.Context) error

GetModify godoc

@Summary		Get modify section
@Description	Retrieves the modify section for a specific profile.
@Tags			Profile
@Param			id	path	string	true	"Profile ID"
@Produce		json
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Modify]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/modify [get]

func (*ProfileHandler) List

func (h *ProfileHandler) List(ctx echo.Context) error

List godoc

@Summary		List Profiles
@Description	Retrieves all OSCAL profiles
@Tags			Profile
@Produce		json
@Success		200	{object}	handler.GenericDataListResponse[oscal.ProfileHandler.List.response]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles [get]

func (*ProfileHandler) ListImports

func (h *ProfileHandler) ListImports(ctx echo.Context) error

ListImports godoc

@Summary		List Imports
@Description	List imports for a specific profile
@Tags			Profile
@Param			id	path	string	true	"Profile ID"
@Produce		json
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Import]
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		400	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/imports [get]

func (*ProfileHandler) Register

func (h *ProfileHandler) Register(api *echo.Group, guard middleware.ResourceGuard)

func (*ProfileHandler) Resolve

func (h *ProfileHandler) Resolve(ctx echo.Context) error

Resolve godoc

@Summary		Resolves a Profile as a stored catalog
@Description	Resolves a Profiled identified by the "profile ID" param and stores a new catalog in the database
@Tags			Profile
@Param			id	path	string	true	"Profile ID"
@Produce		json
@Success		201	{object}	handler.GenericDataResponse[oscal.ProfileHandler.Resolve.response]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/resolve [post]

func (*ProfileHandler) Resolved added in v0.4.1

func (h *ProfileHandler) Resolved(ctx echo.Context) error

Resolved godoc

@Summary		Get Resolved Profile
@Description	Returns a resolved OSCAL catalog based on a given Profile ID, applying all imports and modifications.
@Tags			Profile
@Param			id	path	string	true	"Profile ID"
@Produce		json
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Catalog]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/resolved [get]

func (*ProfileHandler) ResolvedWithCatalogs added in v0.13.0

func (h *ProfileHandler) ResolvedWithCatalogs(ctx echo.Context) error

ResolvedWithCatalogs godoc

@Summary		Get Resolved Profile with Catalog IDs
@Description	Returns a simplified flat list of controls from a resolved profile with control-id, catalog-id, title, and class.
@Tags			Profile
@Param			id	path	string	true	"Profile ID"
@Produce		json
@Success		200	{object}	handler.GenericDataListResponse[resolvedWithCatalogsResponse]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/resolved-with-catalogs [get]

func (*ProfileHandler) UpdateImport

func (h *ProfileHandler) UpdateImport(ctx echo.Context) error

UpdateImport godoc

@Summary		Update Import in Profile
@Description	Updates an existing import in a profile by its href
@Tags			Profile
@Param			id		path	string	true	"Profile ID"
@Param			href	path	string	true	"Import Href"
@Accept			json
@Produce		json
@Param			request	body		oscalTypes_1_1_3.Import	true	"Import data to update"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Import]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/imports/{href} [put]

func (*ProfileHandler) UpdateMerge

func (h *ProfileHandler) UpdateMerge(ctx echo.Context) error

UpdateMerge godoc

@Summary		Update Merge
@Description	Updates the merge information for a specific profile
@Tags			Profile
@Param			id	path	string	true	"Profile ID"
@Accept			json
@Produce		json
@Param			request	body		oscalTypes_1_1_3.Merge	true	"Merge data to update"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Merge]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/profiles/{id}/merge [put]

type RoleHandler

type RoleHandler struct {
	// contains filtered or unexported fields
}

func NewRoleHandler

func NewRoleHandler(l *zap.SugaredLogger, db *gorm.DB) *RoleHandler

func (*RoleHandler) Get

func (h *RoleHandler) Get(ctx echo.Context) error

@Summary Get a Role @Description Retrieves a single Role by its unique ID. @Tags Oscal @Produce json @Param id path string true "Party ID" @Success 200 {object} handler.GenericDataResponse[oscalTypes_1_1_3.Role] @Failure 400 {object} api.Error @Failure 401 {object} api.Error @Failure 404 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/roles/{id} [get]

func (*RoleHandler) List

func (h *RoleHandler) List(ctx echo.Context) error

@Summary List roles @Description Retrieves all roles. @Tags Oscal @Produce json @Success 200 {object} handler.GenericDataListResponse[oscalTypes_1_1_3.Role] @Failure 400 {object} api.Error @Failure 401 {object} api.Error @Failure 500 {object} api.Error @Security OAuth2Password @Router /oscal/roles [get]

func (*RoleHandler) Register

func (h *RoleHandler) Register(api *echo.Group, guard middleware.ResourceGuard)

type SSPExportOfferingHandler

type SSPExportOfferingHandler struct {
	// contains filtered or unexported fields
}

SSPExportOfferingHandler serves both the SSP-nested curation surface (create/edit/ delete/publish, gated by ssp:export) and the top-level read-only ssp-export-offering catalog (gated by ssp-export-offering:read).

func NewSSPExportOfferingHandler

func NewSSPExportOfferingHandler(l *zap.SugaredLogger, db *gorm.DB) *SSPExportOfferingHandler

func (*SSPExportOfferingHandler) CreateItem

func (h *SSPExportOfferingHandler) CreateItem(ctx echo.Context) error

CreateItem godoc

@Summary		Add an item to an export offering
@Description	Adds one offered capability (a control, optionally scoped to a statement, implemented by a component) to a draft export offering.
@Tags			SSP Export Offerings
@Accept			json
@Produce		json
@Param			id			path		string							true	"SSP ID"
@Param			offeringId	path		string							true	"Offering ID"
@Param			item		body		createExportOfferingItemRequest	true	"Item data"
@Success		201			{object}	handler.GenericDataResponse[relational.SSPExportOfferingItem]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/export-offerings/{offeringId}/items [post]

func (*SSPExportOfferingHandler) CreateOffering

func (h *SSPExportOfferingHandler) CreateOffering(ctx echo.Context) error

CreateOffering godoc

@Summary		Create an export offering
@Description	Creates a new draft export offering for an SSP.
@Tags			SSP Export Offerings
@Accept			json
@Produce		json
@Param			id			path		string						true	"SSP ID"
@Param			offering	body		createExportOfferingRequest	true	"Offering data"
@Success		201			{object}	handler.GenericDataResponse[relational.SSPExportOffering]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/export-offerings [post]

func (*SSPExportOfferingHandler) DeleteItem

func (h *SSPExportOfferingHandler) DeleteItem(ctx echo.Context) error

DeleteItem godoc

@Summary		Delete an export offering item
@Description	Removes one item from an export offering.
@Tags			SSP Export Offerings
@Param			id			path	string	true	"SSP ID"
@Param			offeringId	path	string	true	"Offering ID"
@Param			itemId		path	string	true	"Item ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/export-offerings/{offeringId}/items/{itemId} [delete]

func (*SSPExportOfferingHandler) DeleteOffering

func (h *SSPExportOfferingHandler) DeleteOffering(ctx echo.Context) error

DeleteOffering godoc

@Summary		Delete an export offering
@Description	Deletes an export offering and its items.
@Tags			SSP Export Offerings
@Param			id			path	string	true	"SSP ID"
@Param			offeringId	path	string	true	"Offering ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/export-offerings/{offeringId} [delete]

func (*SSPExportOfferingHandler) GetByID

func (h *SSPExportOfferingHandler) GetByID(ctx echo.Context) error

GetByID godoc

@Summary		Get an export offering
@Description	Retrieves a single published export offering by its own ID (no parent SSP scoping). Draft/deprecated/revoked offerings are only visible via the SSP-nested curation routes.
@Tags			SSP Export Offerings
@Produce		json
@Param			id	path		string	true	"Offering ID"
@Success		200	{object}	handler.GenericDataResponse[catalogOffering]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/ssp-export-offerings/{id} [get]

func (*SSPExportOfferingHandler) GetOffering

func (h *SSPExportOfferingHandler) GetOffering(ctx echo.Context) error

GetOffering godoc

@Summary		Get an export offering
@Description	Retrieves a single export offering (with its items) curated for an SSP.
@Tags			SSP Export Offerings
@Produce		json
@Param			id			path		string	true	"SSP ID"
@Param			offeringId	path		string	true	"Offering ID"
@Success		200			{object}	handler.GenericDataResponse[relational.SSPExportOffering]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/export-offerings/{offeringId} [get]

func (*SSPExportOfferingHandler) ListAll

func (h *SSPExportOfferingHandler) ListAll(ctx echo.Context) error

ListAll godoc

@Summary		List export offerings
@Description	Retrieves published export offerings across all system security plans. Draft/deprecated/revoked offerings are only visible via the SSP-nested curation routes.
@Tags			SSP Export Offerings
@Produce		json
@Param			limit	query		int	false	"Max number of offerings to return (default 100, max 1000)"
@Param			offset	query		int	false	"Number of offerings to skip"
@Success		200		{object}	handler.GenericDataListResponse[catalogOffering]
@Failure		400		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/ssp-export-offerings [get]

func (*SSPExportOfferingHandler) ListForSSP

func (h *SSPExportOfferingHandler) ListForSSP(ctx echo.Context) error

ListForSSP godoc

@Summary		List export offerings for an SSP
@Description	Retrieves every export offering curated for a given system security plan.
@Tags			SSP Export Offerings
@Produce		json
@Param			id	path		string	true	"SSP ID"
@Success		200	{object}	handler.GenericDataListResponse[relational.SSPExportOffering]
@Failure		400	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/export-offerings [get]

func (*SSPExportOfferingHandler) Publish

func (h *SSPExportOfferingHandler) Publish(ctx echo.Context) error

Publish godoc

@Summary		Publish an export offering
@Description	Transitions a draft export offering to published (or republishes a
@Description	published one), recomputing content_hash via SyncExportOffering and
@Description	bumping version only if the content actually changed since the last publish.
@Tags			SSP Export Offerings
@Produce		json
@Param			id			path		string	true	"SSP ID"
@Param			offeringId	path		string	true	"Offering ID"
@Success		200			{object}	handler.GenericDataResponse[relational.SSPExportOffering]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/export-offerings/{offeringId}/publish [post]

func (*SSPExportOfferingHandler) Register

func (h *SSPExportOfferingHandler) Register(api *echo.Group, guard middleware.ResourceGuard)

Register mounts the top-level, cross-SSP read-only catalog: list and get any offering by its own ID, gated by ssp-export-offering:read.

func (*SSPExportOfferingHandler) RegisterNested

func (h *SSPExportOfferingHandler) RegisterNested(api *echo.Group, guard middleware.ResourceGuard)

RegisterNested mounts the SSP-scoped curation routes onto the SSP handler's own route group, guarded uniformly by ssp:export — curating and publishing an offering is a distinct capability from ssp's ordinary read/create/update/delete verbs.

func (*SSPExportOfferingHandler) UpdateItem

func (h *SSPExportOfferingHandler) UpdateItem(ctx echo.Context) error

UpdateItem godoc

@Summary		Update an export offering item
@Description	Updates one item of an export offering.
@Tags			SSP Export Offerings
@Accept			json
@Produce		json
@Param			id			path		string							true	"SSP ID"
@Param			offeringId	path		string							true	"Offering ID"
@Param			itemId		path		string							true	"Item ID"
@Param			item		body		createExportOfferingItemRequest	true	"Item data"
@Success		200			{object}	handler.GenericDataResponse[relational.SSPExportOfferingItem]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/export-offerings/{offeringId}/items/{itemId} [put]

func (*SSPExportOfferingHandler) UpdateOffering

func (h *SSPExportOfferingHandler) UpdateOffering(ctx echo.Context) error

UpdateOffering godoc

@Summary		Update an export offering
@Description	Updates the title/description of an export offering. Does not change items, status, version or content_hash.
@Tags			SSP Export Offerings
@Accept			json
@Produce		json
@Param			id			path		string						true	"SSP ID"
@Param			offeringId	path		string						true	"Offering ID"
@Param			offering	body		createExportOfferingRequest	true	"Offering data"
@Success		200			{object}	handler.GenericDataResponse[relational.SSPExportOffering]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/export-offerings/{offeringId} [put]

type SSPJobEnqueuer added in v0.15.0

type SSPJobEnqueuer interface {
	EnqueueOrphanedRiskCleanup(ctx context.Context, sspID uuid.UUID, oldProfileID, newProfileID *uuid.UUID) error
	EnqueueDashboardSuggestionCells(ctx context.Context, runID uuid.UUID, cellCount int) error
}

SSPJobEnqueuer is a minimal interface for enqueueing SSP-related background jobs. Defined here to avoid a circular import between the oscal handler and worker packages.

type SSPLeverageHandler

type SSPLeverageHandler struct {
	// contains filtered or unexported fields
}

SSPLeverageHandler serves the downstream side of BCH-1338 Phase 2: subscribing to a published SSPExportOffering (recording OSCAL inherited + satisfied + a leveraged-authorization on the downstream SSP) and the read-only projection over what a downstream SSP has subscribed to.

func NewSSPLeverageHandler

func NewSSPLeverageHandler(l *zap.SugaredLogger, db *gorm.DB, pdp authz.PDP, failMode authz.FailMode) *SSPLeverageHandler

func (*SSPLeverageHandler) LeveragedControls

func (h *SSPLeverageHandler) LeveragedControls(ctx echo.Context) error

LeveragedControls godoc

@Summary		Project a downstream SSP's leveraged controls
@Description	Read-only view over the downstream SSP's own inherited/satisfied entries
@Description	joined to ssp_leverage_links + the upstream offering. Per control/statement,
@Description	returns which offering it was inherited from, whether satisfaction is full
@Description	or partial (recomputed live from the current satisfied-responsibility rows,
@Description	not trusted from the link's stored value), any outstanding
@Description	responsibilities, and live evidence-backed posture per responsibility uuid
@Description	(satisfied/not-satisfied/unknown, via filter_responsibilities). Writes
@Description	nothing; never touches profile_controls/controls.
@Tags			SSP Export Offerings
@Produce		json
@Param			id	path		string	true	"Downstream SSP ID"
@Success		200	{object}	handler.GenericDataListResponse[leveragedControlResponse]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/leveraged-controls [get]

func (*SSPLeverageHandler) RegisterProjection

func (h *SSPLeverageHandler) RegisterProjection(g *echo.Group, guard middleware.ResourceGuard)

RegisterProjection mounts the leveraged-controls projection onto the SSP handler's own route group, gated by the standard ssp:read.

func (*SSPLeverageHandler) RegisterSubscribe

func (h *SSPLeverageHandler) RegisterSubscribe(g *echo.Group, guard middleware.ResourceGuard)

RegisterSubscribe mounts the subscribe route onto the same group the flat ssp-export-offering catalog uses, gated by ssp-export-offering:subscribe.

func (*SSPLeverageHandler) Subscribe

func (h *SSPLeverageHandler) Subscribe(ctx echo.Context) error

Subscribe godoc

@Summary		Subscribe to a published export offering
@Description	Records, on the downstream SSP named in the request body, an OSCAL
@Description	inherited-control-implementation and (optionally) satisfied-responsibility
@Description	entries per chosen offering item, plus one leveraged-authorization for the
@Description	whole request — all in a single atomic write. Never checks ssp:read on the
@Description	upstream SSP: the trust boundary is that subscribing to a published offering
@Description	only requires ssp-export-offering:subscribe on the offering and ssp:update on
@Description	the downstream SSP.
@Tags			SSP Export Offerings
@Accept			json
@Produce		json
@Param			id			path		string				true	"Offering ID"
@Param			subscribe	body		subscribeRequest	true	"Subscribe request"
@Success		201			{object}	handler.GenericDataListResponse[relational.SSPLeverageLink]
@Failure		400			{object}	api.Error
@Failure		403			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		409			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/ssp-export-offerings/{id}/subscribe [post]

type SystemComponentRequest added in v0.13.0

type SystemComponentRequest struct {
	oscalTypes_1_1_3.SystemComponent
	DefinedComponentID *uuid.UUID `json:"definedComponentId,omitempty"`
}

type SystemSecurityPlanHandler

type SystemSecurityPlanHandler struct {
	// contains filtered or unexported fields
}

func NewSystemSecurityPlanHandler

func NewSystemSecurityPlanHandler(sugar *zap.SugaredLogger, db *gorm.DB, evidenceSvc *evidencesvc.EvidenceService, jobEnqueuer SSPJobEnqueuer) *SystemSecurityPlanHandler

func (*SystemSecurityPlanHandler) AddProfile added in v0.16.0

func (h *SystemSecurityPlanHandler) AddProfile(ctx echo.Context) error

AddProfile godoc

@Summary		Add a Profile binding to an SSP
@Description	Associates an additional Profile with a System Security Plan. Creates ImplementedRequirements for any new controls.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string				true	"SSP ID"
@Param			request	body		addProfileRequest	true	"Profile binding request"
@Success		200		{object}	handler.GenericDataListResponse[profileSummary]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		409		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/profiles [post]

func (*SystemSecurityPlanHandler) ApplySuggestion added in v0.13.0

func (h *SystemSecurityPlanHandler) ApplySuggestion(ctx echo.Context) error

ApplySuggestion godoc

@Summary		Apply a specific component suggestion for an implemented requirement
@Description	Creates or reuses a SystemComponent from the provided DefinedComponent and links it via ByComponent.
@Tags			System Security Plans
@Accept			json
@Param			id		path	string					true	"SSP ID"
@Param			reqId	path	string					true	"Implemented Requirement ID"
@Param			request	body	ApplySuggestionRequest	true	"Suggestion to apply"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/apply-suggestion [post]

func (*SystemSecurityPlanHandler) ApplySuggestionForStatement added in v0.13.0

func (h *SystemSecurityPlanHandler) ApplySuggestionForStatement(ctx echo.Context) error

ApplySuggestionForStatement godoc

@Summary		Apply a specific component suggestion for a statement
@Description	Creates or reuses a SystemComponent from the provided DefinedComponent and links it via ByComponent to the statement.
@Tags			System Security Plans
@Accept			json
@Param			id		path	string					true	"SSP ID"
@Param			reqId	path	string					true	"Implemented Requirement ID"
@Param			stmtId	path	string					true	"Statement ID"
@Param			request	body	ApplySuggestionRequest	true	"Suggestion to apply"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/apply-suggestion [post]

func (*SystemSecurityPlanHandler) ApplySuggestionsForStatement added in v0.13.0

func (h *SystemSecurityPlanHandler) ApplySuggestionsForStatement(ctx echo.Context) error

ApplySuggestionsForStatement godoc

@Summary		Apply all component suggestions for a statement
@Description	Creates SystemComponents from all matching DefinedComponents and links them via ByComponent to the statement.
@Tags			System Security Plans
@Param			id		path	string	true	"SSP ID"
@Param			reqId	path	string	true	"Implemented Requirement ID"
@Param			stmtId	path	string	true	"Statement ID"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/apply-suggestions [post]

func (*SystemSecurityPlanHandler) AttachProfile added in v0.4.1

func (h *SystemSecurityPlanHandler) AttachProfile(ctx echo.Context) error

AttachProfile godoc

@Summary		Attach a Profile to a System Security Plan
@Description	Associates a given Profile with a System Security Plan.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string				true	"SSP ID"
@Param			request	body		addProfileRequest	true	"Profile binding request"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemSecurityPlan]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/system-security-plans/{id}/profile [put]

func (*SystemSecurityPlanHandler) BulkApplyComponentSuggestions added in v0.13.0

func (h *SystemSecurityPlanHandler) BulkApplyComponentSuggestions(ctx echo.Context) error

BulkApplyComponentSuggestions godoc

@Summary		Bulk apply component suggestions for all implemented requirements in an SSP
@Description	For each ImplementedRequirement, creates SystemComponents from matching DefinedComponents and links them via ByComponent.
@Tags			System Security Plans
@Param			id	path	string	true	"SSP ID"
@Success		204	"No Content"
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/bulk-apply-component-suggestions [post]

func (*SystemSecurityPlanHandler) Create

Create godoc

@Summary		Create a System Security Plan
@Description	Creates a System Security Plan from input.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			ssp	body		oscalTypes_1_1_3.SystemSecurityPlan	true	"SSP data"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemSecurityPlan]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans [post]

func (*SystemSecurityPlanHandler) CreateBackMatterResource

func (h *SystemSecurityPlanHandler) CreateBackMatterResource(ctx echo.Context) error

CreateBackMatterResource godoc

@Summary		Create a new back-matter resource for a SSP
@Description	Creates a new back-matter resource for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id			path		string						true	"SSP ID"
@Param			resource	body		oscalTypes_1_1_3.Resource	true	"Resource data"
@Success		201			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Resource]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/system-security-plans/{id}/back-matter/resources [post]

func (*SystemSecurityPlanHandler) CreateCharacteristicsAuthorizationBoundaryDiagram added in v0.4.6

func (h *SystemSecurityPlanHandler) CreateCharacteristicsAuthorizationBoundaryDiagram(ctx echo.Context) error

CreateCharacteristicsAuthorizationBoundaryDiagram godoc

@Summary		Create an Authorization Boundary Diagram
@Description	Creates a new Diagram under the Authorization Boundary of a System Security Plan. Creates the Authorization Boundary grouping if it does not exist yet.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string						true	"System Security Plan ID"
@Param			diagram	body		oscalTypes_1_1_3.Diagram	true	"Diagram object to create"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Diagram]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics/authorization-boundary/diagrams [post]

func (*SystemSecurityPlanHandler) CreateCharacteristicsDataFlowDiagram added in v0.4.6

func (h *SystemSecurityPlanHandler) CreateCharacteristicsDataFlowDiagram(ctx echo.Context) error

CreateCharacteristicsDataFlowDiagram godoc

@Summary		Create a Data Flow Diagram
@Description	Creates a new Diagram under the Data Flow of a System Security Plan. Creates the Data Flow grouping if it does not exist yet.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string						true	"System Security Plan ID"
@Param			diagram	body		oscalTypes_1_1_3.Diagram	true	"Diagram object to create"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Diagram]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics/data-flow/diagrams [post]

func (*SystemSecurityPlanHandler) CreateCharacteristicsNetworkArchitectureDiagram added in v0.4.6

func (h *SystemSecurityPlanHandler) CreateCharacteristicsNetworkArchitectureDiagram(ctx echo.Context) error

CreateCharacteristicsNetworkArchitectureDiagram godoc

@Summary		Create a Network Architecture Diagram
@Description	Creates a new Diagram under the Network Architecture of a System Security Plan. Creates the Network Architecture grouping if it does not exist yet.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string						true	"System Security Plan ID"
@Param			diagram	body		oscalTypes_1_1_3.Diagram	true	"Diagram object to create"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Diagram]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics/network-architecture/diagrams [post]

func (*SystemSecurityPlanHandler) CreateImplementedRequirement

func (h *SystemSecurityPlanHandler) CreateImplementedRequirement(ctx echo.Context) error

CreateImplementedRequirement godoc

@Summary		Create a new implemented requirement for a SSP
@Description	Creates a new implemented requirement for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id			path		string									true	"SSP ID"
@Param			requirement	body		oscalTypes_1_1_3.ImplementedRequirement	true	"Implemented Requirement data"
@Success		201			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ImplementedRequirement]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements [post]

func (*SystemSecurityPlanHandler) CreateImplementedRequirementByComponentExport

func (h *SystemSecurityPlanHandler) CreateImplementedRequirementByComponentExport(ctx echo.Context) error

CreateImplementedRequirementByComponentExport godoc

@Summary		Create the export for a control-level by-component
@Description	Creates the Export for a by-component within an implemented requirement. A by-component may have at most one Export.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string					true	"SSP ID"
@Param			reqId			path		string					true	"Requirement ID"
@Param			byComponentId	path		string					true	"By-Component ID"
@Param			export			body		oscalTypes_1_1_3.Export	true	"Export data"
@Success		201				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Export]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		409				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/by-components/{byComponentId}/export [post]

func (*SystemSecurityPlanHandler) CreateImplementedRequirementByComponentExportProvided

func (h *SystemSecurityPlanHandler) CreateImplementedRequirementByComponentExportProvided(ctx echo.Context) error

CreateImplementedRequirementByComponentExportProvided godoc

@Summary		Create a provided entry on a control-level by-component's export
@Description	Creates a ProvidedControlImplementation entry under the Export of a by-component within an implemented requirement.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string											true	"SSP ID"
@Param			reqId			path		string											true	"Requirement ID"
@Param			byComponentId	path		string											true	"By-Component ID"
@Param			provided		body		oscalTypes_1_1_3.ProvidedControlImplementation	true	"Provided data"
@Success		201				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ProvidedControlImplementation]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/by-components/{byComponentId}/export/provided [post]

func (*SystemSecurityPlanHandler) CreateImplementedRequirementByComponentExportResponsibility

func (h *SystemSecurityPlanHandler) CreateImplementedRequirementByComponentExportResponsibility(ctx echo.Context) error

CreateImplementedRequirementByComponentExportResponsibility godoc

@Summary		Create a responsibility entry on a control-level by-component's export
@Description	Creates a ControlImplementationResponsibility entry under the Export of a by-component within an implemented requirement.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string													true	"SSP ID"
@Param			reqId			path		string													true	"Requirement ID"
@Param			byComponentId	path		string													true	"By-Component ID"
@Param			responsibility	body		oscalTypes_1_1_3.ControlImplementationResponsibility	true	"Responsibility data"
@Success		201				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ControlImplementationResponsibility]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/by-components/{byComponentId}/export/responsibilities [post]

func (*SystemSecurityPlanHandler) CreateImplementedRequirementStatement

func (h *SystemSecurityPlanHandler) CreateImplementedRequirementStatement(ctx echo.Context) error

CreateImplementedRequirementStatement godoc

@Summary		Create a new statement within an implemented requirement
@Description	Creates a new statement within an implemented requirement for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id			path		string						true	"SSP ID"
@Param			reqId		path		string						true	"Requirement ID"
@Param			statement	body		oscalTypes_1_1_3.Statement	true	"Statement data"
@Success		201			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Statement]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements [post]

func (*SystemSecurityPlanHandler) CreateImplementedRequirementStatementByComponent added in v0.4.7

func (h *SystemSecurityPlanHandler) CreateImplementedRequirementStatementByComponent(ctx echo.Context) error

CreateImplementedRequirementStatementByComponent godoc

@Summary		Create a by-component within a statement (within an implemented requirement)
@Description	Create a by-component within an existing statement within an implemented requirement for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string							true	"SSP ID"
@Param			reqId			path		string							true	"Requirement ID"
@Param			stmtId			path		string							true	"Statement ID"
@Param			by-component	body		oscalTypes_1_1_3.ByComponent	true	"By-Component data"
@Success		201				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ByComponent]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/by-components [post]

func (*SystemSecurityPlanHandler) CreateImplementedRequirementStatementByComponentExport

func (h *SystemSecurityPlanHandler) CreateImplementedRequirementStatementByComponentExport(ctx echo.Context) error

CreateImplementedRequirementStatementByComponentExport godoc

@Summary		Create the export for a statement-level by-component
@Description	Creates the Export for a by-component within a statement. A by-component may have at most one Export.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string					true	"SSP ID"
@Param			reqId			path		string					true	"Requirement ID"
@Param			stmtId			path		string					true	"Statement ID"
@Param			byComponentId	path		string					true	"By-Component ID"
@Param			export			body		oscalTypes_1_1_3.Export	true	"Export data"
@Success		201				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Export]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		409				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/by-components/{byComponentId}/export [post]

func (*SystemSecurityPlanHandler) CreateImplementedRequirementStatementByComponentExportProvided

func (h *SystemSecurityPlanHandler) CreateImplementedRequirementStatementByComponentExportProvided(ctx echo.Context) error

CreateImplementedRequirementStatementByComponentExportProvided godoc

@Summary		Create a provided entry on a statement-level by-component's export
@Description	Creates a ProvidedControlImplementation entry under the Export of a by-component within a statement.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string											true	"SSP ID"
@Param			reqId			path		string											true	"Requirement ID"
@Param			stmtId			path		string											true	"Statement ID"
@Param			byComponentId	path		string											true	"By-Component ID"
@Param			provided		body		oscalTypes_1_1_3.ProvidedControlImplementation	true	"Provided data"
@Success		201				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ProvidedControlImplementation]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/by-components/{byComponentId}/export/provided [post]

func (*SystemSecurityPlanHandler) CreateImplementedRequirementStatementByComponentExportResponsibility

func (h *SystemSecurityPlanHandler) CreateImplementedRequirementStatementByComponentExportResponsibility(ctx echo.Context) error

CreateImplementedRequirementStatementByComponentExportResponsibility godoc

@Summary		Create a responsibility entry on a statement-level by-component's export
@Description	Creates a ControlImplementationResponsibility entry under the Export of a by-component within a statement.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string													true	"SSP ID"
@Param			reqId			path		string													true	"Requirement ID"
@Param			stmtId			path		string													true	"Statement ID"
@Param			byComponentId	path		string													true	"By-Component ID"
@Param			responsibility	body		oscalTypes_1_1_3.ControlImplementationResponsibility	true	"Responsibility data"
@Success		201				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ControlImplementationResponsibility]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/by-components/{byComponentId}/export/responsibilities [post]

func (*SystemSecurityPlanHandler) CreateSystemImplementationComponent

func (h *SystemSecurityPlanHandler) CreateSystemImplementationComponent(ctx echo.Context) error

CreateSystemImplementationComponent godoc

@Summary		Create a new system component
@Description	Creates a new system component for a given SSP. Accepts an optional definedComponentId field to link to a DefinedComponent.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id			path		string					true	"SSP ID"
@Param			component	body		SystemComponentRequest	true	"System Component data with optional definedComponentId field"
@Success		201			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemComponent]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/system-security-plans/{id}/system-implementation/components [post]

func (*SystemSecurityPlanHandler) CreateSystemImplementationInventoryItem

func (h *SystemSecurityPlanHandler) CreateSystemImplementationInventoryItem(ctx echo.Context) error

CreateSystemImplementationInventoryItem godoc

@Summary		Create a new inventory item
@Description	Creates a new inventory item for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string							true	"SSP ID"
@Param			item	body		oscalTypes_1_1_3.InventoryItem	true	"Inventory Item data"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.InventoryItem]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/system-security-plans/{id}/system-implementation/inventory-items [post]

func (*SystemSecurityPlanHandler) CreateSystemImplementationLeveragedAuthorization

func (h *SystemSecurityPlanHandler) CreateSystemImplementationLeveragedAuthorization(ctx echo.Context) error

CreateSystemImplementationLeveragedAuthorization godoc

@Summary		Create a new leveraged authorization
@Description	Creates a new leveraged authorization for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string									true	"SSP ID"
@Param			auth	body		oscalTypes_1_1_3.LeveragedAuthorization	true	"Leveraged Authorization data"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.LeveragedAuthorization]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/system-security-plans/{id}/system-implementation/leveraged-authorizations [post]

func (*SystemSecurityPlanHandler) CreateSystemImplementationUser

func (h *SystemSecurityPlanHandler) CreateSystemImplementationUser(ctx echo.Context) error

CreateSystemImplementationUser godoc

@Summary		Create a new system user
@Description	Creates a new system user for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string						true	"SSP ID"
@Param			user	body		oscalTypes_1_1_3.SystemUser	true	"System User data"
@Success		201		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemUser]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/system-security-plans/{id}/system-implementation/users [post]

func (*SystemSecurityPlanHandler) Delete

Delete godoc

@Summary		Delete a System Security Plan
@Description	Deletes an existing System Security Plan and all its related data.
@Tags			System Security Plans
@Param			id	path	string	true	"SSP ID"
@Success		204	"No Content"
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/system-security-plans/{id} [delete]

func (*SystemSecurityPlanHandler) DeleteBackMatterResource

func (h *SystemSecurityPlanHandler) DeleteBackMatterResource(ctx echo.Context) error

DeleteBackMatterResource godoc

@Summary		Delete a back-matter resource from a SSP
@Description	Deletes an existing back-matter resource for a given SSP.
@Tags			System Security Plans
@Param			id			path	string	true	"SSP ID"
@Param			resourceId	path	string	true	"Resource ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/system-security-plans/{id}/back-matter/resources/{resourceId} [delete]

func (*SystemSecurityPlanHandler) DeleteCharacteristicsAuthorizationBoundaryDiagram added in v0.4.6

func (h *SystemSecurityPlanHandler) DeleteCharacteristicsAuthorizationBoundaryDiagram(ctx echo.Context) error

DeleteCharacteristicsAuthorizationBoundaryDiagram godoc

@Summary		Delete an Authorization Boundary Diagram
@Description	Deletes a specific Diagram under the Authorization Boundary of a System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id		path	string	true	"System Security Plan ID"
@Param			diagram	path	string	true	"Diagram ID"
@Success		204
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics/authorization-boundary/diagrams/{diagram} [delete]

func (*SystemSecurityPlanHandler) DeleteCharacteristicsDataFlowDiagram added in v0.4.6

func (h *SystemSecurityPlanHandler) DeleteCharacteristicsDataFlowDiagram(ctx echo.Context) error

DeleteCharacteristicsDataFlowDiagram godoc

@Summary		Delete a Data Flow Diagram
@Description	Deletes a specific Diagram under the Data Flow of a System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id		path	string	true	"System Security Plan ID"
@Param			diagram	path	string	true	"Diagram ID"
@Success		204
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics/data-flow/diagrams/{diagram} [delete]

func (*SystemSecurityPlanHandler) DeleteCharacteristicsNetworkArchitectureDiagram added in v0.4.6

func (h *SystemSecurityPlanHandler) DeleteCharacteristicsNetworkArchitectureDiagram(ctx echo.Context) error

DeleteCharacteristicsNetworkArchitectureDiagram godoc

@Summary		Delete a Network Architecture Diagram
@Description	Deletes a specific Diagram under the Network Architecture of a System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id		path	string	true	"System Security Plan ID"
@Param			diagram	path	string	true	"Diagram ID"
@Success		204
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics/network-architecture/diagrams/{diagram} [delete]

func (*SystemSecurityPlanHandler) DeleteImplementedRequirement

func (h *SystemSecurityPlanHandler) DeleteImplementedRequirement(ctx echo.Context) error

DeleteImplementedRequirement godoc

@Summary		Delete an implemented requirement from a SSP
@Description	Deletes an existing implemented requirement for a given SSP.
@Tags			System Security Plans
@Param			id		path	string	true	"SSP ID"
@Param			reqId	path	string	true	"Requirement ID"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId} [delete]

func (*SystemSecurityPlanHandler) DeleteImplementedRequirementByComponentExport

func (h *SystemSecurityPlanHandler) DeleteImplementedRequirementByComponentExport(ctx echo.Context) error

DeleteImplementedRequirementByComponentExport godoc

@Summary		Delete the export for a control-level by-component
@Description	Deletes the Export (and its Provided/Responsibilities entries) for a by-component within an implemented requirement.
@Tags			System Security Plans
@Param			id				path	string	true	"SSP ID"
@Param			reqId			path	string	true	"Requirement ID"
@Param			byComponentId	path	string	true	"By-Component ID"
@Success		204				"No Content"
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/by-components/{byComponentId}/export [delete]

func (*SystemSecurityPlanHandler) DeleteImplementedRequirementByComponentExportProvided

func (h *SystemSecurityPlanHandler) DeleteImplementedRequirementByComponentExportProvided(ctx echo.Context) error

DeleteImplementedRequirementByComponentExportProvided godoc

@Summary		Delete a provided entry on a control-level by-component's export
@Description	Deletes an existing ProvidedControlImplementation entry under the Export of a by-component within an implemented requirement.
@Tags			System Security Plans
@Param			id				path	string	true	"SSP ID"
@Param			reqId			path	string	true	"Requirement ID"
@Param			byComponentId	path	string	true	"By-Component ID"
@Param			providedId		path	string	true	"Provided entry ID"
@Success		204				"No Content"
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/by-components/{byComponentId}/export/provided/{providedId} [delete]

func (*SystemSecurityPlanHandler) DeleteImplementedRequirementByComponentExportResponsibility

func (h *SystemSecurityPlanHandler) DeleteImplementedRequirementByComponentExportResponsibility(ctx echo.Context) error

DeleteImplementedRequirementByComponentExportResponsibility godoc

@Summary		Delete a responsibility entry on a control-level by-component's export
@Description	Deletes an existing ControlImplementationResponsibility entry under the Export of a by-component within an implemented requirement.
@Tags			System Security Plans
@Param			id					path	string	true	"SSP ID"
@Param			reqId				path	string	true	"Requirement ID"
@Param			byComponentId		path	string	true	"By-Component ID"
@Param			responsibilityId	path	string	true	"Responsibility entry ID"
@Success		204					"No Content"
@Failure		400					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/by-components/{byComponentId}/export/responsibilities/{responsibilityId} [delete]

func (*SystemSecurityPlanHandler) DeleteImplementedRequirementStatementByComponent added in v0.4.7

func (h *SystemSecurityPlanHandler) DeleteImplementedRequirementStatementByComponent(ctx echo.Context) error

DeleteImplementedRequirementStatementByComponent godoc

@Summary		Delete a by-component within a statement (within an implemented requirement)
@Description	Deletes a by-component within an existing statement within an implemented requirement for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string	true	"SSP ID"
@Param			reqId			path		string	true	"Requirement ID"
@Param			stmtId			path		string	true	"Statement ID"
@Param			byComponentId	path		string	true	"By-Component ID"
@Success		200				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ByComponent]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/by-components/{byComponentId} [delete]

func (*SystemSecurityPlanHandler) DeleteImplementedRequirementStatementByComponentExport

func (h *SystemSecurityPlanHandler) DeleteImplementedRequirementStatementByComponentExport(ctx echo.Context) error

DeleteImplementedRequirementStatementByComponentExport godoc

@Summary		Delete the export for a statement-level by-component
@Description	Deletes the Export (and its Provided/Responsibilities entries) for a by-component within a statement.
@Tags			System Security Plans
@Param			id				path	string	true	"SSP ID"
@Param			reqId			path	string	true	"Requirement ID"
@Param			stmtId			path	string	true	"Statement ID"
@Param			byComponentId	path	string	true	"By-Component ID"
@Success		204				"No Content"
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/by-components/{byComponentId}/export [delete]

func (*SystemSecurityPlanHandler) DeleteImplementedRequirementStatementByComponentExportProvided

func (h *SystemSecurityPlanHandler) DeleteImplementedRequirementStatementByComponentExportProvided(ctx echo.Context) error

DeleteImplementedRequirementStatementByComponentExportProvided godoc

@Summary		Delete a provided entry on a statement-level by-component's export
@Description	Deletes an existing ProvidedControlImplementation entry under the Export of a by-component within a statement.
@Tags			System Security Plans
@Param			id				path	string	true	"SSP ID"
@Param			reqId			path	string	true	"Requirement ID"
@Param			stmtId			path	string	true	"Statement ID"
@Param			byComponentId	path	string	true	"By-Component ID"
@Param			providedId		path	string	true	"Provided entry ID"
@Success		204				"No Content"
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/by-components/{byComponentId}/export/provided/{providedId} [delete]

func (*SystemSecurityPlanHandler) DeleteImplementedRequirementStatementByComponentExportResponsibility

func (h *SystemSecurityPlanHandler) DeleteImplementedRequirementStatementByComponentExportResponsibility(ctx echo.Context) error

DeleteImplementedRequirementStatementByComponentExportResponsibility godoc

@Summary		Delete a responsibility entry on a statement-level by-component's export
@Description	Deletes an existing ControlImplementationResponsibility entry under the Export of a by-component within a statement.
@Tags			System Security Plans
@Param			id					path	string	true	"SSP ID"
@Param			reqId				path	string	true	"Requirement ID"
@Param			stmtId				path	string	true	"Statement ID"
@Param			byComponentId		path	string	true	"By-Component ID"
@Param			responsibilityId	path	string	true	"Responsibility entry ID"
@Success		204					"No Content"
@Failure		400					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/by-components/{byComponentId}/export/responsibilities/{responsibilityId} [delete]

func (*SystemSecurityPlanHandler) DeleteSystemImplementationComponent

func (h *SystemSecurityPlanHandler) DeleteSystemImplementationComponent(ctx echo.Context) error

DeleteSystemImplementationComponent godoc

@Summary		Delete a system component
@Description	Deletes an existing system component for a given SSP.
@Tags			System Security Plans
@Param			id			path	string	true	"SSP ID"
@Param			componentId	path	string	true	"Component ID"
@Success		204			"No Content"
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/system-security-plans/{id}/system-implementation/components/{componentId} [delete]

func (*SystemSecurityPlanHandler) DeleteSystemImplementationInventoryItem

func (h *SystemSecurityPlanHandler) DeleteSystemImplementationInventoryItem(ctx echo.Context) error

DeleteSystemImplementationInventoryItem godoc

@Summary		Delete an inventory item
@Description	Deletes an existing inventory item for a given SSP.
@Tags			System Security Plans
@Param			id		path	string	true	"SSP ID"
@Param			itemId	path	string	true	"Item ID"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/system-security-plans/{id}/system-implementation/inventory-items/{itemId} [delete]

func (*SystemSecurityPlanHandler) DeleteSystemImplementationLeveragedAuthorization

func (h *SystemSecurityPlanHandler) DeleteSystemImplementationLeveragedAuthorization(ctx echo.Context) error

DeleteSystemImplementationLeveragedAuthorization godoc

@Summary		Delete a leveraged authorization
@Description	Deletes an existing leveraged authorization for a given SSP.
@Tags			System Security Plans
@Param			id		path	string	true	"SSP ID"
@Param			authId	path	string	true	"Authorization ID"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/system-security-plans/{id}/system-implementation/leveraged-authorizations/{authId} [delete]

func (*SystemSecurityPlanHandler) DeleteSystemImplementationUser

func (h *SystemSecurityPlanHandler) DeleteSystemImplementationUser(ctx echo.Context) error

DeleteSystemImplementationUser godoc

@Summary		Delete a system user
@Description	Deletes an existing system user for a given SSP.
@Tags			System Security Plans
@Param			id		path	string	true	"SSP ID"
@Param			userId	path	string	true	"User ID"
@Success		204		"No Content"
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/system-security-plans/{id}/system-implementation/users/{userId} [delete]

func (*SystemSecurityPlanHandler) Full

func (*SystemSecurityPlanHandler) Get

Get godoc

@Summary		Get a System Security Plan
@Description	Retrieves a single System Security Plan by its unique ID.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemSecurityPlan]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id} [get]

func (*SystemSecurityPlanHandler) GetBackMatter

func (h *SystemSecurityPlanHandler) GetBackMatter(ctx echo.Context) error

GetBackMatter godoc

@Summary		Get SSP back-matter
@Description	Retrieves back-matter for a given SSP.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"SSP ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.BackMatter]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/system-security-plans/{id}/back-matter [get]

func (*SystemSecurityPlanHandler) GetBackMatterResources

func (h *SystemSecurityPlanHandler) GetBackMatterResources(ctx echo.Context) error

GetBackMatterResources godoc

@Summary		Get back-matter resources for a SSP
@Description	Retrieves all back-matter resources for a given SSP.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"SSP ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.Resource]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/system-security-plans/{id}/back-matter/resources [get]

func (*SystemSecurityPlanHandler) GetCharacteristics

func (h *SystemSecurityPlanHandler) GetCharacteristics(ctx echo.Context) error

GetCharacteristics godoc

@Summary		Get System Characteristics
@Description	Retrieves the System Characteristics for a given System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemCharacteristics]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics [get]

func (*SystemSecurityPlanHandler) GetCharacteristicsAuthorizationBoundary

func (h *SystemSecurityPlanHandler) GetCharacteristicsAuthorizationBoundary(ctx echo.Context) error

GetCharacteristicsAuthorizationBoundary godoc

@Summary		Get Authorization Boundary
@Description	Retrieves the Authorization Boundary for a given System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.AuthorizationBoundary]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics/authorization-boundary [get]

func (*SystemSecurityPlanHandler) GetCharacteristicsDataFlow

func (h *SystemSecurityPlanHandler) GetCharacteristicsDataFlow(ctx echo.Context) error

GetCharacteristicsDataFlow godoc

@Summary		Get Data Flow
@Description	Retrieves the Data Flow for a given System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.DataFlow]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics/data-flow [get]

func (*SystemSecurityPlanHandler) GetCharacteristicsNetworkArchitecture

func (h *SystemSecurityPlanHandler) GetCharacteristicsNetworkArchitecture(ctx echo.Context) error

GetCharacteristicsNetworkArchitecture godoc

@Summary		Get Network Architecture
@Description	Retrieves the Network Architecture for a given System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.NetworkArchitecture]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics/network-architecture [get]

func (*SystemSecurityPlanHandler) GetControlImplementation

func (h *SystemSecurityPlanHandler) GetControlImplementation(ctx echo.Context) error

GetControlImplementation godoc

@Summary		Get Control Implementation
@Description	Retrieves the Control Implementation for a given System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ControlImplementation]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation [get]

func (*SystemSecurityPlanHandler) GetImplementedRequirementByComponentExport

func (h *SystemSecurityPlanHandler) GetImplementedRequirementByComponentExport(ctx echo.Context) error

GetImplementedRequirementByComponentExport godoc

@Summary		Get the export for a control-level by-component
@Description	Retrieves the Export (with nested Provided and Responsibilities) for a by-component within an implemented requirement.
@Tags			System Security Plans
@Produce		json
@Param			id				path		string	true	"SSP ID"
@Param			reqId			path		string	true	"Requirement ID"
@Param			byComponentId	path		string	true	"By-Component ID"
@Success		200				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Export]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/by-components/{byComponentId}/export [get]

func (*SystemSecurityPlanHandler) GetImplementedRequirementStatementByComponentExport

func (h *SystemSecurityPlanHandler) GetImplementedRequirementStatementByComponentExport(ctx echo.Context) error

GetImplementedRequirementStatementByComponentExport godoc

@Summary		Get the export for a statement-level by-component
@Description	Retrieves the Export (with nested Provided and Responsibilities) for a by-component within a statement.
@Tags			System Security Plans
@Produce		json
@Param			id				path		string	true	"SSP ID"
@Param			reqId			path		string	true	"Requirement ID"
@Param			stmtId			path		string	true	"Statement ID"
@Param			byComponentId	path		string	true	"By-Component ID"
@Success		200				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Export]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/by-components/{byComponentId}/export [get]

func (*SystemSecurityPlanHandler) GetImplementedRequirements

func (h *SystemSecurityPlanHandler) GetImplementedRequirements(ctx echo.Context) error

GetImplementedRequirements godoc

@Summary		Get implemented requirements for a SSP
@Description	Retrieves all implemented requirements for a given SSP.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"SSP ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.ImplementedRequirement]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements [get]

func (*SystemSecurityPlanHandler) GetImportProfile

func (h *SystemSecurityPlanHandler) GetImportProfile(ctx echo.Context) error

GetImportProfile godoc

@Summary		Get SSP import-profile
@Description	Retrieves import-profile for a given SSP.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"SSP ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ImportProfile]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/system-security-plans/{id}/import-profile [get]

func (*SystemSecurityPlanHandler) GetMetadata

func (h *SystemSecurityPlanHandler) GetMetadata(ctx echo.Context) error

GetMetadata godoc

@Summary		Get SSP metadata
@Description	Retrieves metadata for a given SSP.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"SSP ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Metadata]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/system-security-plans/{id}/metadata [get]

func (*SystemSecurityPlanHandler) GetProfile added in v0.4.1

func (h *SystemSecurityPlanHandler) GetProfile(ctx echo.Context) error

GetProfile godoc

@Summary		Get Profile for a System Security Plan
@Description	Retrieves the Profile attached to the specified System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Profile]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/profile [get]

func (*SystemSecurityPlanHandler) GetSystemImplementation

func (h *SystemSecurityPlanHandler) GetSystemImplementation(ctx echo.Context) error

GetSystemImplementation godoc

@Summary		Get System Implementation
@Description	Retrieves the System Implementation for a given System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemImplementation]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-implementation [get]

func (*SystemSecurityPlanHandler) GetSystemImplementationComponent

func (h *SystemSecurityPlanHandler) GetSystemImplementationComponent(ctx echo.Context) error

GetSystemImplementationComponent godoc

@Summary		Get System Implementation Component
@Description	Retrieves component in the System Implementation for a given System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id			path		string	true	"System Security Plan ID"
@Param			componentId	path		string	true	"Component ID"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemComponent]
@Failure		400			{object}	api.Error
@Failure		401			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-implementation/components/{componentId} [get]

func (*SystemSecurityPlanHandler) GetSystemImplementationComponents

func (h *SystemSecurityPlanHandler) GetSystemImplementationComponents(ctx echo.Context) error

GetSystemImplementationComponents godoc

@Summary		List System Implementation Components
@Description	Retrieves components in the System Implementation for a given System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.SystemComponent]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-implementation/components [get]

func (*SystemSecurityPlanHandler) GetSystemImplementationInventoryItems

func (h *SystemSecurityPlanHandler) GetSystemImplementationInventoryItems(ctx echo.Context) error

GetSystemImplementationInventoryItems godoc

@Summary		List System Implementation Inventory Items
@Description	Retrieves inventory items in the System Implementation for a given System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.InventoryItem]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-implementation/inventory-items [get]

func (*SystemSecurityPlanHandler) GetSystemImplementationLeveragedAuthorizations

func (h *SystemSecurityPlanHandler) GetSystemImplementationLeveragedAuthorizations(ctx echo.Context) error

GetSystemImplementationLeveragedAuthorizations godoc

@Summary		List System Implementation Leveraged Authorizations
@Description	Retrieves leveraged authorizations in the System Implementation for a given System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.LeveragedAuthorization]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-implementation/leveraged-authorizations [get]

func (*SystemSecurityPlanHandler) GetSystemImplementationUsers

func (h *SystemSecurityPlanHandler) GetSystemImplementationUsers(ctx echo.Context) error

GetSystemImplementationUsers godoc

@Summary		List System Implementation Users
@Description	Retrieves users in the System Implementation for a given System Security Plan.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"System Security Plan ID"
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.SystemUser]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-implementation/users [get]

func (*SystemSecurityPlanHandler) List

List godoc

@Summary		List System Security Plans
@Description	Retrieves all System Security Plans.
@Tags			System Security Plans
@Produce		json
@Success		200	{object}	handler.GenericDataListResponse[oscalTypes_1_1_3.SystemSecurityPlan]
@Failure		400	{object}	api.Error
@Failure		401	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans [get]

func (*SystemSecurityPlanHandler) ListProfiles added in v0.16.0

func (h *SystemSecurityPlanHandler) ListProfiles(ctx echo.Context) error

ListProfiles godoc

@Summary		List Profiles bound to an SSP
@Description	Returns all profiles associated with a System Security Plan via the ssp_profiles join table.
@Tags			System Security Plans
@Produce		json
@Param			id	path		string	true	"SSP ID"
@Success		200	{object}	handler.GenericDataListResponse[profileSummary]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/profiles [get]

func (*SystemSecurityPlanHandler) Register

func (h *SystemSecurityPlanHandler) Register(api *echo.Group, guard middleware.ResourceGuard)

func (*SystemSecurityPlanHandler) RemoveProfile added in v0.16.0

func (h *SystemSecurityPlanHandler) RemoveProfile(ctx echo.Context) error

RemoveProfile godoc

@Summary		Remove a Profile binding from an SSP
@Description	Removes a profile association from a System Security Plan. Enqueues orphaned risk cleanup.
@Tags			System Security Plans
@Produce		json
@Param			id			path		string	true	"SSP ID"
@Param			profileId	path		string	true	"Profile ID to remove"
@Success		200			{object}	handler.GenericDataListResponse[profileSummary]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/profiles/{profileId} [delete]

func (*SystemSecurityPlanHandler) SuggestComponents added in v0.13.0

func (h *SystemSecurityPlanHandler) SuggestComponents(ctx echo.Context) error

SuggestComponents godoc

@Summary		Suggest system components for an implemented requirement
@Description	Returns DefinedComponents that implement the same control and are not yet present in the SSP.
@Tags			System Security Plans
@Produce		json
@Param			id		path		string	true	"SSP ID"
@Param			reqId	path		string	true	"Implemented Requirement ID"
@Success		200		{object}	handler.GenericDataListResponse[relational.SystemComponentSuggestion]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/suggest-components [post]

func (*SystemSecurityPlanHandler) SuggestComponentsForStatement added in v0.13.0

func (h *SystemSecurityPlanHandler) SuggestComponentsForStatement(ctx echo.Context) error

SuggestComponentsForStatement godoc

@Summary		Suggest system components for a statement
@Description	Returns DefinedComponents that implement the statement's parent control and are not yet present in the SSP.
@Tags			System Security Plans
@Produce		json
@Param			id		path		string	true	"SSP ID"
@Param			reqId	path		string	true	"Implemented Requirement ID"
@Param			stmtId	path		string	true	"Statement ID"
@Success		200		{object}	handler.GenericDataListResponse[relational.SystemComponentSuggestion]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/suggest-components [post]

func (*SystemSecurityPlanHandler) Update

Update godoc

@Summary		Update a System Security Plan
@Description	Updates an existing System Security Plan.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id	path		string								true	"SSP ID"
@Param			ssp	body		oscalTypes_1_1_3.SystemSecurityPlan	true	"SSP data"
@Success		200	{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemSecurityPlan]
@Failure		400	{object}	api.Error
@Failure		404	{object}	api.Error
@Failure		500	{object}	api.Error
@Router			/oscal/system-security-plans/{id} [put]

func (*SystemSecurityPlanHandler) UpdateBackMatter

func (h *SystemSecurityPlanHandler) UpdateBackMatter(ctx echo.Context) error

UpdateBackMatter godoc

@Summary		Update SSP back-matter
@Description	Updates back-matter for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id			path		string						true	"SSP ID"
@Param			back-matter	body		oscalTypes_1_1_3.BackMatter	true	"Back Matter data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.BackMatter]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/system-security-plans/{id}/back-matter [put]

func (*SystemSecurityPlanHandler) UpdateBackMatterResource

func (h *SystemSecurityPlanHandler) UpdateBackMatterResource(ctx echo.Context) error

UpdateBackMatterResource godoc

@Summary		Update a back-matter resource for a SSP
@Description	Updates an existing back-matter resource for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id			path		string						true	"SSP ID"
@Param			resourceId	path		string						true	"Resource ID"
@Param			resource	body		oscalTypes_1_1_3.Resource	true	"Resource data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Resource]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/system-security-plans/{id}/back-matter/resources/{resourceId} [put]

func (*SystemSecurityPlanHandler) UpdateCharacteristics

func (h *SystemSecurityPlanHandler) UpdateCharacteristics(ctx echo.Context) error

UpdateCharacteristics godoc

@Summary		Update System Characteristics
@Description	Updates the System Characteristics for a given System Security Plan.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string									true	"System Security Plan ID"
@Param			characteristics	body		oscalTypes_1_1_3.SystemCharacteristics	true	"Updated System Characteristics object"
@Success		200				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemCharacteristics]
@Failure		400				{object}	api.Error
@Failure		401				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics [put]

func (*SystemSecurityPlanHandler) UpdateCharacteristicsAuthorizationBoundaryDiagram

func (h *SystemSecurityPlanHandler) UpdateCharacteristicsAuthorizationBoundaryDiagram(ctx echo.Context) error

UpdateCharacteristicsAuthorizationBoundaryDiagram godoc

@Summary		Update an Authorization Boundary Diagram
@Description	Updates a specific Diagram under the Authorization Boundary of a System Security Plan.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string						true	"System Security Plan ID"
@Param			diagram	path		string						true	"Diagram ID"
@Param			diagram	body		oscalTypes_1_1_3.Diagram	true	"Updated Diagram object"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Diagram]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics/authorization-boundary/diagrams/{diagram} [put]

func (*SystemSecurityPlanHandler) UpdateCharacteristicsDataFlowDiagram

func (h *SystemSecurityPlanHandler) UpdateCharacteristicsDataFlowDiagram(ctx echo.Context) error

UpdateCharacteristicsDataFlowDiagram godoc

@Summary		Update a Data Flow Diagram
@Description	Updates a specific Diagram under the Data Flow of a System Security Plan.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string						true	"System Security Plan ID"
@Param			diagram	path		string						true	"Diagram ID"
@Param			diagram	body		oscalTypes_1_1_3.Diagram	true	"Updated Diagram object"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Diagram]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics/data-flow/diagrams/{diagram} [put]

func (*SystemSecurityPlanHandler) UpdateCharacteristicsNetworkArchitectureDiagram

func (h *SystemSecurityPlanHandler) UpdateCharacteristicsNetworkArchitectureDiagram(ctx echo.Context) error

UpdateCharacteristicsNetworkArchitectureDiagram godoc

@Summary		Update a Network Architecture Diagram
@Description	Updates a specific Diagram under the Network Architecture of a System Security Plan.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string						true	"System Security Plan ID"
@Param			diagram	path		string						true	"Diagram ID"
@Param			diagram	body		oscalTypes_1_1_3.Diagram	true	"Updated Diagram object"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Diagram]
@Failure		400		{object}	api.Error
@Failure		401		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-characteristics/network-architecture/diagrams/{diagram} [put]

func (*SystemSecurityPlanHandler) UpdateControlImplementation

func (h *SystemSecurityPlanHandler) UpdateControlImplementation(ctx echo.Context) error

UpdateControlImplementation godoc

@Summary		Update Control Implementation
@Description	Updates the Control Implementation for a given System Security Plan.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id						path		string									true	"System Security Plan ID"
@Param			control-implementation	body		oscalTypes_1_1_3.ControlImplementation	true	"Updated Control Implementation object"
@Success		200						{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ControlImplementation]
@Failure		400						{object}	api.Error
@Failure		404						{object}	api.Error
@Failure		500						{object}	api.Error
@Router			/oscal/system-security-plans/{id}/control-implementation [put]

func (*SystemSecurityPlanHandler) UpdateImplementedRequirement

func (h *SystemSecurityPlanHandler) UpdateImplementedRequirement(ctx echo.Context) error

UpdateImplementedRequirement godoc

@Summary		Update an implemented requirement for a SSP
@Description	Updates an existing implemented requirement for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id			path		string									true	"SSP ID"
@Param			reqId		path		string									true	"Requirement ID"
@Param			requirement	body		oscalTypes_1_1_3.ImplementedRequirement	true	"Implemented Requirement data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ImplementedRequirement]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId} [put]

func (*SystemSecurityPlanHandler) UpdateImplementedRequirementByComponent added in v0.4.9

func (h *SystemSecurityPlanHandler) UpdateImplementedRequirementByComponent(ctx echo.Context) error

UpdateImplementedRequirementByComponent godoc

@Summary		Update a by-component within an implemented requirement
@Description	Updates an existing by-component that belongs to an implemented requirement for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string							true	"SSP ID"
@Param			reqId			path		string							true	"Requirement ID"
@Param			byComponentId	path		string							true	"By-Component ID"
@Param			by-component	body		oscalTypes_1_1_3.ByComponent	true	"By-Component data"
@Success		200				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ByComponent]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/by-components/{byComponentId} [put]

func (*SystemSecurityPlanHandler) UpdateImplementedRequirementByComponentExport

func (h *SystemSecurityPlanHandler) UpdateImplementedRequirementByComponentExport(ctx echo.Context) error

UpdateImplementedRequirementByComponentExport godoc

@Summary		Update the export for a control-level by-component
@Description	Updates the scalar fields of an existing Export for a by-component within an implemented requirement. Provided and Responsibilities entries are managed via their own routes.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string					true	"SSP ID"
@Param			reqId			path		string					true	"Requirement ID"
@Param			byComponentId	path		string					true	"By-Component ID"
@Param			export			body		oscalTypes_1_1_3.Export	true	"Export data"
@Success		200				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Export]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/by-components/{byComponentId}/export [put]

func (*SystemSecurityPlanHandler) UpdateImplementedRequirementByComponentExportProvided

func (h *SystemSecurityPlanHandler) UpdateImplementedRequirementByComponentExportProvided(ctx echo.Context) error

UpdateImplementedRequirementByComponentExportProvided godoc

@Summary		Update a provided entry on a control-level by-component's export
@Description	Replaces an existing ProvidedControlImplementation entry under the Export of a by-component within an implemented requirement.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string											true	"SSP ID"
@Param			reqId			path		string											true	"Requirement ID"
@Param			byComponentId	path		string											true	"By-Component ID"
@Param			providedId		path		string											true	"Provided entry ID"
@Param			provided		body		oscalTypes_1_1_3.ProvidedControlImplementation	true	"Provided data"
@Success		200				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ProvidedControlImplementation]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/by-components/{byComponentId}/export/provided/{providedId} [put]

func (*SystemSecurityPlanHandler) UpdateImplementedRequirementByComponentExportResponsibility

func (h *SystemSecurityPlanHandler) UpdateImplementedRequirementByComponentExportResponsibility(ctx echo.Context) error

UpdateImplementedRequirementByComponentExportResponsibility godoc

@Summary		Update a responsibility entry on a control-level by-component's export
@Description	Replaces an existing ControlImplementationResponsibility entry under the Export of a by-component within an implemented requirement.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id					path		string													true	"SSP ID"
@Param			reqId				path		string													true	"Requirement ID"
@Param			byComponentId		path		string													true	"By-Component ID"
@Param			responsibilityId	path		string													true	"Responsibility entry ID"
@Param			responsibility		body		oscalTypes_1_1_3.ControlImplementationResponsibility	true	"Responsibility data"
@Success		200					{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ControlImplementationResponsibility]
@Failure		400					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/by-components/{byComponentId}/export/responsibilities/{responsibilityId} [put]

func (*SystemSecurityPlanHandler) UpdateImplementedRequirementStatement

func (h *SystemSecurityPlanHandler) UpdateImplementedRequirementStatement(ctx echo.Context) error

UpdateImplementedRequirementStatement godoc

@Summary		Update a statement within an implemented requirement
@Description	Updates an existing statement within an implemented requirement for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id			path		string						true	"SSP ID"
@Param			reqId		path		string						true	"Requirement ID"
@Param			stmtId		path		string						true	"Statement ID"
@Param			statement	body		oscalTypes_1_1_3.Statement	true	"Statement data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Statement]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId} [put]

func (*SystemSecurityPlanHandler) UpdateImplementedRequirementStatementByComponent added in v0.4.4

func (h *SystemSecurityPlanHandler) UpdateImplementedRequirementStatementByComponent(ctx echo.Context) error

UpdateImplementedRequirementStatementByComponent godoc

@Summary		Update a by-component within a statement (within an implemented requirement)
@Description	Updates a by-component within an existing statement within an implemented requirement for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string							true	"SSP ID"
@Param			reqId			path		string							true	"Requirement ID"
@Param			stmtId			path		string							true	"Statement ID"
@Param			byComponentId	path		string							true	"By-Component ID"
@Param			by-component	body		oscalTypes_1_1_3.ByComponent	true	"By-Component data"
@Success		200				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ByComponent]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/by-components/{byComponentId} [put]

func (*SystemSecurityPlanHandler) UpdateImplementedRequirementStatementByComponentExport

func (h *SystemSecurityPlanHandler) UpdateImplementedRequirementStatementByComponentExport(ctx echo.Context) error

UpdateImplementedRequirementStatementByComponentExport godoc

@Summary		Update the export for a statement-level by-component
@Description	Updates the scalar fields of an existing Export for a by-component within a statement. Provided and Responsibilities entries are managed via their own routes.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string					true	"SSP ID"
@Param			reqId			path		string					true	"Requirement ID"
@Param			stmtId			path		string					true	"Statement ID"
@Param			byComponentId	path		string					true	"By-Component ID"
@Param			export			body		oscalTypes_1_1_3.Export	true	"Export data"
@Success		200				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Export]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/by-components/{byComponentId}/export [put]

func (*SystemSecurityPlanHandler) UpdateImplementedRequirementStatementByComponentExportProvided

func (h *SystemSecurityPlanHandler) UpdateImplementedRequirementStatementByComponentExportProvided(ctx echo.Context) error

UpdateImplementedRequirementStatementByComponentExportProvided godoc

@Summary		Update a provided entry on a statement-level by-component's export
@Description	Replaces an existing ProvidedControlImplementation entry under the Export of a by-component within a statement.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string											true	"SSP ID"
@Param			reqId			path		string											true	"Requirement ID"
@Param			stmtId			path		string											true	"Statement ID"
@Param			byComponentId	path		string											true	"By-Component ID"
@Param			providedId		path		string											true	"Provided entry ID"
@Param			provided		body		oscalTypes_1_1_3.ProvidedControlImplementation	true	"Provided data"
@Success		200				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ProvidedControlImplementation]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/by-components/{byComponentId}/export/provided/{providedId} [put]

func (*SystemSecurityPlanHandler) UpdateImplementedRequirementStatementByComponentExportResponsibility

func (h *SystemSecurityPlanHandler) UpdateImplementedRequirementStatementByComponentExportResponsibility(ctx echo.Context) error

UpdateImplementedRequirementStatementByComponentExportResponsibility godoc

@Summary		Update a responsibility entry on a statement-level by-component's export
@Description	Replaces an existing ControlImplementationResponsibility entry under the Export of a by-component within a statement.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id					path		string													true	"SSP ID"
@Param			reqId				path		string													true	"Requirement ID"
@Param			stmtId				path		string													true	"Statement ID"
@Param			byComponentId		path		string													true	"By-Component ID"
@Param			responsibilityId	path		string													true	"Responsibility entry ID"
@Param			responsibility		body		oscalTypes_1_1_3.ControlImplementationResponsibility	true	"Responsibility data"
@Success		200					{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ControlImplementationResponsibility]
@Failure		400					{object}	api.Error
@Failure		404					{object}	api.Error
@Failure		500					{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/control-implementation/implemented-requirements/{reqId}/statements/{stmtId}/by-components/{byComponentId}/export/responsibilities/{responsibilityId} [put]

func (*SystemSecurityPlanHandler) UpdateImportProfile

func (h *SystemSecurityPlanHandler) UpdateImportProfile(ctx echo.Context) error

UpdateImportProfile godoc

@Summary		Update SSP import-profile
@Description	Updates import-profile for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id				path		string							true	"SSP ID"
@Param			import-profile	body		oscalTypes_1_1_3.ImportProfile	true	"Import Profile data"
@Success		200				{object}	handler.GenericDataResponse[oscalTypes_1_1_3.ImportProfile]
@Failure		400				{object}	api.Error
@Failure		404				{object}	api.Error
@Failure		500				{object}	api.Error
@Router			/oscal/system-security-plans/{id}/import-profile [put]

func (*SystemSecurityPlanHandler) UpdateMetadata

func (h *SystemSecurityPlanHandler) UpdateMetadata(ctx echo.Context) error

UpdateMetadata godoc

@Summary		Update SSP metadata
@Description	Updates metadata for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id			path		string						true	"SSP ID"
@Param			metadata	body		oscalTypes_1_1_3.Metadata	true	"Metadata data"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.Metadata]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/system-security-plans/{id}/metadata [put]

func (*SystemSecurityPlanHandler) UpdateSystemImplementation

func (h *SystemSecurityPlanHandler) UpdateSystemImplementation(ctx echo.Context) error

UpdateSystemImplementation godoc

@Summary		Update System Implementation
@Description	Updates the System Implementation for a given System Security Plan.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id						path		string									true	"System Security Plan ID"
@Param			system-implementation	body		oscalTypes_1_1_3.SystemImplementation	true	"Updated System Implementation object"
@Success		200						{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemImplementation]
@Failure		400						{object}	api.Error
@Failure		401						{object}	api.Error
@Failure		404						{object}	api.Error
@Failure		500						{object}	api.Error
@Security		OAuth2Password
@Router			/oscal/system-security-plans/{id}/system-implementation [put]

func (*SystemSecurityPlanHandler) UpdateSystemImplementationComponent

func (h *SystemSecurityPlanHandler) UpdateSystemImplementationComponent(ctx echo.Context) error

UpdateSystemImplementationComponent godoc

@Summary		Update a system component
@Description	Updates an existing system component for a given SSP. Accepts an optional definedComponentId field to link to a DefinedComponent.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id			path		string					true	"SSP ID"
@Param			componentId	path		string					true	"Component ID"
@Param			component	body		SystemComponentRequest	true	"System Component data with optional definedComponentId field"
@Success		200			{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemComponent]
@Failure		400			{object}	api.Error
@Failure		404			{object}	api.Error
@Failure		500			{object}	api.Error
@Router			/oscal/system-security-plans/{id}/system-implementation/components/{componentId} [put]

func (*SystemSecurityPlanHandler) UpdateSystemImplementationInventoryItem

func (h *SystemSecurityPlanHandler) UpdateSystemImplementationInventoryItem(ctx echo.Context) error

UpdateSystemImplementationInventoryItem godoc

@Summary		Update an inventory item
@Description	Updates an existing inventory item for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string							true	"SSP ID"
@Param			itemId	path		string							true	"Item ID"
@Param			item	body		oscalTypes_1_1_3.InventoryItem	true	"Inventory Item data"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.InventoryItem]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/system-security-plans/{id}/system-implementation/inventory-items/{itemId} [put]

func (*SystemSecurityPlanHandler) UpdateSystemImplementationLeveragedAuthorization

func (h *SystemSecurityPlanHandler) UpdateSystemImplementationLeveragedAuthorization(ctx echo.Context) error

UpdateSystemImplementationLeveragedAuthorization godoc

@Summary		Update a leveraged authorization
@Description	Updates an existing leveraged authorization for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string									true	"SSP ID"
@Param			authId	path		string									true	"Authorization ID"
@Param			auth	body		oscalTypes_1_1_3.LeveragedAuthorization	true	"Leveraged Authorization data"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.LeveragedAuthorization]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/system-security-plans/{id}/system-implementation/leveraged-authorizations/{authId} [put]

func (*SystemSecurityPlanHandler) UpdateSystemImplementationUser

func (h *SystemSecurityPlanHandler) UpdateSystemImplementationUser(ctx echo.Context) error

UpdateSystemImplementationUser godoc

@Summary		Update a system user
@Description	Updates an existing system user for a given SSP.
@Tags			System Security Plans
@Accept			json
@Produce		json
@Param			id		path		string						true	"SSP ID"
@Param			userId	path		string						true	"User ID"
@Param			user	body		oscalTypes_1_1_3.SystemUser	true	"System User data"
@Success		200		{object}	handler.GenericDataResponse[oscalTypes_1_1_3.SystemUser]
@Failure		400		{object}	api.Error
@Failure		404		{object}	api.Error
@Failure		500		{object}	api.Error
@Router			/oscal/system-security-plans/{id}/system-implementation/users/{userId} [put]

type Validatable added in v0.4.2

type Validatable interface {
	Validate() []ValidationError
}

type ValidationError added in v0.4.2

type ValidationError struct {
	Message string `json:"message"`
	Field   string `json:"field,omitempty"`
}

Jump to

Keyboard shortcuts

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