# SSP template 
<!--
This produces an SSP analog. 
-->

# Frontmatter
<!-- This includes frontmatter.md showing how arbitrary prose can be inserted into a document --> 
{% md_clean_include 'frontmatter.md' heading_level=2 %}






<!-- This iterates over the controls in a resolved catalog and prints out the control statement, summary table,
and implemented requirements in a format similar to a FedRAMP .docx

The groups are sorted by id and the controls are sorted within each group by sort-id if defined for the control.

The control tables for parameters are output with the param_id in the first column followed either by a single
'Values' column, or two columns: 'Values' and 'Label or Choices'.  In the one-column case, values are listed if available
and if not the descriptive label is shown, unless the parameter has a Select defined, in which case the choice options
are shown.

In the two-column case the Values column is empty if no values are defined, and the Label or Choices column is either the
list of optional choices if the parameter has a Select defined, else just the descriptive label for the parameter.

To choose the one- or two- column option, specify false or true, respectively, as the final parameter in
get_fedramp_control_tables().
-->
# Control responses and guidance
{% for group in catalog_interface.get_all_groups_from_catalog() +%}
## {{ group.title }} {{ group.class }} \({{ group.id|upper }}\)

{% for control in catalog_interface.get_sorted_controls_in_group(group.id) %}
{# ### {{ control_interface.get_label(control) }}: {{ control.title}}

#### Control Statement #}
{{ ssp_md_writer.get_control_statement(control.id, 2) }}


#### {{ control_interface.get_label(control) }} Summary information
{{ ssp_md_writer.get_fedramp_control_tables(control.id, 4, true) }}

#### What is the solution and how is it implemented?
{{ ssp_md_writer.get_control_response(control.id, 4)}}
{% endfor %}
{% endfor %}
