github.com/aiven/aiven-go-client@v1.36.0/account_team_members.go (about) 1 package aiven 2 3 import ( 4 "errors" 5 "time" 6 ) 7 8 type ( 9 // AccountTeamMembersHandler Aiven go-client handler for Account Team Members 10 AccountTeamMembersHandler struct { 11 client *Client 12 } 13 14 // AccountTeamMember represents an account team member 15 AccountTeamMember struct { 16 UserId string `json:"user_id,omitempty"` 17 RealName string `json:"real_name,omitempty"` 18 TeamId string `json:"team_id,omitempty"` 19 TeamName string `json:"team_name,omitempty"` 20 UserEmail string `json:"user_email,omitempty"` 21 CreateTime *time.Time `json:"create_time,omitempty"` 22 UpdateTime *time.Time `json:"update_time,omitempty"` 23 } 24 25 // AccountTeamMembersResponse represents account team members API response 26 AccountTeamMembersResponse struct { 27 APIResponse 28 Members []AccountTeamMember `json:"members"` 29 } 30 31 // AccountTeamMemberResponse represents a account team member API response 32 AccountTeamMemberResponse struct { 33 APIResponse 34 Member AccountTeamMember `json:"member"` 35 } 36 ) 37 38 // List returns a list of all existing account team members 39 func (h AccountTeamMembersHandler) List(accountId, teamId string) (*AccountTeamMembersResponse, error) { 40 if accountId == "" || teamId == "" { 41 return nil, errors.New("cannot get a list of team members when account id or team id is empty") 42 } 43 44 path := buildPath("account", accountId, "team", teamId, "members") 45 bts, err := h.client.doGetRequest(path, nil) 46 if err != nil { 47 return nil, err 48 } 49 50 var rsp AccountTeamMembersResponse 51 if errR := checkAPIResponse(bts, &rsp); errR != nil { 52 return nil, errR 53 } 54 return &rsp, nil 55 } 56 57 // Invite invites a team member 58 func (h AccountTeamMembersHandler) Invite(accountId, teamId, email string) error { 59 if accountId == "" || teamId == "" { 60 return errors.New("cannot invite a team members when account id or team id is empty") 61 } 62 63 if email == "" { 64 return errors.New("cannot invite a team members when email is empty") 65 } 66 67 path := buildPath("account", accountId, "team", teamId, "members") 68 bts, err := h.client.doPostRequest(path, struct { 69 Email string `json:"email"` 70 }{Email: email}) 71 if err != nil { 72 return err 73 } 74 75 return checkAPIResponse(bts, nil) 76 } 77 78 // Delete deletes an existing account team member 79 func (h AccountTeamMembersHandler) Delete(accountId, teamId, userId string) error { 80 if accountId == "" || teamId == "" || userId == "" { 81 return errors.New("cannot delete a team member when account id or team id or user id is empty") 82 } 83 84 path := buildPath("account", accountId, "team", teamId, "member", userId) 85 bts, err := h.client.doDeleteRequest(path, nil) 86 if err != nil { 87 return err 88 } 89 90 return checkAPIResponse(bts, nil) 91 }