in internal/aws/client.go [195:231]
func (c *client) groupChangeOperation(op OperationType, u *User, g *Group) error {
if g == nil {
return ErrGroupNotSpecified
}
if u == nil {
return ErrUserNotSpecified
}
log.WithFields(log.Fields{"operations": op, "user": u.Username, "group": g.DisplayName}).Debug("Group Change")
gc := &GroupMemberChange{
Schemas: []string{"urn:ietf:params:scim:api:messages:2.0:PatchOp"},
Operations: []GroupMemberChangeOperation{
{
Operation: string(op),
Path: "members",
Members: []GroupMemberChangeMember{
{Value: u.ID},
},
},
},
}
startURL, err := url.Parse(c.endpointURL.String())
if err != nil {
return err
}
startURL.Path = path.Join(startURL.Path, fmt.Sprintf("/Groups/%s", g.ID))
_, err = c.sendRequestWithBody(http.MethodPatch, startURL.String(), *gc)
if err != nil {
return err
}
return nil
}