{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/oscal-system-security-plan-ssp/versions/1.0.0.json",
  "x-lintel": {
    "source": "https://github.com/usnistgov/OSCAL/releases/download/v1.0.0/oscal_ssp_schema.json",
    "sourceSha256": "4420b5198dae8f6c1d76012ffceb04d0b7410a63bfdbb02176131a354dfd8735",
    "fileMatch": [
      "oscal*ssp.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "system-security-plan": {
      "$ref": "#assembly_oscal-ssp_system-security-plan"
    }
  },
  "$defs": {
    "oscal-ssp-oscal-ssp:system-security-plan": {
      "title": "System Security Plan (SSP)",
      "description": "A system security plan, such as those described in NIST SP 800-18",
      "required": [
        "uuid",
        "metadata",
        "import-profile",
        "system-characteristics",
        "system-implementation",
        "control-implementation"
      ],
      "type": "object",
      "properties": {
        "uuid": {
          "title": "System Security Plan Universally Unique Identifier",
          "description": "A globally unique identifier for this catalog instance. This UUID should be changed when this document is revised.",
          "type": "string",
          "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
        },
        "metadata": {
          "$ref": "#assembly_oscal-metadata_metadata"
        },
        "import-profile": {
          "$ref": "#assembly_oscal-ssp_import-profile"
        },
        "system-characteristics": {
          "$ref": "#assembly_oscal-ssp_system-characteristics"
        },
        "system-implementation": {
          "$ref": "#assembly_oscal-ssp_system-implementation"
        },
        "control-implementation": {
          "$ref": "#assembly_oscal-ssp_control-implementation"
        },
        "back-matter": {
          "$ref": "#assembly_oscal-metadata_back-matter"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:import-profile": {
      "title": "Import Profile",
      "description": "Used to import the OSCAL profile representing the system's control baseline.",
      "required": [
        "href"
      ],
      "type": "object",
      "properties": {
        "href": {
          "title": "Profile Reference",
          "description": "A resolvable URL reference to the profile to use as the system's control baseline.",
          "type": "string",
          "format": "uri-reference"
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:system-characteristics": {
      "title": "System Characteristics",
      "description": "Contains the characteristics of the system, such as its name, purpose, and security impact level.",
      "required": [
        "system-ids",
        "system-name",
        "description",
        "security-sensitivity-level",
        "system-information",
        "security-impact-level",
        "status",
        "authorization-boundary"
      ],
      "type": "object",
      "properties": {
        "system-ids": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#field_oscal-implementation-common_system-id"
          }
        },
        "system-name": {
          "title": "System Name - Full",
          "description": "The full name of the system.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "system-name-short": {
          "title": "System Name - Short",
          "description": "A short name for the system, such as an acronym, that is suitable for display in a data table or summary list.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "description": {
          "title": "System Description",
          "description": "A summary of the system.",
          "type": "string"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "date-authorized": {
          "$ref": "#field_oscal-ssp_date-authorized"
        },
        "security-sensitivity-level": {
          "title": "Security Sensitivity Level",
          "description": "The overall information system sensitivity categorization, such as defined by FIPS-199.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "system-information": {
          "$ref": "#assembly_oscal-ssp_system-information"
        },
        "security-impact-level": {
          "$ref": "#assembly_oscal-ssp_security-impact-level"
        },
        "status": {
          "$ref": "#assembly_oscal-ssp_status"
        },
        "authorization-boundary": {
          "$ref": "#assembly_oscal-ssp_authorization-boundary"
        },
        "network-architecture": {
          "$ref": "#assembly_oscal-ssp_network-architecture"
        },
        "data-flow": {
          "$ref": "#assembly_oscal-ssp_data-flow"
        },
        "responsible-parties": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_responsible-party"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:system-information": {
      "title": "System Information",
      "description": "Contains details about all information types that are stored, processed, or transmitted by the system, such as privacy information, and those defined in NIST SP 800-60.",
      "required": [
        "information-types"
      ],
      "type": "object",
      "properties": {
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "information-types": {
          "type": "array",
          "minItems": 1,
          "items": {
            "title": "Information Type",
            "description": "Contains details about one information type that is stored, processed, or transmitted by the system, such as privacy information, and those defined in NIST SP 800-60.",
            "type": "object",
            "properties": {
              "uuid": {
                "title": "Information Type Universally Unique Identifier",
                "description": "A globally unique identifier that can be used to reference this information type entry elsewhere in an OSCAL document. A UUID should be consistently used for a given resource across revisions of the document.",
                "type": "string",
                "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
              },
              "title": {
                "title": "title field",
                "description": "A human readable name for the information type. This title should be meaningful within the context of the system.",
                "type": "string"
              },
              "description": {
                "title": "Information Type Description",
                "description": "A summary of how this information type is used within the system.",
                "type": "string"
              },
              "categorizations": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "title": "Information Type Categorization",
                  "description": "A set of information type identifiers qualified by the given identification system used, such as NIST SP 800-60.",
                  "type": "object",
                  "properties": {
                    "system": {
                      "title": "Information Type Identification System",
                      "description": "Specifies the information type identification system used.",
                      "type": "string",
                      "format": "uri"
                    },
                    "information-type-ids": {
                      "type": "array",
                      "minItems": 1,
                      "items": {
                        "title": "Information Type Systematized Identifier",
                        "description": "An identifier qualified by the given identification system used, such as NIST SP 800-60.",
                        "type": "string",
                        "pattern": "^\\S(.*\\S)?$"
                      }
                    }
                  },
                  "required": [
                    "system"
                  ],
                  "additionalProperties": false
                }
              },
              "props": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_property"
                }
              },
              "links": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_link"
                }
              },
              "confidentiality-impact": {
                "title": "Confidentiality Impact Level",
                "description": "The expected level of impact resulting from the unauthorized disclosure of the described information.",
                "type": "object",
                "properties": {
                  "props": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_property"
                    }
                  },
                  "links": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_link"
                    }
                  },
                  "base": {
                    "$ref": "#field_oscal-ssp_base"
                  },
                  "selected": {
                    "$ref": "#field_oscal-ssp_selected"
                  },
                  "adjustment-justification": {
                    "$ref": "#field_oscal-ssp_adjustment-justification"
                  }
                },
                "required": [
                  "base"
                ],
                "additionalProperties": false
              },
              "integrity-impact": {
                "title": "Integrity Impact Level",
                "description": "The expected level of impact resulting from the unauthorized modification of the described information.",
                "type": "object",
                "properties": {
                  "props": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_property"
                    }
                  },
                  "links": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_link"
                    }
                  },
                  "base": {
                    "$ref": "#field_oscal-ssp_base"
                  },
                  "selected": {
                    "$ref": "#field_oscal-ssp_selected"
                  },
                  "adjustment-justification": {
                    "$ref": "#field_oscal-ssp_adjustment-justification"
                  }
                },
                "required": [
                  "base"
                ],
                "additionalProperties": false
              },
              "availability-impact": {
                "title": "Availability Impact Level",
                "description": "The expected level of impact resulting from the disruption of access to or use of the described information or the information system.",
                "type": "object",
                "properties": {
                  "props": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_property"
                    }
                  },
                  "links": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_link"
                    }
                  },
                  "base": {
                    "$ref": "#field_oscal-ssp_base"
                  },
                  "selected": {
                    "$ref": "#field_oscal-ssp_selected"
                  },
                  "adjustment-justification": {
                    "$ref": "#field_oscal-ssp_adjustment-justification"
                  }
                },
                "required": [
                  "base"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "title",
              "description",
              "confidentiality-impact",
              "integrity-impact",
              "availability-impact"
            ],
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:base": {
      "title": "Base Level (Confidentiality, Integrity, or Availability)",
      "description": "The prescribed base (Confidentiality, Integrity, or Availability) security impact level.",
      "pattern": "^\\S(.*\\S)?$",
      "type": "string"
    },
    "oscal-ssp-oscal-ssp:selected": {
      "title": "Selected Level (Confidentiality, Integrity, or Availability)",
      "description": "The selected (Confidentiality, Integrity, or Availability) security impact level.",
      "pattern": "^\\S(.*\\S)?$",
      "type": "string"
    },
    "oscal-ssp-oscal-ssp:adjustment-justification": {
      "title": "Adjustment Justification",
      "description": "If the selected security level is different from the base security level, this contains the justification for the change.",
      "type": "string"
    },
    "oscal-ssp-oscal-ssp:security-impact-level": {
      "title": "Security Impact Level",
      "description": "The overall level of expected impact resulting from unauthorized disclosure, modification, or loss of access to information.",
      "required": [
        "security-objective-confidentiality",
        "security-objective-integrity",
        "security-objective-availability"
      ],
      "type": "object",
      "properties": {
        "security-objective-confidentiality": {
          "title": "Security Objective: Confidentiality",
          "description": "A target-level of confidentiality for the system, based on the sensitivity of information within the system.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "security-objective-integrity": {
          "title": "Security Objective: Integrity",
          "description": "A target-level of integrity for the system, based on the sensitivity of information within the system.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "security-objective-availability": {
          "title": "Security Objective: Availability",
          "description": "A target-level of availability for the system, based on the sensitivity of information within the system.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:status": {
      "title": "Status",
      "description": "Describes the operational status of the system.",
      "required": [
        "state"
      ],
      "type": "object",
      "properties": {
        "state": {
          "title": "State",
          "description": "The current operating status.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$",
          "enum": [
            "operational",
            "under-development",
            "under-major-modification",
            "disposition",
            "other"
          ]
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:date-authorized": {
      "title": "System Authorization Date",
      "description": "The date the system received its authorization.",
      "pattern": "^((2000|2400|2800|(19|2[0-9](0[48]|[2468][048]|[13579][26])))-02-29)|(((19|2[0-9])[0-9]{2})-02-(0[1-9]|1[0-9]|2[0-8]))|(((19|2[0-9])[0-9]{2})-(0[13578]|10|12)-(0[1-9]|[12][0-9]|3[01]))|(((19|2[0-9])[0-9]{2})-(0[469]|11)-(0[1-9]|[12][0-9]|30))(Z|[+-][0-9]{2}:[0-9]{2})?$",
      "type": "string"
    },
    "oscal-ssp-oscal-ssp:authorization-boundary": {
      "title": "Authorization Boundary",
      "description": "A description of this system's authorization boundary, optionally supplemented by diagrams that illustrate the authorization boundary.",
      "required": [
        "description"
      ],
      "type": "object",
      "properties": {
        "description": {
          "title": "Authorization Boundary Description",
          "description": "A summary of the system's authorization boundary.",
          "type": "string"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "diagrams": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-ssp_diagram"
          }
        },
        "remarks": {
          "title": "remarks field",
          "description": "Commentary about the system's authorization boundary that enhances the diagram.",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:diagram": {
      "title": "Diagram",
      "description": "A graphic that provides a visual representation the system, or some aspect of it.",
      "required": [
        "uuid"
      ],
      "type": "object",
      "properties": {
        "uuid": {
          "title": "Diagram ID",
          "description": "The identifier for this diagram.",
          "type": "string",
          "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
        },
        "description": {
          "title": "Diagram Description",
          "description": "A summary of the diagram.",
          "type": "string"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "caption": {
          "title": "Caption",
          "description": "A brief caption to annotate the diagram.",
          "type": "string"
        },
        "remarks": {
          "title": "remarks field",
          "description": "Commentary about the diagram that enhances it.",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:network-architecture": {
      "title": "Network Architecture",
      "description": "A description of the system's network architecture, optionally supplemented by diagrams that illustrate the network architecture.",
      "required": [
        "description"
      ],
      "type": "object",
      "properties": {
        "description": {
          "title": "Network Architecture Description",
          "description": "A summary of the system's network architecture.",
          "type": "string"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "diagrams": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-ssp_diagram"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:data-flow": {
      "title": "Data Flow",
      "description": "A description of the logical flow of information within the system and across its boundaries, optionally supplemented by diagrams that illustrate these flows.",
      "required": [
        "description"
      ],
      "type": "object",
      "properties": {
        "description": {
          "title": "Data Flow Description",
          "description": "A summary of the system's data flow.",
          "type": "string"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "diagrams": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-ssp_diagram"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:system-implementation": {
      "title": "System Implementation",
      "description": "Provides information as to how the system is implemented.",
      "required": [
        "users",
        "components"
      ],
      "type": "object",
      "properties": {
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "leveraged-authorizations": {
          "type": "array",
          "minItems": 1,
          "items": {
            "title": "Leveraged Authorization",
            "description": "A description of another authorized system from which this system inherits capabilities that satisfy security requirements. Another term for this concept is a common control provider.",
            "type": "object",
            "properties": {
              "uuid": {
                "title": "Leveraged Authorization Universally Unique Identifier",
                "description": "A globally unique identifier that can be used to reference this leveraged authorization entry elsewhere in an OSCAL document. A UUID should be consistently used for a given resource across revisions of the document.",
                "type": "string",
                "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
              },
              "title": {
                "title": "title field",
                "description": "A human readable name for the leveraged authorization in the context of the system.",
                "type": "string"
              },
              "props": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_property"
                }
              },
              "links": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_link"
                }
              },
              "party-uuid": {
                "title": "party-uuid field",
                "description": "A reference to the party that manages the leveraged system.",
                "type": "string",
                "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
              },
              "date-authorized": {
                "$ref": "#field_oscal-ssp_date-authorized"
              },
              "remarks": {
                "$ref": "#field_oscal-metadata_remarks"
              }
            },
            "required": [
              "uuid",
              "title",
              "party-uuid",
              "date-authorized"
            ],
            "additionalProperties": false
          }
        },
        "users": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-implementation-common_system-user"
          }
        },
        "components": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-implementation-common_system-component"
          }
        },
        "inventory-items": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-implementation-common_inventory-item"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:control-implementation": {
      "title": "Control Implementation",
      "description": "Describes how the system satisfies a set of controls.",
      "required": [
        "description",
        "implemented-requirements"
      ],
      "type": "object",
      "properties": {
        "description": {
          "title": "Control Implementation Description",
          "description": "A statement describing important things to know about how this set of control satisfaction documentation is approached.",
          "type": "string"
        },
        "set-parameters": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-implementation-common_set-parameter"
          }
        },
        "implemented-requirements": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-ssp_implemented-requirement"
          }
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:implemented-requirement": {
      "title": "Control-based Requirement",
      "description": "Describes how the system satisfies an individual control.",
      "required": [
        "uuid",
        "control-id"
      ],
      "type": "object",
      "properties": {
        "uuid": {
          "title": "Control Requirement Universally Unique Identifier",
          "description": "A globally unique identifier that can be used to reference this control requirement entry elsewhere in an OSCAL document. A UUID should be consistently used for a given resource across revisions of the document.",
          "type": "string",
          "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
        },
        "control-id": {
          "title": "Control Identifier Reference",
          "description": "A reference to a control with a corresponding id value.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "set-parameters": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-implementation-common_set-parameter"
          }
        },
        "responsible-roles": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_responsible-role"
          }
        },
        "statements": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-ssp_statement"
          }
        },
        "by-components": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-ssp_by-component"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:statement": {
      "title": "Specific Control Statement",
      "description": "Identifies which statements within a control are addressed.",
      "required": [
        "statement-id",
        "uuid"
      ],
      "type": "object",
      "properties": {
        "statement-id": {
          "title": "Control Statement Reference",
          "description": "A reference to a control statement by its identifier",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "uuid": {
          "title": "Control Statement Reference Universally Unique Identifier",
          "description": "A globally unique identifier that can be used to reference this control statement entry elsewhere in an OSCAL document. A UUID should be consistently used for a given resource across revisions of the document.",
          "type": "string",
          "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "responsible-roles": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_responsible-role"
          }
        },
        "by-components": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-ssp_by-component"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-ssp:by-component": {
      "title": "Component Control Implementation",
      "description": "Defines how the referenced component implements a set of controls.",
      "required": [
        "component-uuid",
        "uuid",
        "description"
      ],
      "type": "object",
      "properties": {
        "component-uuid": {
          "title": "Component Universally Unique Identifier Reference",
          "description": "A reference to the component that is implementing a given control or control statement.",
          "type": "string",
          "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
        },
        "uuid": {
          "title": "By-Component Universally Unique Identifier",
          "description": "A globally unique identifier that can be used to reference this by-component entry elsewhere in an OSCAL document. A UUID should be consistently used for a given resource across revisions of the document.",
          "type": "string",
          "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
        },
        "description": {
          "title": "Control Implementation Description",
          "description": "An implementation statement that describes how a control or a control statement is implemented within the referenced system component.",
          "type": "string"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "set-parameters": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-implementation-common_set-parameter"
          }
        },
        "implementation-status": {
          "$ref": "#assembly_oscal-implementation-common_implementation-status"
        },
        "export": {
          "title": "Export",
          "description": "Identifies content intended for external consumption, such as with leveraged organizations.",
          "type": "object",
          "properties": {
            "description": {
              "title": "Control Implementation Export Description",
              "description": "An implementation statement that describes the aspects of the control or control statement implementation that can be available to another system leveraging this system.",
              "type": "string"
            },
            "props": {
              "type": "array",
              "minItems": 1,
              "items": {
                "$ref": "#assembly_oscal-metadata_property"
              }
            },
            "links": {
              "type": "array",
              "minItems": 1,
              "items": {
                "$ref": "#assembly_oscal-metadata_link"
              }
            },
            "provided": {
              "type": "array",
              "minItems": 1,
              "items": {
                "title": "Provided Control Implementation",
                "description": "Describes a capability which may be inherited by a leveraging system.",
                "type": "object",
                "properties": {
                  "uuid": {
                    "title": "Provided Universally Unique Identifier",
                    "description": "A globally unique identifier that can be used to reference this provided entry elsewhere in an OSCAL document. A UUID should be consistently used for a given resource across revisions of the document.",
                    "type": "string",
                    "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
                  },
                  "description": {
                    "title": "Provided Control Implementation Description",
                    "description": "An implementation statement that describes the aspects of the control or control statement implementation that can be provided to another system leveraging this system.",
                    "type": "string"
                  },
                  "props": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_property"
                    }
                  },
                  "links": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_link"
                    }
                  },
                  "responsible-roles": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_responsible-role"
                    }
                  },
                  "remarks": {
                    "$ref": "#field_oscal-metadata_remarks"
                  }
                },
                "required": [
                  "uuid",
                  "description"
                ],
                "additionalProperties": false
              }
            },
            "responsibilities": {
              "type": "array",
              "minItems": 1,
              "items": {
                "title": "Control Implementation Responsibility",
                "description": "Describes a control implementation responsibility imposed on a leveraging system.",
                "type": "object",
                "properties": {
                  "uuid": {
                    "title": "Responsibility Universally Unique Identifier",
                    "description": "A globally unique identifier that can be used to reference this responsibility entry elsewhere in an OSCAL document. A UUID should be consistently used for a given resource across revisions of the document.",
                    "type": "string",
                    "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
                  },
                  "provided-uuid": {
                    "title": "Provided UUID",
                    "description": "Identifies a 'provided' assembly associated with this assembly.",
                    "type": "string",
                    "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
                  },
                  "description": {
                    "title": "Control Implementation Responsibility Description",
                    "description": "An implementation statement that describes the aspects of the control or control statement implementation that a leveraging system must implement to satisfy the control provided by a leveraged system.",
                    "type": "string"
                  },
                  "props": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_property"
                    }
                  },
                  "links": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_link"
                    }
                  },
                  "responsible-roles": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_responsible-role"
                    }
                  },
                  "remarks": {
                    "$ref": "#field_oscal-metadata_remarks"
                  }
                },
                "required": [
                  "uuid",
                  "description"
                ],
                "additionalProperties": false
              }
            },
            "remarks": {
              "$ref": "#field_oscal-metadata_remarks"
            }
          },
          "additionalProperties": false
        },
        "inherited": {
          "type": "array",
          "minItems": 1,
          "items": {
            "title": "Inherited Control Implementation",
            "description": "Describes a control implementation inherited by a leveraging system.",
            "type": "object",
            "properties": {
              "uuid": {
                "title": "Inherited Universally Unique Identifier",
                "description": "A globally unique identifier that can be used to reference this inherited entry elsewhere in an OSCAL document. A UUID should be consistently used for a given resource across revisions of the document.",
                "type": "string",
                "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
              },
              "provided-uuid": {
                "title": "Provided UUID",
                "description": "Identifies a 'provided' assembly associated with this assembly.",
                "type": "string",
                "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
              },
              "description": {
                "title": "Inherited Control Implementation Description",
                "description": "An implementation statement that describes the aspects of a control or control statement implementation that a leveraging system is inheriting from a leveraged system.",
                "type": "string"
              },
              "props": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_property"
                }
              },
              "links": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_link"
                }
              },
              "responsible-roles": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_responsible-role"
                }
              }
            },
            "required": [
              "uuid",
              "description"
            ],
            "additionalProperties": false
          }
        },
        "satisfied": {
          "type": "array",
          "minItems": 1,
          "items": {
            "title": "Satisfied Control Implementation Responsibility",
            "description": "Describes how this system satisfies a responsibility imposed by a leveraged system.",
            "type": "object",
            "properties": {
              "uuid": {
                "title": "Satisfied Universally Unique Identifier",
                "description": "A globally unique identifier that can be used to reference this satisfied entry elsewhere in an OSCAL document. A UUID should be consistently used for a given resource across revisions of the document.",
                "type": "string",
                "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
              },
              "responsibility-uuid": {
                "title": "Provided UUID",
                "description": "Identifies a 'provided' assembly associated with this assembly.",
                "type": "string",
                "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
              },
              "description": {
                "title": "Satisfied Control Implementation Responsibility Description",
                "description": "An implementation statement that describes the aspects of a control or control statement implementation that a leveraging system is implementing based on a requirement from a leveraged system.",
                "type": "string"
              },
              "props": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_property"
                }
              },
              "links": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_link"
                }
              },
              "responsible-roles": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_responsible-role"
                }
              },
              "remarks": {
                "$ref": "#field_oscal-metadata_remarks"
              }
            },
            "required": [
              "uuid",
              "description"
            ],
            "additionalProperties": false
          }
        },
        "responsible-roles": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_responsible-role"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:metadata": {
      "title": "Publication metadata",
      "description": "Provides information about the publication and availability of the containing document.",
      "required": [
        "title",
        "last-modified",
        "version",
        "oscal-version"
      ],
      "type": "object",
      "properties": {
        "title": {
          "title": "Document Title",
          "description": "A name given to the document, which may be used by a tool for display and navigation.",
          "type": "string"
        },
        "published": {
          "$ref": "#field_oscal-metadata_published"
        },
        "last-modified": {
          "$ref": "#field_oscal-metadata_last-modified"
        },
        "version": {
          "$ref": "#field_oscal-metadata_version"
        },
        "oscal-version": {
          "$ref": "#field_oscal-metadata_oscal-version"
        },
        "revisions": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_revision"
          }
        },
        "document-ids": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#field_oscal-metadata_document-id"
          }
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "roles": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_role"
          }
        },
        "locations": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_location"
          }
        },
        "parties": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_party"
          }
        },
        "responsible-parties": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_responsible-party"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:revision": {
      "title": "Revision History Entry",
      "description": "An entry in a sequential list of revisions to the containing document in reverse chronological order (i.e., most recent previous revision first).",
      "properties": {
        "title": {
          "title": "Document Title",
          "description": "A name given to the document revision, which may be used by a tool for display and navigation.",
          "type": "string"
        },
        "published": {
          "$ref": "#field_oscal-metadata_published"
        },
        "last-modified": {
          "$ref": "#field_oscal-metadata_last-modified"
        },
        "version": {
          "$ref": "#field_oscal-metadata_version"
        },
        "oscal-version": {
          "$ref": "#field_oscal-metadata_oscal-version"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:location": {
      "title": "Location",
      "description": "A location, with associated metadata that can be referenced.",
      "required": [
        "uuid",
        "address"
      ],
      "type": "object",
      "properties": {
        "uuid": {
          "title": "Location Universally Unique Identifier",
          "description": "A unique identifier that can be used to reference this defined location elsewhere in an OSCAL document. A UUID should be consistently used for a given location across revisions of the document.",
          "type": "string",
          "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
        },
        "title": {
          "title": "Location Title",
          "description": "A name given to the location, which may be used by a tool for display and navigation.",
          "type": "string"
        },
        "address": {
          "$ref": "#assembly_oscal-metadata_address"
        },
        "email-addresses": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#field_oscal-metadata_email-address"
          }
        },
        "telephone-numbers": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#field_oscal-metadata_telephone-number"
          }
        },
        "urls": {
          "type": "array",
          "minItems": 1,
          "items": {
            "title": "Location URL",
            "description": "The uniform resource locator (URL) for a web site or Internet presence associated with the location.",
            "type": "string",
            "format": "uri"
          }
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:location-uuid": {
      "title": "Location Reference",
      "description": "References a location defined in metadata.",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$",
      "type": "string"
    },
    "oscal-ssp-oscal-metadata:party": {
      "title": "Party (organization or person)",
      "description": "A responsible entity which is either a person or an organization.",
      "required": [
        "uuid",
        "type"
      ],
      "type": "object",
      "properties": {
        "uuid": {
          "title": "Party Universally Unique Identifier",
          "description": "A unique identifier that can be used to reference this defined location elsewhere in an OSCAL document. A UUID should be consistently used for a given party across revisions of the document.",
          "type": "string",
          "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
        },
        "type": {
          "title": "Party Type",
          "description": "A category describing the kind of party the object describes.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$",
          "enum": [
            "person",
            "organization"
          ]
        },
        "name": {
          "title": "Party Name",
          "description": "The full name of the party. This is typically the legal name associated with the party.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "short-name": {
          "title": "Party Short Name",
          "description": "A short common name, abbreviation, or acronym for the party.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "external-ids": {
          "type": "array",
          "minItems": 1,
          "items": {
            "title": "Party External Identifier",
            "description": "An identifier for a person or organization using a designated scheme. e.g. an Open Researcher and Contributor ID (ORCID)",
            "type": "object",
            "properties": {
              "scheme": {
                "title": "External Identifier Schema",
                "description": "Indicates the type of external identifier.",
                "type": "string",
                "format": "uri"
              },
              "id": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "scheme"
            ],
            "additionalProperties": false
          }
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "email-addresses": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#field_oscal-metadata_email-address"
          }
        },
        "telephone-numbers": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#field_oscal-metadata_telephone-number"
          }
        },
        "addresses": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_address"
          }
        },
        "location-uuids": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#field_oscal-metadata_location-uuid"
          }
        },
        "member-of-organizations": {
          "type": "array",
          "minItems": 1,
          "items": {
            "title": "Organizational Affiliation",
            "description": "Identifies that the party object is a member of the organization associated with the provided UUID.",
            "type": "string",
            "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:party-uuid": {
      "title": "Party Reference",
      "description": "References a party defined in metadata.",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$",
      "type": "string"
    },
    "oscal-ssp-oscal-metadata:role": {
      "title": "Role",
      "description": "Defines a function assumed or expected to be assumed by a party in a specific situation.",
      "required": [
        "id",
        "title"
      ],
      "type": "object",
      "properties": {
        "id": {
          "title": "Role Identifier",
          "description": "A unique identifier for a specific role instance. This identifier's uniqueness is document scoped and is intended to be consistent for the same role across minor revisions of the document.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "title": {
          "title": "Role Title",
          "description": "A name given to the role, which may be used by a tool for display and navigation.",
          "type": "string"
        },
        "short-name": {
          "title": "Role Short Name",
          "description": "A short common name, abbreviation, or acronym for the role.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "description": {
          "title": "Role Description",
          "description": "A summary of the role's purpose and associated responsibilities.",
          "type": "string"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:role-id": {
      "title": "Role Identifier Reference",
      "description": "A reference to the roles served by the user.",
      "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$",
      "type": "string"
    },
    "oscal-ssp-oscal-metadata:back-matter": {
      "title": "Back matter",
      "description": "A collection of resources, which may be included directly or by reference.",
      "properties": {
        "resources": {
          "type": "array",
          "minItems": 1,
          "items": {
            "title": "Resource",
            "description": "A resource associated with content in the containing document. A resource may be directly included in the document base64 encoded or may point to one or more equivalent internet resources.",
            "type": "object",
            "properties": {
              "uuid": {
                "title": "Resource Universally Unique Identifier",
                "description": "A globally unique identifier that can be used to reference this defined resource elsewhere in an OSCAL document. A UUID should be consistently used for a given resource across revisions of the document.",
                "type": "string",
                "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
              },
              "title": {
                "title": "Resource Title",
                "description": "A name given to the resource, which may be used by a tool for display and navigation.",
                "type": "string"
              },
              "description": {
                "title": "Resource Description",
                "description": "A short summary of the resource used to indicate the purpose of the resource.",
                "type": "string"
              },
              "props": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_property"
                }
              },
              "document-ids": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#field_oscal-metadata_document-id"
                }
              },
              "citation": {
                "title": "Citation",
                "description": "A citation consisting of end note text and optional structured bibliographic data.",
                "type": "object",
                "properties": {
                  "text": {
                    "title": "Citation Text",
                    "description": "A line of citation text.",
                    "type": "string"
                  },
                  "props": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_property"
                    }
                  },
                  "links": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#assembly_oscal-metadata_link"
                    }
                  }
                },
                "required": [
                  "text"
                ],
                "additionalProperties": false
              },
              "rlinks": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "title": "Resource link",
                  "description": "A pointer to an external resource with an optional hash for verification and change detection.",
                  "type": "object",
                  "properties": {
                    "href": {
                      "title": "Hypertext Reference",
                      "description": "A resolvable URI reference to a resource.",
                      "type": "string",
                      "format": "uri-reference"
                    },
                    "media-type": {
                      "title": "Media Type",
                      "description": "Specifies a media type as defined by the Internet Assigned Numbers Authority (IANA) Media Types Registry.",
                      "type": "string",
                      "pattern": "^\\S(.*\\S)?$"
                    },
                    "hashes": {
                      "type": "array",
                      "minItems": 1,
                      "items": {
                        "$ref": "#field_oscal-metadata_hash"
                      }
                    }
                  },
                  "required": [
                    "href"
                  ],
                  "additionalProperties": false
                }
              },
              "base64": {
                "title": "Base64",
                "description": "The Base64 alphabet in RFC 2045 - aligned with XSD.",
                "type": "object",
                "properties": {
                  "filename": {
                    "title": "File Name",
                    "description": "Name of the file before it was encoded as Base64 to be embedded in a resource. This is the name that will be assigned to the file when the file is decoded.",
                    "type": "string",
                    "format": "uri-reference"
                  },
                  "media-type": {
                    "title": "Media Type",
                    "description": "Specifies a media type as defined by the Internet Assigned Numbers Authority (IANA) Media Types Registry.",
                    "type": "string",
                    "pattern": "^\\S(.*\\S)?$"
                  },
                  "value": {
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ],
                "additionalProperties": false
              },
              "remarks": {
                "$ref": "#field_oscal-metadata_remarks"
              }
            },
            "required": [
              "uuid"
            ],
            "additionalProperties": false
          }
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:property": {
      "title": "Property",
      "description": "An attribute, characteristic, or quality of the containing object expressed as a namespace qualified name/value pair. The value of a property is a simple scalar value, which may be expressed as a list of values.",
      "required": [
        "name",
        "value"
      ],
      "type": "object",
      "properties": {
        "name": {
          "title": "Property Name",
          "description": "A textual label that uniquely identifies a specific attribute, characteristic, or quality of the property's containing object.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "uuid": {
          "title": "Property Universally Unique Identifier",
          "description": "A unique identifier that can be used to reference this property elsewhere in an OSCAL document. A UUID should be consistently used for a given location across revisions of the document.",
          "type": "string",
          "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
        },
        "ns": {
          "title": "Property Namespace",
          "description": "A namespace qualifying the property's name. This allows different organizations to associate distinct semantics with the same name.",
          "type": "string",
          "format": "uri"
        },
        "value": {
          "title": "Property Value",
          "description": "Indicates the value of the attribute, characteristic, or quality.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "class": {
          "title": "Property Class",
          "description": "A textual label that provides a sub-type or characterization of the property's name. This can be used to further distinguish or discriminate between the semantics of multiple properties of the same object with the same name and ns.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:link": {
      "title": "Link",
      "description": "A reference to a local or remote resource",
      "required": [
        "href"
      ],
      "type": "object",
      "properties": {
        "href": {
          "title": "Hypertext Reference",
          "description": "A resolvable URL reference to a resource.",
          "type": "string",
          "format": "uri-reference"
        },
        "rel": {
          "title": "Relation",
          "description": "Describes the type of relationship provided by the link. This can be an indicator of the link's purpose.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "media-type": {
          "title": "Media Type",
          "description": "Specifies a media type as defined by the Internet Assigned Numbers Authority (IANA) Media Types Registry.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "text": {
          "title": "Link Text",
          "description": "A textual label to associate with the link, which may be used for presentation in a tool.",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:responsible-party": {
      "title": "Responsible Party",
      "description": "A reference to a set of organizations or persons that have responsibility for performing a referenced role in the context of the containing object.",
      "required": [
        "role-id",
        "party-uuids"
      ],
      "type": "object",
      "properties": {
        "role-id": {
          "title": "Responsible Role",
          "description": "The role that the party is responsible for.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "party-uuids": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#field_oscal-metadata_party-uuid"
          }
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:responsible-role": {
      "title": "Responsible Role",
      "description": "A reference to one or more roles with responsibility for performing a function relative to the containing object.",
      "required": [
        "role-id"
      ],
      "type": "object",
      "properties": {
        "role-id": {
          "title": "Responsible Role ID",
          "description": "The role that is responsible for the business function.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "party-uuids": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#field_oscal-metadata_party-uuid"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:hash": {
      "title": "Hash",
      "description": "A representation of a cryptographic digest generated over a resource using a specified hash algorithm.",
      "required": [
        "value",
        "algorithm"
      ],
      "type": "object",
      "properties": {
        "algorithm": {
          "title": "Hash algorithm",
          "description": "Method by which a hash is derived",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "value": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:remarks": {
      "title": "Remarks",
      "description": "Additional commentary on the containing object.",
      "type": "string"
    },
    "oscal-ssp-oscal-metadata:published": {
      "title": "Publication Timestamp",
      "description": "The date and time the document was published. The date-time value must be formatted according to RFC 3339 with full time and time zone included.",
      "pattern": "^((2000|2400|2800|(19|2[0-9](0[48]|[2468][048]|[13579][26])))-02-29)|(((19|2[0-9])[0-9]{2})-02-(0[1-9]|1[0-9]|2[0-8]))|(((19|2[0-9])[0-9]{2})-(0[13578]|10|12)-(0[1-9]|[12][0-9]|3[01]))|(((19|2[0-9])[0-9]{2})-(0[469]|11)-(0[1-9]|[12][0-9]|30))T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})$",
      "type": "string",
      "format": "date-time"
    },
    "oscal-ssp-oscal-metadata:last-modified": {
      "title": "Last Modified Timestamp",
      "description": "The date and time the document was last modified. The date-time value must be formatted according to RFC 3339 with full time and time zone included.",
      "pattern": "^((2000|2400|2800|(19|2[0-9](0[48]|[2468][048]|[13579][26])))-02-29)|(((19|2[0-9])[0-9]{2})-02-(0[1-9]|1[0-9]|2[0-8]))|(((19|2[0-9])[0-9]{2})-(0[13578]|10|12)-(0[1-9]|[12][0-9]|3[01]))|(((19|2[0-9])[0-9]{2})-(0[469]|11)-(0[1-9]|[12][0-9]|30))T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})$",
      "type": "string",
      "format": "date-time"
    },
    "oscal-ssp-oscal-metadata:version": {
      "title": "Document Version",
      "description": "A string used to distinguish the current version of the document from other previous (and future) versions.",
      "pattern": "^\\S(.*\\S)?$",
      "type": "string"
    },
    "oscal-ssp-oscal-metadata:oscal-version": {
      "title": "OSCAL version",
      "description": "The OSCAL model version the document was authored against.",
      "pattern": "^\\S(.*\\S)?$",
      "type": "string"
    },
    "oscal-ssp-oscal-metadata:email-address": {
      "title": "Email Address",
      "description": "An email address as defined by RFC 5322 Section 3.4.1.",
      "pattern": "^.+@.+",
      "type": "string",
      "format": "email"
    },
    "oscal-ssp-oscal-metadata:telephone-number": {
      "title": "Telephone Number",
      "description": "Contact number by telephone.",
      "required": [
        "number"
      ],
      "type": "object",
      "properties": {
        "type": {
          "title": "type flag",
          "description": "Indicates the type of phone number.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "number": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:address": {
      "title": "Address",
      "description": "A postal address for the location.",
      "properties": {
        "type": {
          "title": "Address Type",
          "description": "Indicates the type of address.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "addr-lines": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#field_oscal-metadata_addr-line"
          }
        },
        "city": {
          "title": "City",
          "description": "City, town or geographical region for the mailing address.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "state": {
          "title": "State",
          "description": "State, province or analogous geographical region for mailing address",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "postal-code": {
          "title": "Postal Code",
          "description": "Postal or ZIP code for mailing address",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "country": {
          "title": "Country Code",
          "description": "The ISO 3166-1 alpha-2 country code for the mailing address.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "oscal-ssp-oscal-metadata:addr-line": {
      "title": "Address line",
      "description": "A single line of an address.",
      "pattern": "^\\S(.*\\S)?$",
      "type": "string"
    },
    "oscal-ssp-oscal-metadata:document-id": {
      "title": "Document Identifier",
      "description": "A document identifier qualified by an identifier scheme. A document identifier provides a globally unique identifier for a group of documents that are to be treated as different versions of the same document. If this element does not appear, or if the value of this element is empty, the value of \"document-id\" is equal to the value of the \"uuid\" flag of the top-level root element.",
      "required": [
        "identifier"
      ],
      "type": "object",
      "properties": {
        "scheme": {
          "title": "Document Identification Scheme",
          "description": "Qualifies the kind of document identifier using a URI. If the scheme is not provided the value of the element will be interpreted as a string of characters.",
          "type": "string",
          "format": "uri"
        },
        "identifier": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-implementation-common:system-component": {
      "title": "Component",
      "description": "A defined component that can be part of an implemented system.",
      "required": [
        "uuid",
        "type",
        "title",
        "description",
        "status"
      ],
      "type": "object",
      "properties": {
        "uuid": {
          "title": "Component Identifier",
          "description": "The unique identifier for the component.",
          "type": "string",
          "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
        },
        "type": {
          "title": "Component Type",
          "description": "A category describing the purpose of the component.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "title": {
          "title": "Component Title",
          "description": "A human readable name for the system component.",
          "type": "string"
        },
        "description": {
          "title": "Component Description",
          "description": "A description of the component, including information about its function.",
          "type": "string"
        },
        "purpose": {
          "title": "Purpose",
          "description": "A summary of the technological or business purpose of the component.",
          "type": "string"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "status": {
          "title": "Status",
          "description": "Describes the operational status of the system component.",
          "type": "object",
          "properties": {
            "state": {
              "title": "State",
              "description": "The operational status.",
              "type": "string",
              "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$",
              "enum": [
                "under-development",
                "operational",
                "disposition",
                "other"
              ]
            },
            "remarks": {
              "$ref": "#field_oscal-metadata_remarks"
            }
          },
          "required": [
            "state"
          ],
          "additionalProperties": false
        },
        "responsible-roles": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_responsible-role"
          }
        },
        "protocols": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-implementation-common_protocol"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-implementation-common:protocol": {
      "title": "Service Protocol Information",
      "description": "Information about the protocol used to provide a service.",
      "required": [
        "name"
      ],
      "type": "object",
      "properties": {
        "uuid": {
          "title": "Service Protocol Information Universally Unique Identifier",
          "description": "A globally unique identifier that can be used to reference this service protocol entry elsewhere in an OSCAL document. A UUID should be consistently used for a given resource across revisions of the document.",
          "type": "string",
          "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
        },
        "name": {
          "title": "Protocol Name",
          "description": "The common name of the protocol, which should be the appropriate \"service name\" from the IANA Service Name and Transport Protocol Port Number Registry.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "title": {
          "title": "Protocol Title",
          "description": "A human readable name for the protocol (e.g., Transport Layer Security).",
          "type": "string"
        },
        "port-ranges": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-implementation-common_port-range"
          }
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-implementation-common:port-range": {
      "title": "Port Range",
      "description": "Where applicable this is the IPv4 port range on which the service operates.",
      "properties": {
        "start": {
          "title": "Start",
          "description": "Indicates the starting port number in a port range",
          "type": "integer",
          "multipleOf": 1,
          "minimum": 0
        },
        "end": {
          "title": "End",
          "description": "Indicates the ending port number in a port range",
          "type": "integer",
          "multipleOf": 1,
          "minimum": 0
        },
        "transport": {
          "title": "Transport",
          "description": "Indicates the transport type.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$",
          "enum": [
            "TCP",
            "UDP"
          ]
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "oscal-ssp-oscal-implementation-common:implementation-status": {
      "title": "Implementation Status",
      "description": "Indicates the degree to which the a given control is implemented.",
      "required": [
        "state"
      ],
      "type": "object",
      "properties": {
        "state": {
          "title": "Implementation State",
          "description": "Identifies the implementation status of the control or control objective.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-implementation-common:system-user": {
      "title": "System User",
      "description": "A type of user that interacts with the system based on an associated role.",
      "required": [
        "uuid"
      ],
      "type": "object",
      "properties": {
        "uuid": {
          "title": "User Universally Unique Identifier",
          "description": "The unique identifier for the user class.",
          "type": "string",
          "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
        },
        "title": {
          "title": "User Title",
          "description": "A name given to the user, which may be used by a tool for display and navigation.",
          "type": "string"
        },
        "short-name": {
          "title": "User Short Name",
          "description": "A short common name, abbreviation, or acronym for the user.",
          "type": "string",
          "pattern": "^\\S(.*\\S)?$"
        },
        "description": {
          "title": "User Description",
          "description": "A summary of the user's purpose within the system.",
          "type": "string"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "role-ids": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#field_oscal-metadata_role-id"
          }
        },
        "authorized-privileges": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-implementation-common_authorized-privilege"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-implementation-common:authorized-privilege": {
      "title": "Privilege",
      "description": "Identifies a specific system privilege held by the user, along with an associated description and/or rationale for the privilege.",
      "required": [
        "title",
        "functions-performed"
      ],
      "type": "object",
      "properties": {
        "title": {
          "title": "Privilege Title",
          "description": "A human readable name for the privilege.",
          "type": "string"
        },
        "description": {
          "title": "Privilege Description",
          "description": "A summary of the privilege's purpose within the system.",
          "type": "string"
        },
        "functions-performed": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#field_oscal-implementation-common_function-performed"
          }
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-implementation-common:function-performed": {
      "title": "Functions Performed",
      "description": "Describes a function performed for a given authorized privilege by this user class.",
      "pattern": "^\\S(.*\\S)?$",
      "type": "string"
    },
    "oscal-ssp-oscal-implementation-common:inventory-item": {
      "title": "Inventory Item",
      "description": "A single managed inventory item within the system.",
      "required": [
        "uuid",
        "description"
      ],
      "type": "object",
      "properties": {
        "uuid": {
          "title": "Inventory Item Universally Unique Identifier",
          "description": "A globally unique identifier that can be used to reference this inventory item entry elsewhere in an OSCAL document. A UUID should be consistently used for a given resource across revisions of the document.",
          "type": "string",
          "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
        },
        "description": {
          "title": "Inventory Item Description",
          "description": "A summary of the inventory item stating its purpose within the system.",
          "type": "string"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "responsible-parties": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_responsible-party"
          }
        },
        "implemented-components": {
          "type": "array",
          "minItems": 1,
          "items": {
            "title": "Implemented Component",
            "description": "The set of components that are implemented in a given system inventory item.",
            "type": "object",
            "properties": {
              "component-uuid": {
                "title": "Component Universally Unique Identifier Reference",
                "description": "A reference to a component that is implemented as part of an inventory item.",
                "type": "string",
                "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
              },
              "props": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_property"
                }
              },
              "links": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_link"
                }
              },
              "responsible-parties": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#assembly_oscal-metadata_responsible-party"
                }
              },
              "remarks": {
                "$ref": "#field_oscal-metadata_remarks"
              }
            },
            "required": [
              "component-uuid"
            ],
            "additionalProperties": false
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-implementation-common:set-parameter": {
      "title": "Set Parameter Value",
      "description": "Identifies the parameter that will be set by the enclosed value.",
      "required": [
        "param-id",
        "values"
      ],
      "type": "object",
      "properties": {
        "param-id": {
          "title": "Parameter ID",
          "description": "A reference to a parameter within a control, who's catalog has been imported into the current implementation context.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "values": {
          "type": "array",
          "minItems": 1,
          "items": {
            "title": "Parameter Value",
            "description": "A parameter value or set of values.",
            "type": "string",
            "pattern": "^\\S(.*\\S)?$"
          }
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-implementation-common:system-id": {
      "title": "System Identification",
      "description": "A unique identifier for the system described by this system security plan.",
      "required": [
        "id"
      ],
      "type": "object",
      "properties": {
        "identifier-type": {
          "title": "Identification System Type",
          "description": "Identifies the identification system from which the provided identifier was assigned.",
          "type": "string",
          "format": "uri"
        },
        "id": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-catalog-common:part": {
      "title": "Part",
      "description": "A partition of a control's definition or a child of another part.",
      "required": [
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "title": "Part Identifier",
          "description": "A unique identifier for a specific part instance. This identifier's uniqueness is document scoped and is intended to be consistent for the same part across minor revisions of the document.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "name": {
          "title": "Part Name",
          "description": "A textual label that uniquely identifies the part's semantic type.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "ns": {
          "title": "Part Namespace",
          "description": "A namespace qualifying the part's name. This allows different organizations to associate distinct semantics with the same name.",
          "type": "string",
          "format": "uri"
        },
        "class": {
          "title": "Part Class",
          "description": "A textual label that provides a sub-type or characterization of the part's name. This can be used to further distinguish or discriminate between the semantics of multiple parts of the same control with the same name and ns.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "title": {
          "title": "Part Title",
          "description": "A name given to the part, which may be used by a tool for display and navigation.",
          "type": "string"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "prose": {
          "title": "Part Text",
          "description": "Permits multiple paragraphs, lists, tables etc.",
          "type": "string"
        },
        "parts": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-catalog-common_part"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-catalog-common:parameter": {
      "title": "Parameter",
      "description": "Parameters provide a mechanism for the dynamic assignment of value(s) in a control.",
      "required": [
        "id"
      ],
      "type": "object",
      "properties": {
        "id": {
          "title": "Parameter Identifier",
          "description": "A unique identifier for a specific parameter instance. This identifier's uniqueness is document scoped and is intended to be consistent for the same parameter across minor revisions of the document.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "class": {
          "title": "Parameter Class",
          "description": "A textual label that provides a characterization of the parameter.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "depends-on": {
          "title": "Depends on",
          "description": "Another parameter invoking this one",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"
        },
        "props": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_property"
          }
        },
        "links": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-metadata_link"
          }
        },
        "label": {
          "title": "Parameter Label",
          "description": "A short, placeholder name for the parameter, which can be used as a substitute for a value if no value is assigned.",
          "type": "string"
        },
        "usage": {
          "title": "Parameter Usage Description",
          "description": "Describes the purpose and use of a parameter",
          "type": "string"
        },
        "constraints": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-catalog-common_parameter-constraint"
          }
        },
        "guidelines": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#assembly_oscal-catalog-common_parameter-guideline"
          }
        },
        "values": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#field_oscal-catalog-common_parameter-value"
          }
        },
        "select": {
          "$ref": "#assembly_oscal-catalog-common_parameter-selection"
        },
        "remarks": {
          "$ref": "#field_oscal-metadata_remarks"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-catalog-common:parameter-constraint": {
      "title": "Constraint",
      "description": "A formal or informal expression of a constraint or test",
      "properties": {
        "description": {
          "title": "Constraint Description",
          "description": "A textual summary of the constraint to be applied.",
          "type": "string"
        },
        "tests": {
          "type": "array",
          "minItems": 1,
          "items": {
            "title": "Constraint Test",
            "description": "A test expression which is expected to be evaluated by a tool.",
            "type": "object",
            "properties": {
              "expression": {
                "title": "Constraint test",
                "description": "A formal (executable) expression of a constraint",
                "type": "string",
                "pattern": "^\\S(.*\\S)?$"
              },
              "remarks": {
                "$ref": "#field_oscal-metadata_remarks"
              }
            },
            "required": [
              "expression"
            ],
            "additionalProperties": false
          }
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "oscal-ssp-oscal-catalog-common:parameter-guideline": {
      "title": "Guideline",
      "description": "A prose statement that provides a recommendation for the use of a parameter.",
      "required": [
        "prose"
      ],
      "type": "object",
      "properties": {
        "prose": {
          "title": "Guideline Text",
          "description": "Prose permits multiple paragraphs, lists, tables etc.",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "oscal-ssp-oscal-catalog-common:parameter-value": {
      "title": "Parameter Value",
      "description": "A parameter value or set of values.",
      "pattern": "^\\S(.*\\S)?$",
      "type": "string"
    },
    "oscal-ssp-oscal-catalog-common:parameter-selection": {
      "title": "Selection",
      "description": "Presenting a choice among alternatives",
      "properties": {
        "how-many": {
          "title": "Parameter Cardinality",
          "description": "Describes the number of selections that must occur. Without this setting, only one value should be assumed to be permitted.",
          "type": "string",
          "pattern": "^[_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-\\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$",
          "enum": [
            "one",
            "one-or-more"
          ]
        },
        "choice": {
          "type": "array",
          "minItems": 1,
          "items": {
            "title": "Choice",
            "description": "A value selection among several such options",
            "type": "string"
          }
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "$comment": "OSCAL System Security Plan (SSP) Model: JSON Schema",
  "required": [
    "system-security-plan"
  ],
  "maxProperties": 1
}
