func expandModel()

in ec/ecresource/trafficfilterresource/expanders.go [29:71]


func expandModel(ctx context.Context, state modelV0) (*models.TrafficFilterRulesetRequest, diag.Diagnostics) {
	var diags diag.Diagnostics

	ruleSet := make([]trafficFilterRuleModelV0, 0, len(state.Rule.Elements()))
	diags.Append(state.Rule.ElementsAs(ctx, &ruleSet, false)...)
	if diags.HasError() {
		return nil, diags
	}

	var request = models.TrafficFilterRulesetRequest{
		Name:             ec.String(state.Name.ValueString()),
		Type:             ec.String(state.Type.ValueString()),
		Region:           ec.String(state.Region.ValueString()),
		Description:      *ec.String(state.Description.ValueString()),
		IncludeByDefault: ec.Bool(state.IncludeByDefault.ValueBool()),
		Rules:            make([]*models.TrafficFilterRule, 0, len(ruleSet)),
	}

	for _, r := range ruleSet {
		var rule = models.TrafficFilterRule{
			Source: r.Source.ValueString(),
		}

		if !r.ID.IsNull() && !r.ID.IsUnknown() {
			rule.ID = r.ID.ValueString()
		}

		if !r.Description.IsNull() && !r.Description.IsUnknown() {
			rule.Description = r.Description.ValueString()
		}

		if !r.AzureEndpointName.IsNull() && !r.AzureEndpointName.IsUnknown() {
			rule.AzureEndpointName = r.AzureEndpointName.ValueString()
		}
		if !r.AzureEndpointGUID.IsNull() && !r.AzureEndpointGUID.IsUnknown() {
			rule.AzureEndpointGUID = r.AzureEndpointGUID.ValueString()
		}

		request.Rules = append(request.Rules, &rule)
	}

	return &request, diags
}