001// Generated from: ../../../../../../../../oscal/src/metaschema/oscal_component_metaschema.xml 002// Do not edit - changes will be lost when regenerated. 003package dev.metaschema.oscal.lib.model; 004 005import dev.metaschema.core.datatype.markup.MarkupLine; 006import dev.metaschema.core.datatype.markup.MarkupMultiline; 007import dev.metaschema.databind.IBindingContext; 008import dev.metaschema.databind.model.AbstractBoundModule; 009import dev.metaschema.databind.model.IBoundModule; 010import dev.metaschema.databind.model.annotations.MetaschemaModule; 011import java.net.URI; 012import java.util.List; 013 014/** 015 * OSCAL Component Definition Model 016 * <p>The OSCAL Component Definition Model can be used to describe the implementation of controls in a <code>component</code> or a set of components grouped as a <code>capability</code>. A component can be either a <em>technical component</em> , or a <em>documentary component</em>.</p> 017 * <p>A technical component is a component that is implemented in hardware (physical or virtual) or software. Suppliers may document components in an OSCAL component definition that describes the implementation of controls in their hardware and software.</p> 018 * <p>A documentary component is a component implemented for a documented process, procedure, or policy. Suppliers may document components in an OSCAL component definition that describes the implementation of controls in their process, procedure, or policy.</p> 019 * <p>The information provided by a technical or documentary component can be used by component consumers to provide starting narratives for documenting control implementations in an OSCAL SSP.</p> 020 * <p>The root of the OSCAL Implementation Layer Component Definition model is <code>component-definition</code>.</p> 021 */ 022@MetaschemaModule( 023 assemblies = { 024 ComponentDefinition.class, 025 ImportComponentDefinition.class, 026 DefinedComponent.class, 027 Capability.class, 028 IncorporatesComponent.class, 029 ComponentControlImplementation.class, 030 ComponentImplementedRequirement.class, 031 ComponentStatement.class 032 }, 033 imports = OscalImplementationCommonModule.class, 034 remarks = "The OSCAL Component Definition Model can be used to describe the implementation of controls in a `component` or a set of components grouped as a `capability`. A component can be either a *technical component* , or a *documentary component*.\n" 035 + "\n" 036 + "A technical component is a component that is implemented in hardware (physical or virtual) or software. Suppliers may document components in an OSCAL component definition that describes the implementation of controls in their hardware and software.\n" 037 + "\n" 038 + "A documentary component is a component implemented for a documented process, procedure, or policy. Suppliers may document components in an OSCAL component definition that describes the implementation of controls in their process, procedure, or policy.\n" 039 + "\n" 040 + "The information provided by a technical or documentary component can be used by component consumers to provide starting narratives for documenting control implementations in an OSCAL SSP.\n" 041 + "\n" 042 + "The root of the OSCAL Implementation Layer Component Definition model is `component-definition`." 043) 044public final class OscalComponentDefinitionModule extends AbstractBoundModule { 045 private static final MarkupLine NAME = MarkupLine.fromMarkdown("OSCAL Component Definition Model"); 046 047 private static final String SHORT_NAME = "oscal-component-definition"; 048 049 private static final String VERSION = "1.1.3"; 050 051 private static final URI XML_NAMESPACE = URI.create("http://csrc.nist.gov/ns/oscal/1.0"); 052 053 private static final URI JSON_BASE_URI = URI.create("http://csrc.nist.gov/ns/oscal"); 054 055 private static final MarkupMultiline REMARKS = MarkupMultiline.fromMarkdown("The OSCAL Component Definition Model can be used to describe the implementation of controls in a `component` or a set of components grouped as a `capability`. A component can be either a *technical component* , or a *documentary component*.\n" 056 + "\n" 057 + "A technical component is a component that is implemented in hardware (physical or virtual) or software. Suppliers may document components in an OSCAL component definition that describes the implementation of controls in their hardware and software.\n" 058 + "\n" 059 + "A documentary component is a component implemented for a documented process, procedure, or policy. Suppliers may document components in an OSCAL component definition that describes the implementation of controls in their process, procedure, or policy.\n" 060 + "\n" 061 + "The information provided by a technical or documentary component can be used by component consumers to provide starting narratives for documenting control implementations in an OSCAL SSP.\n" 062 + "\n" 063 + "The root of the OSCAL Implementation Layer Component Definition model is `component-definition`."); 064 065 /** 066 * Construct a new module instance. 067 * 068 * @param importedModules 069 * modules imported by this module 070 * @param bindingContext 071 * the binding context to associate with this module 072 */ 073 public OscalComponentDefinitionModule(List<? extends IBoundModule> importedModules, 074 IBindingContext bindingContext) { 075 super(importedModules, bindingContext); 076 } 077 078 @Override 079 public MarkupLine getName() { 080 return NAME; 081 } 082 083 @Override 084 public String getShortName() { 085 return SHORT_NAME; 086 } 087 088 @Override 089 public String getVersion() { 090 return VERSION; 091 } 092 093 @Override 094 public URI getXmlNamespace() { 095 return XML_NAMESPACE; 096 } 097 098 @Override 099 public URI getJsonBaseUri() { 100 return JSON_BASE_URI; 101 } 102 103 @Override 104 public MarkupMultiline getRemarks() { 105 return REMARKS; 106 } 107}