forked from cortexapps/terraform-provider-cortex
/
scorecard_data_source_models.go
49 lines (41 loc) · 1.95 KB
/
scorecard_data_source_models.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package provider
import (
"context"
"github.com/bigcommerce/terraform-provider-cortex/internal/cortex"
"github.com/hashicorp/terraform-plugin-framework/diag"
"github.com/hashicorp/terraform-plugin-framework/types"
)
/***********************************************************************************************************************
* Models
**********************************************************************************************************************/
// ScorecardDataSourceModel describes the data source data model.
type ScorecardDataSourceModel struct {
Id types.String `tfsdk:"id"`
Tag types.String `tfsdk:"tag"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
Draft types.Bool `tfsdk:"draft"`
Ladder types.Object `tfsdk:"ladder"`
Rules []ScorecardRuleResourceModel `tfsdk:"rules"`
Filter types.Object `tfsdk:"filter"`
Evaluation types.Object `tfsdk:"evaluation"`
}
func (o *ScorecardDataSourceModel) FromApiModel(ctx context.Context, diagnostics *diag.Diagnostics, entity *cortex.Scorecard) {
o.Id = types.StringValue(entity.Tag)
o.Tag = types.StringValue(entity.Tag)
o.Name = types.StringValue(entity.Name)
o.Description = types.StringValue(entity.Description)
o.Draft = types.BoolValue(entity.Draft)
ladder := ScorecardLadderResourceModel{}
o.Ladder = ladder.FromApiModel(ctx, diagnostics, &entity.Ladder)
rules := make([]ScorecardRuleResourceModel, len(entity.Rules))
for i, e := range entity.Rules {
rrm := ScorecardRuleResourceModel{}
rules[i] = rrm.FromApiModel(&e)
}
o.Rules = rules
filter := ScorecardFilterResourceModel{}
o.Filter = filter.FromApiModel(ctx, diagnostics, &entity.Filter)
evaluation := ScorecardEvaluationResourceModel{}
o.Evaluation = evaluation.FromApiModel(ctx, diagnostics, &entity.Evaluation)
}