@@ -2,10 +2,12 @@ package provider
2
2
3
3
import (
4
4
"context"
5
+ "strings"
5
6
"time"
6
7
7
8
"github.com/hashicorp/terraform-plugin-framework/diag"
8
9
"github.com/hashicorp/terraform-plugin-framework/types"
10
+
9
11
"github.com/pomerium/enterprise-client-go/pb"
10
12
)
11
13
@@ -17,31 +19,34 @@ type ServiceAccountModel struct {
17
19
Description types.String `tfsdk:"description"`
18
20
UserID types.String `tfsdk:"user_id"`
19
21
ExpiresAt types.String `tfsdk:"expires_at"`
22
+ JWT types.String `tfsdk:"jwt"`
20
23
}
21
24
22
25
func ConvertServiceAccountToPB (_ context.Context , src * ServiceAccountResourceModel ) (* pb.PomeriumServiceAccount , diag.Diagnostics ) {
23
- var diagnostics diag.Diagnostics
26
+ var diags diag.Diagnostics
24
27
25
- namespaceID := src .NamespaceID .ValueString ()
26
28
pbServiceAccount := & pb.PomeriumServiceAccount {
27
- Id : src .ID .ValueString (),
28
- UserId : src .Name .ValueString (),
29
- NamespaceId : & namespaceID ,
29
+ Id : src .ID .ValueString (),
30
+ UserId : src .Name .ValueString (),
31
+ }
32
+
33
+ if src .NamespaceID .ValueString () != "" {
34
+ pbServiceAccount .NamespaceId = src .NamespaceID .ValueStringPointer ()
30
35
}
31
36
32
37
if ! src .Description .IsNull () {
33
38
desc := src .Description .ValueString ()
34
39
pbServiceAccount .Description = & desc
35
40
}
36
41
37
- return pbServiceAccount , diagnostics
42
+ return pbServiceAccount , diags
38
43
}
39
44
40
45
func ConvertServiceAccountFromPB (dst * ServiceAccountResourceModel , src * pb.PomeriumServiceAccount ) diag.Diagnostics {
41
46
var diagnostics diag.Diagnostics
42
47
43
48
dst .ID = types .StringValue (src .Id )
44
- dst .Name = types .StringValue (src .UserId )
49
+ dst .Name = types .StringValue (strings . TrimSuffix ( src .UserId , "@" + src . GetNamespaceId () + ".pomerium" ) )
45
50
if src .NamespaceId != nil {
46
51
dst .NamespaceID = types .StringValue (* src .NamespaceId )
47
52
} else {
0 commit comments