/
security_group_types.go
35 lines (28 loc) · 1.13 KB
/
security_group_types.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
package edgegw
import (
"context"
"github.com/hashicorp/terraform-plugin-framework/diag"
"github.com/hashicorp/terraform-plugin-framework/types"
)
// * Security Group (singular) model.
type securityGroupModelMemberOrgNetworkIDs []string
type securityGroupModel struct {
ID types.String `tfsdk:"id"`
EdgeGatewayID types.String `tfsdk:"edge_gateway_id"`
EdgeGatewayName types.String `tfsdk:"edge_gateway_name"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MemberOrgNetworkIDs types.Set `tfsdk:"member_org_network_ids"`
}
// GetIDOrName returns the ID or the name of the security group.
func (rm *securityGroupModel) GetIDOrName() types.String {
if rm.ID.IsNull() || rm.ID.IsUnknown() {
return rm.Name
}
return rm.ID
}
// MemberOrgNetworkIDsFromPlan returns the member_org_network_ids from the plan.
func (rm *securityGroupModel) MemberOrgNetworkIDsFromPlan(ctx context.Context) (securityGroupModelMemberOrgNetworkIDs, diag.Diagnostics) {
ids := securityGroupModelMemberOrgNetworkIDs{}
return ids, rm.MemberOrgNetworkIDs.ElementsAs(ctx, &ids, false)
}