hscim-0.3.6: hscim json schema and server implementation
Safe HaskellNone
LanguageHaskell2010

Web.Scim.Schema.PatchOp

Synopsis

Documentation

newtype PatchOp tag Source #

Constructors

PatchOp 

Instances

Instances details
Eq (PatchOp tag) Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Methods

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

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

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 #

ToJSON (PatchOp tag) Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

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

Defined in Web.Scim.Schema.PatchOp

data Operation Source #

The Path attribute value is a String 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
Eq Operation Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Show Operation Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

ToJSON Operation Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

data Op Source #

Constructors

Add 
Replace 
Remove 

Instances

Instances details
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] #

Eq Op Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Methods

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

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

Show Op Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Methods

showsPrec :: Int -> Op -> ShowS #

show :: Op -> String #

showList :: [Op] -> ShowS #

ToJSON Op Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

FromJSON Op Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

data Path Source #

PATH = attrPath / valuePath [subAttr]

Instances

Instances details
Eq Path Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Methods

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

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

Show Path Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

Methods

showsPrec :: Int -> Path -> ShowS #

show :: Path -> String #

showList :: [Path] -> ShowS #

ToJSON Path Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp

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

(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 #

Patchable (HashMap Text Text) Source # 
Instance details

Defined in Web.Scim.Schema.PatchOp