github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/pkg/control/controldisplay/templates/json/output.tmpl (about)

     1  {{ define "output" -}}
     2  	{{- template "result_group_template" .Data.Root -}}
     3  {{ end }}
     4  
     5  {{/* sub template for result groups */}}
     6  {{ define "result_group_template" }}
     7  {{- $first_group_rendered := false -}}
     8  {{- $first_control_rendered := false -}}
     9  {
    10  	"group_id": {{ toPrettyJson .GroupId }},
    11  	"title": {{ toPrettyJson .Title }},
    12  	"description": {{ toPrettyJson .Description }},
    13  	"tags": {{ toPrettyJson .Tags }},
    14  	"summary": {{ toPrettyJson .Summary }},
    15  	"groups": {{ if .Groups }}[
    16  		{{- range .Groups -}}
    17  			{{ if $first_group_rendered -}},{{- end -}}
    18  			{{- template "result_group_template" . -}}
    19  			{{- $first_group_rendered = true -}}
    20  		{{ end }}
    21  	], {{ else }} [], {{ end }}
    22  	"controls": {{ if .ControlRuns }}[
    23  		{{- range .ControlRuns -}}
    24  			{{ if $first_control_rendered -}},{{- end -}}
    25  			{{- template "control_run_template" . -}}
    26  			{{- $first_control_rendered = true -}}
    27  		{{ end }}
    28  	] {{ else }} null {{ end }}
    29  } {{ end -}}
    30  
    31  {{/* sub template for control runs */}}
    32  {{ define "control_run_template" }}
    33  {{- $first_row_rendered := false -}}
    34  {
    35  	"summary": {{ toPrettyJson .Summary }},
    36  	"results": {{ if .Rows }}[
    37  		{{- range .Rows -}}
    38  			{{ if $first_row_rendered -}},{{- end -}}
    39  			{{- template "control_row_template" . -}}
    40  			{{- $first_row_rendered = true -}}
    41  		{{ end }}
    42  	], {{ else }} null, {{ end }}
    43  	"control_id": {{ toPrettyJson .ControlId }},
    44  	"description": {{ toPrettyJson .Description }},
    45  	"severity": {{ toPrettyJson .Severity }},
    46  	"tags": {{ toPrettyJson .Tags }},
    47  	"title": {{ toPrettyJson .Title }},
    48  	"run_status": {{ template "run_status_map" .RunStatus }},
    49  	"run_error": {{ toPrettyJson .RunErrorString }}
    50  } {{- end -}}
    51  
    52  {{/* sub template for control rows */}}
    53  {{ define "control_row_template" }}
    54  {
    55  	"reason": {{ toPrettyJson .Reason }},
    56  	"resource": {{ toPrettyJson .Resource }},
    57  	"status": {{ toPrettyJson .Status }},
    58  	"dimensions": {{ toPrettyJson .Dimensions }}
    59  } {{ end }}
    60  
    61  {{/* sub template for control run status mapping */}}
    62  {{ define "run_status_map" }}
    63  	{{- if eq . "ready" -}}
    64  		1
    65  	{{- end -}}
    66  	{{- if eq . "started" -}}
    67  		2
    68  	{{- end -}}
    69  	{{- if eq . "complete" -}}
    70  		4
    71  	{{- end -}}
    72  	{{- if eq . "error" -}}
    73  		8
    74  	{{- end -}}
    75  {{- end -}}