{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.fedramp.gov/vdr-migration/assets/implementation-status.schema.json",
  "title": "VDR/VER Migration Progress Report Mini-SDR",
  "description": "One offering and one response for every provider-facing VDR/VER rule, with per-rule corrective action plans. Format version 0.2.0; rules baseline 2026.11.02.01.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "metadata",
    "responses"
  ],
  "properties": {
    "metadata": {
      "$ref": "#/$defs/metadata"
    },
    "responses": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "VDR-CSO-DET",
        "VDR-CSO-RES",
        "VDR-CSO-FAV",
        "VDR-CSO-DFR",
        "VDR-CSO-ADT",
        "VDR-CSO-DAC",
        "VDR-CSO-MSP",
        "VDR-CSO-AKE",
        "VDR-CSO-SIR",
        "VDR-TFR-NMV",
        "VDR-TFR-PDD",
        "VDR-TFR-PCD",
        "VDR-TFR-PVR",
        "VDR-TFR-RMN",
        "VDR-TFR-KEV",
        "VDR-TFR-PSD",
        "VDR-TFR-MVX",
        "VDR-TFR-MVF",
        "VER-EVA-ELX",
        "VER-EVA-EIR",
        "VER-EVA-EPA",
        "VER-EVA-AIA",
        "VER-EVA-GRV",
        "VER-EVA-EFP",
        "VER-EVA-EFA",
        "VER-RPT-PER",
        "VER-RPT-VDT",
        "VER-RPT-AVI",
        "VER-RPT-NID",
        "VER-RPT-HLO",
        "VER-RPT-RPD",
        "VER-TFR-MHR",
        "VER-TFR-MAV",
        "VER-TFR-MRH",
        "VER-TFR-EVU",
        "VER-TFR-IRI",
        "VER-TFR-NRI"
      ],
      "properties": {
        "VDR-CSO-DET": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VDR-CSO-RES": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VDR-CSO-FAV": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VDR-CSO-DFR": {
          "$ref": "#/$defs/response"
        },
        "VDR-CSO-ADT": {
          "$ref": "#/$defs/response"
        },
        "VDR-CSO-DAC": {
          "$ref": "#/$defs/response"
        },
        "VDR-CSO-MSP": {
          "$ref": "#/$defs/response"
        },
        "VDR-CSO-AKE": {
          "$ref": "#/$defs/response"
        },
        "VDR-CSO-SIR": {
          "$ref": "#/$defs/response"
        },
        "VDR-TFR-NMV": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VDR-TFR-PDD": {
          "$ref": "#/$defs/response"
        },
        "VDR-TFR-PCD": {
          "$ref": "#/$defs/response"
        },
        "VDR-TFR-PVR": {
          "$ref": "#/$defs/response"
        },
        "VDR-TFR-RMN": {
          "$ref": "#/$defs/response"
        },
        "VDR-TFR-KEV": {
          "$ref": "#/$defs/response"
        },
        "VDR-TFR-PSD": {
          "$ref": "#/$defs/response"
        },
        "VDR-TFR-MVX": {
          "$ref": "#/$defs/response"
        },
        "VDR-TFR-MVF": {
          "$ref": "#/$defs/response"
        },
        "VER-EVA-ELX": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VER-EVA-EIR": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VER-EVA-EPA": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VER-EVA-AIA": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VER-EVA-GRV": {
          "$ref": "#/$defs/response"
        },
        "VER-EVA-EFP": {
          "$ref": "#/$defs/response"
        },
        "VER-EVA-EFA": {
          "$ref": "#/$defs/response"
        },
        "VER-RPT-PER": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VER-RPT-VDT": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VER-RPT-AVI": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VER-RPT-NID": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VER-RPT-HLO": {
          "$ref": "#/$defs/response"
        },
        "VER-RPT-RPD": {
          "$ref": "#/$defs/response"
        },
        "VER-TFR-MHR": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VER-TFR-MAV": {
          "allOf": [
            {
              "$ref": "#/$defs/response"
            },
            {
              "$ref": "#/$defs/mandatoryResponse"
            }
          ]
        },
        "VER-TFR-MRH": {
          "$ref": "#/$defs/response"
        },
        "VER-TFR-EVU": {
          "$ref": "#/$defs/response"
        },
        "VER-TFR-IRI": {
          "$ref": "#/$defs/response"
        },
        "VER-TFR-NRI": {
          "$ref": "#/$defs/response"
        }
      }
    }
  },
  "$defs": {
    "metadata": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schemaVersion",
        "rulesVersion",
        "providerName",
        "offeringName",
        "framework",
        "class",
        "asOfDate",
        "fedrampId"
      ],
      "properties": {
        "schemaVersion": {
          "const": "0.2.0"
        },
        "rulesVersion": {
          "const": "2026.11.02.01"
        },
        "providerName": {
          "type": "string",
          "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]"
        },
        "offeringName": {
          "type": "string",
          "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]"
        },
        "framework": {
          "enum": [
            "Rev5",
            "20x"
          ]
        },
        "class": {
          "enum": [
            "B",
            "C",
            "D"
          ]
        },
        "asOfDate": {
          "type": "string",
          "format": "date",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "fedrampId": {
          "type": "string",
          "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]",
          "description": "Required FedRAMP offering identifier."
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "framework": {
                "const": "20x"
              }
            },
            "required": [
              "framework"
            ],
            "type": "object"
          },
          "then": {
            "properties": {
              "class": {
                "enum": [
                  "B",
                  "C"
                ]
              }
            },
            "type": "object"
          }
        }
      ]
    },
    "response": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "status",
        "explanation"
      ],
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "Fully Implemented",
            "Partially Implemented",
            "Not Implemented",
            "Not Applicable"
          ],
          "title": "Implementation status"
        },
        "explanation": {
          "type": "string",
          "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]"
        },
        "correctiveActionPlan": {
          "$ref": "#/$defs/correctiveActionPlan"
        },
        "customerRisk": {
          "type": "string",
          "anyOf": [
            {
              "const": ""
            },
            {
              "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]"
            }
          ]
        },
        "providerCompensation": {
          "type": "string",
          "anyOf": [
            {
              "const": ""
            },
            {
              "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]"
            }
          ]
        },
        "agencyCompensation": {
          "type": "string",
          "anyOf": [
            {
              "const": ""
            },
            {
              "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]"
            }
          ]
        },
        "additionalAssurance": {
          "type": "string",
          "anyOf": [
            {
              "const": ""
            },
            {
              "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]"
            }
          ]
        },
        "feedback": {
          "type": "string",
          "anyOf": [
            {
              "const": ""
            },
            {
              "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]"
            }
          ]
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "status": {
                "const": "Fully Implemented"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "correctiveActionPlan": {
                "type": "object",
                "properties": {
                  "capStatus": {
                    "const": "Completed"
                  }
                }
              }
            }
          },
          "else": {
            "required": [
              "correctiveActionPlan"
            ],
            "properties": {
              "correctiveActionPlan": {}
            }
          }
        },
        {
          "if": {
            "properties": {
              "status": {
                "enum": [
                  "Partially Implemented",
                  "Not Implemented"
                ]
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "required": [
              "customerRisk",
              "providerCompensation",
              "agencyCompensation"
            ],
            "properties": {
              "customerRisk": {
                "type": "string",
                "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]"
              },
              "providerCompensation": {
                "type": "string",
                "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]"
              },
              "agencyCompensation": {
                "type": "string",
                "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "status": {
                "const": "Not Applicable"
              }
            },
            "required": [
              "status"
            ]
          },
          "then": {
            "properties": {
              "correctiveActionPlan": {
                "type": "object",
                "properties": {
                  "capStatus": {
                    "const": "Not Applicable"
                  }
                }
              }
            }
          }
        }
      ]
    },
    "correctiveActionPlan": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "capStatus": {
          "enum": [
            "Planned",
            "In Progress",
            "Pending Plan",
            "Completed",
            "Not Applicable"
          ]
        },
        "capStatusExplanation": {
          "type": "string",
          "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]"
        },
        "capTargetDate": {
          "type": "string",
          "format": "date",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "capExplanation": {
          "type": "string",
          "pattern": "[^\\u0009-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]"
        },
        "capConfidence": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        },
        "capCompletedDate": {
          "type": "string",
          "format": "date",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        }
      },
      "required": [
        "capStatus",
        "capStatusExplanation"
      ],
      "allOf": [
        {
          "if": {
            "properties": {
              "capStatus": {
                "const": "Planned"
              }
            },
            "required": [
              "capStatus"
            ]
          },
          "then": {
            "properties": {
              "capCompletedDate": false,
              "capTargetDate": {},
              "capExplanation": {},
              "capConfidence": {}
            },
            "required": [
              "capTargetDate",
              "capExplanation",
              "capConfidence"
            ]
          }
        },
        {
          "if": {
            "properties": {
              "capStatus": {
                "const": "In Progress"
              }
            },
            "required": [
              "capStatus"
            ]
          },
          "then": {
            "properties": {
              "capCompletedDate": false,
              "capTargetDate": {},
              "capExplanation": {},
              "capConfidence": {}
            },
            "required": [
              "capTargetDate",
              "capExplanation",
              "capConfidence"
            ]
          }
        },
        {
          "if": {
            "properties": {
              "capStatus": {
                "const": "Pending Plan"
              }
            },
            "required": [
              "capStatus"
            ]
          },
          "then": {
            "properties": {
              "capTargetDate": false,
              "capExplanation": false,
              "capConfidence": false,
              "capCompletedDate": false
            }
          }
        },
        {
          "if": {
            "properties": {
              "capStatus": {
                "const": "Completed"
              }
            },
            "required": [
              "capStatus"
            ]
          },
          "then": {
            "properties": {
              "capTargetDate": false,
              "capConfidence": false,
              "capCompletedDate": {},
              "capExplanation": {}
            },
            "required": [
              "capCompletedDate",
              "capExplanation"
            ]
          }
        },
        {
          "if": {
            "properties": {
              "capStatus": {
                "const": "Not Applicable"
              }
            },
            "required": [
              "capStatus"
            ]
          },
          "then": {
            "properties": {
              "capTargetDate": false,
              "capExplanation": false,
              "capConfidence": false,
              "capCompletedDate": false
            }
          }
        }
      ]
    },
    "mandatoryResponse": {
      "type": "object",
      "if": {
        "properties": {
          "status": {
            "enum": [
              "Partially Implemented",
              "Not Implemented"
            ]
          }
        },
        "required": [
          "status"
        ]
      },
      "then": {
        "properties": {
          "correctiveActionPlan": {
            "type": "object",
            "properties": {
              "capStatus": {
                "not": {
                  "const": "Not Applicable"
                }
              }
            }
          }
        }
      },
      "properties": {
        "status": {
          "not": {
            "const": "Not Applicable"
          }
        }
      }
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "metadata": {
            "type": "object",
            "properties": {
              "framework": {
                "const": "Rev5"
              },
              "class": {
                "const": "B"
              }
            },
            "required": [
              "framework",
              "class"
            ]
          }
        },
        "required": [
          "metadata"
        ]
      },
      "then": {
        "properties": {
          "responses": {
            "type": "object",
            "properties": {
              "VDR-TFR-MVX": {
                "type": "object",
                "properties": {
                  "status": {
                    "const": "Not Applicable"
                  }
                }
              }
            }
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "metadata": {
            "type": "object",
            "properties": {
              "framework": {
                "const": "Rev5"
              },
              "class": {
                "const": "C"
              }
            },
            "required": [
              "framework",
              "class"
            ]
          }
        },
        "required": [
          "metadata"
        ]
      },
      "then": {
        "properties": {
          "responses": {
            "type": "object",
            "properties": {
              "VDR-TFR-MVX": {
                "type": "object",
                "properties": {
                  "status": {
                    "const": "Not Applicable"
                  }
                }
              },
              "VDR-TFR-MVF": {
                "$ref": "#/$defs/mandatoryResponse"
              }
            }
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "metadata": {
            "type": "object",
            "properties": {
              "framework": {
                "const": "Rev5"
              },
              "class": {
                "const": "D"
              }
            },
            "required": [
              "framework",
              "class"
            ]
          }
        },
        "required": [
          "metadata"
        ]
      },
      "then": {
        "properties": {
          "responses": {
            "type": "object",
            "properties": {
              "VDR-TFR-MVX": {
                "type": "object",
                "properties": {
                  "status": {
                    "const": "Not Applicable"
                  }
                }
              },
              "VDR-TFR-MVF": {
                "$ref": "#/$defs/mandatoryResponse"
              }
            }
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "metadata": {
            "type": "object",
            "properties": {
              "framework": {
                "const": "20x"
              },
              "class": {
                "const": "B"
              }
            },
            "required": [
              "framework",
              "class"
            ]
          }
        },
        "required": [
          "metadata"
        ]
      },
      "then": {
        "properties": {
          "responses": {
            "type": "object",
            "properties": {
              "VDR-TFR-MVX": {
                "$ref": "#/$defs/mandatoryResponse"
              },
              "VDR-TFR-MVF": {
                "type": "object",
                "properties": {
                  "status": {
                    "const": "Not Applicable"
                  }
                }
              }
            }
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "metadata": {
            "type": "object",
            "properties": {
              "framework": {
                "const": "20x"
              },
              "class": {
                "const": "C"
              }
            },
            "required": [
              "framework",
              "class"
            ]
          }
        },
        "required": [
          "metadata"
        ]
      },
      "then": {
        "properties": {
          "responses": {
            "type": "object",
            "properties": {
              "VDR-TFR-MVX": {
                "$ref": "#/$defs/mandatoryResponse"
              },
              "VDR-TFR-MVF": {
                "type": "object",
                "properties": {
                  "status": {
                    "const": "Not Applicable"
                  }
                }
              }
            }
          }
        }
      }
    }
  ]
}
