@@ -18,6 +18,17 @@ func flattenUserName(name *directory.UserName) map[string]interface{} {
18
18
}
19
19
}
20
20
21
+ func flattenCustomSchema (schema map [string ]googleapi.RawMessage ) []map [string ]interface {} {
22
+ result := make ([]map [string ]interface {}, 0 , len (schema ))
23
+ for key , value := range schema {
24
+ customSchemaMap := make (map [string ]interface {})
25
+ customSchemaMap ["name" ] = key
26
+ customSchemaMap ["value" ] = string (value )
27
+ result = append (result , customSchemaMap )
28
+ }
29
+ return result
30
+ }
31
+
21
32
func resourceUser () * schema.Resource {
22
33
return & schema.Resource {
23
34
Create : resourceUserCreate ,
@@ -658,7 +669,7 @@ func resourceUserRead(d *schema.ResourceData, meta interface{}) error {
658
669
var user * directory.User
659
670
var err error
660
671
err = retry (func () error {
661
- user , err = config .directory .Users .Get (d .Id ()).Do ()
672
+ user , err = config .directory .Users .Get (d .Id ()).Projection ( "full" ). Do ()
662
673
return err
663
674
})
664
675
@@ -692,7 +703,10 @@ func resourceUserRead(d *schema.ResourceData, meta interface{}) error {
692
703
d .Set ("name" , flattenUserName (user .Name ))
693
704
d .Set ("posix_accounts" , user .PosixAccounts )
694
705
d .Set ("ssh_public_keys" , user .SshPublicKeys )
695
- d .Set ("custom_schema" , user .CustomSchemas )
706
+
707
+ if err = d .Set ("custom_schema" , flattenCustomSchema (user .CustomSchemas )); err != nil {
708
+ return fmt .Errorf ("Error setting custom_schema in state: %s" , err .Error ())
709
+ }
696
710
697
711
return nil
698
712
}
@@ -717,7 +731,7 @@ func resourceUserDelete(d *schema.ResourceData, meta interface{}) error {
717
731
func resourceUserImporter (d * schema.ResourceData , meta interface {}) ([]* schema.ResourceData , error ) {
718
732
config := meta .(* Config )
719
733
720
- id , err := config .directory .Users .Get (d .Id ()).Do ()
734
+ id , err := config .directory .Users .Get (d .Id ()).Projection ( "full" ). Do ()
721
735
722
736
if err != nil {
723
737
return nil , fmt .Errorf ("Error fetching user. Make sure the user exists: %s " , err )
@@ -749,7 +763,7 @@ func resourceUserImporter(d *schema.ResourceData, meta interface{}) ([]*schema.R
749
763
d .Set ("name" , flattenUserName (id .Name ))
750
764
d .Set ("posix_accounts" , id .PosixAccounts )
751
765
d .Set ("ssh_public_keys" , id .SshPublicKeys )
752
- d .Set ("custom_schema" , id .CustomSchemas )
766
+ d .Set ("custom_schema" , flattenCustomSchema ( id .CustomSchemas ) )
753
767
754
768
return []* schema.ResourceData {d }, nil
755
769
}
0 commit comments