package scim

type roleBindingUser struct {
	UserID     uint64
	Email      string
	FirstName  string
	LastName   string
	UserStatus string

	OrgID uint64

	OrgBinding      roleBinding
	ProjectBindings []roleBinding
}

type roleBinding struct {
	ScopeID           uint64
	RoleBindingStatus string
	Role              string
}

type ScimQueryResponse struct {
	TotalResults int
	StartIndex   int
	ItemsPerPage int
	Resources    []map[string]interface{}
}

type ScimUpdateResponse struct {
	Updated  bool                   // true if resource was replaced; false if resource was not replaced, but has no error
	Ref      map[string]interface{} // reference resource (before state)
	Resource map[string]interface{} // replaced resource (after state)
}

type ScimGroupMemberMarshal struct {
	MemberMap map[string]ScimGroupMember
}

type ScimGroupProjectRoleMarshal struct {
	ProjectRoleMap map[uint64]ScimGroupProjectRole
}

type ScimGroupProjectRole struct {
	ProjectID uint64 `json:"project_id"`
	Role      string `json:"role"`
}
