hscim-0.4.0.4: hscim json schema and server implementation
Safe HaskellSafe-Inferred
LanguageHaskell2010

Web.Scim.Schema.PatchOp

Synopsis

Documentation

newtype PatchOp tag Source #

Constructors

PatchOp 

Instances

Instances details
UserTypes tag => FromJSON (PatchOp tag) Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

ToJSON (PatchOp tag) Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Show (PatchOp tag) Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Methods

showsPrec :: Int -> PatchOp tag -> ShowS #

show :: PatchOp tag -> String #

showList :: [PatchOp tag] -> ShowS #

Eq (PatchOp tag) Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Methods

(==) :: PatchOp tag -> PatchOp tag -> Bool #

(/=) :: PatchOp tag -> PatchOp tag -> Bool #

data Operation Source #

The Path attribute value is a Value containing an attribute path describing the target of the operation. It is OPTIONAL for Ops "add" and "replace", and is REQUIRED for "remove". See relevant operation sections below for details.

TODO(arianvp): When value is an array, it needs special handling. e.g. primary fields need to be negated and whatnot. We currently do not do that :)

NOTE: When the path contains a schema, this schema must be implicitly added to the list of schemas on the result type

Constructors

Operation 

Fields

Instances

Instances details
ToJSON Operation Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Show Operation Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Eq Operation Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

data Op Source #

Constructors

Add 
Replace 
Remove 

Instances

Instances details
FromJSON Op Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

ToJSON Op Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Bounded Op Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Methods

minBound :: Op #

maxBound :: Op #

Enum Op Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Methods

succ :: Op -> Op #

pred :: Op -> Op #

toEnum :: Int -> Op #

fromEnum :: Op -> Int #

enumFrom :: Op -> [Op] #

enumFromThen :: Op -> Op -> [Op] #

enumFromTo :: Op -> Op -> [Op] #

enumFromThenTo :: Op -> Op -> Op -> [Op] #

Show Op Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Methods

showsPrec :: Int -> Op -> ShowS #

show :: Op -> String #

showList :: [Op] -> ShowS #

Eq Op Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Methods

(==) :: Op -> Op -> Bool #

(/=) :: Op -> Op -> Bool #

data Path Source #

PATH = attrPath / valuePath [subAttr]

Instances

Instances details
ToJSON Path Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Show Path Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Methods

showsPrec :: Int -> Path -> ShowS #

show :: Path -> String #

showList :: [Path] -> ShowS #

Eq Path Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Methods

(==) :: Path -> Path -> Bool #

(/=) :: Path -> Path -> Bool #

pPath :: [Schema] -> Parser Path Source #

PATH = attrPath / valuePath [subAttr]

class Patchable a where Source #

A very coarse description of what it means to be Patchable I do not like it. We should handhold people using this library more

Instances

Instances details
Patchable NoUserExtra Source # 
Instance details

Defined in Web.Scim.Schema.User

Patchable (KeyMap Text) Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

(UserTypes tag, FromJSON (User tag), Patchable (UserExtra tag)) => Patchable (User tag) Source # 
Instance details

Defined in Web.Scim.Schema.User

Methods

applyOperation :: MonadError ScimError m => User tag -> Operation -> m (User tag) Source #