-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | The ChatWork API in Haskell
--   
--   See README at <a>https://github.com/matsubara0507/chatwork#readme</a>
@package chatwork
@version 0.1.3.1

module ChatWork.Client
type Token = ByteString
newtype ChatWorkClient
ChatWorkClient :: Token -> ChatWorkClient

-- | By using type class, the same functions can be used for mock servers
--   and local hosts.
class Client a where {
    type family ClientScheme a :: Scheme;
}
baseUrl :: Client a => a -> Url (ClientScheme a)
mkHeader :: Client a => a -> Option scheme
instance ChatWork.Client.Client ChatWork.Client.ChatWorkClient

module ChatWork.Utils

-- | if want to use Delete HTTP methos with request param, use this type.
--   ref :
--   <a>https://hackage.haskell.org/package/req-0.3.0/docs/Network-HTTP-Req.html#t:DELETE</a>
data DELETE2
DELETE2 :: DELETE2

-- | for resolve ambiguous type
strLength :: String -> Int
instance Network.HTTP.Req.HttpMethod ChatWork.Utils.DELETE2

module ChatWork.Types.Me
data Me
Me :: Int -> Int -> Text -> Text -> Int -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Text -> Me
[meToAccountId] :: Me -> Int
[meToRoomId] :: Me -> Int
[meToName] :: Me -> Text
[meToChatworkId] :: Me -> Text
[meToOrganizationId] :: Me -> Int
[meToOrganizationName] :: Me -> Text
[meToDepartment] :: Me -> Text
[meToTitle] :: Me -> Text
[meToUrl] :: Me -> Text
[meToIntroduction] :: Me -> Text
[meToMail] :: Me -> Text
[meToTelOrganization] :: Me -> Text
[meToTelExtension] :: Me -> Text
[meToTelMobile] :: Me -> Text
[meToSkype] :: Me -> Text
[meToFacebook] :: Me -> Text
[meToTwitter] :: Me -> Text
[meToAvatarImageUrl] :: Me -> Text
instance GHC.Generics.Generic ChatWork.Types.Me.Me
instance GHC.Show.Show ChatWork.Types.Me.Me
instance GHC.Classes.Eq ChatWork.Types.Me.Me
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Me.Me
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Me.Me

module ChatWork.Types.IncomingRequests
type IncomingRequests = [IncomingRequest]
data IncomingRequest
IncomingRequest :: Int -> Int -> Text -> Text -> Text -> Int -> Text -> Text -> Text -> IncomingRequest
[incomingRequestToRequestId] :: IncomingRequest -> Int
[incomingRequestToAccountId] :: IncomingRequest -> Int
[incomingRequestToMessage] :: IncomingRequest -> Text
[incomingRequestToName] :: IncomingRequest -> Text
[incomingRequestToChatworkId] :: IncomingRequest -> Text
[incomingRequestToOrganizationId] :: IncomingRequest -> Int
[incomingRequestToOrganizationName] :: IncomingRequest -> Text
[incomingRequestToDepartment] :: IncomingRequest -> Text
[incomingRequestToAvatarImageUrl] :: IncomingRequest -> Text
data AcceptedIncomingRequest
AcceptedIncomingRequest :: Int -> Int -> Text -> Text -> Int -> Text -> Text -> Text -> AcceptedIncomingRequest
[acceptedIncomingRequestToAccountId] :: AcceptedIncomingRequest -> Int
[acceptedIncomingRequestToRoomId] :: AcceptedIncomingRequest -> Int
[acceptedIncomingRequestToName] :: AcceptedIncomingRequest -> Text
[acceptedIncomingRequestToChatworkId] :: AcceptedIncomingRequest -> Text
[acceptedIncomingRequestToOrganizationId] :: AcceptedIncomingRequest -> Int
[acceptedIncomingRequestToOrganizationName] :: AcceptedIncomingRequest -> Text
[acceptedIncomingRequestToDepartment] :: AcceptedIncomingRequest -> Text
[acceptedIncomingRequestToAvatarImageUrl] :: AcceptedIncomingRequest -> Text
instance GHC.Generics.Generic ChatWork.Types.IncomingRequests.AcceptedIncomingRequest
instance GHC.Show.Show ChatWork.Types.IncomingRequests.AcceptedIncomingRequest
instance GHC.Classes.Eq ChatWork.Types.IncomingRequests.AcceptedIncomingRequest
instance GHC.Generics.Generic ChatWork.Types.IncomingRequests.IncomingRequest
instance GHC.Show.Show ChatWork.Types.IncomingRequests.IncomingRequest
instance GHC.Classes.Eq ChatWork.Types.IncomingRequests.IncomingRequest
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.IncomingRequests.AcceptedIncomingRequest
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.IncomingRequests.AcceptedIncomingRequest
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.IncomingRequests.IncomingRequest
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.IncomingRequests.IncomingRequest

module ChatWork.Types.Error

-- | when error, chatwork is response: { "errors": ["Invalid API token"] }
--   
--   see : <a>http://developer.chatwork.com/ja/endpoints.html</a>
newtype ChatWorkErrors
ChatWorkErrors :: [Text] -> ChatWorkErrors
[getErrors] :: ChatWorkErrors -> [Text]
instance GHC.Generics.Generic ChatWork.Types.Error.ChatWorkErrors
instance GHC.Show.Show ChatWork.Types.Error.ChatWorkErrors
instance GHC.Classes.Eq ChatWork.Types.Error.ChatWorkErrors
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Error.ChatWorkErrors
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Error.ChatWorkErrors

module ChatWork.Types.Contacts
type Contacts = [Contact]
data Contact
Contact :: Int -> Int -> Text -> Text -> Int -> Text -> Text -> Text -> Contact
[contactToAccountId] :: Contact -> Int
[contactToRoomId] :: Contact -> Int
[contactToName] :: Contact -> Text
[contactToChatworkId] :: Contact -> Text
[contactToOrganizationId] :: Contact -> Int
[contactToOrganizationName] :: Contact -> Text
[contactToDepartment] :: Contact -> Text
[contactToAvatarImageUrl] :: Contact -> Text
instance GHC.Generics.Generic ChatWork.Types.Contacts.Contact
instance GHC.Show.Show ChatWork.Types.Contacts.Contact
instance GHC.Classes.Eq ChatWork.Types.Contacts.Contact
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Contacts.Contact
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Contacts.Contact

module ChatWork.Types.Base
data Room
Room :: Int -> Text -> Text -> Room
[roomToRoomId] :: Room -> Int
[roomToName] :: Room -> Text
[roomToIconPath] :: Room -> Text
data Account
Account :: Int -> Text -> Text -> Account
[accountToAccountId] :: Account -> Int
[accountToName] :: Account -> Text
[accountToAvatarImageUrl] :: Account -> Text

-- | use create new room see :
--   <a>http://developer.chatwork.com/ja/endpoint_rooms.html#POST-rooms</a>
data IconPreset
Group :: IconPreset
Check :: IconPreset
Document :: IconPreset
Meeting :: IconPreset
Event :: IconPreset
Project :: IconPreset
Business :: IconPreset
Study :: IconPreset
Security :: IconPreset
Star :: IconPreset
Idea :: IconPreset
Heart :: IconPreset
Magcup :: IconPreset
Beer :: IconPreset
Music :: IconPreset
Sports :: IconPreset
Travel :: IconPreset

-- | use get tasks on room see:
--   <a>http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-tasks</a>
data TaskStatus
Open :: TaskStatus
Done :: TaskStatus

-- | use get files on room see:
--   <a>http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-files</a>
type AccountId = Int
instance GHC.Classes.Eq ChatWork.Types.Base.TaskStatus
instance GHC.Enum.Enum ChatWork.Types.Base.TaskStatus
instance GHC.Enum.Bounded ChatWork.Types.Base.TaskStatus
instance GHC.Classes.Eq ChatWork.Types.Base.IconPreset
instance GHC.Enum.Enum ChatWork.Types.Base.IconPreset
instance GHC.Enum.Bounded ChatWork.Types.Base.IconPreset
instance GHC.Generics.Generic ChatWork.Types.Base.Account
instance GHC.Show.Show ChatWork.Types.Base.Account
instance GHC.Classes.Eq ChatWork.Types.Base.Account
instance GHC.Generics.Generic ChatWork.Types.Base.Room
instance GHC.Show.Show ChatWork.Types.Base.Room
instance GHC.Classes.Eq ChatWork.Types.Base.Room
instance GHC.Show.Show ChatWork.Types.Base.TaskStatus
instance Web.Internal.HttpApiData.ToHttpApiData ChatWork.Types.Base.TaskStatus
instance Web.Internal.HttpApiData.FromHttpApiData ChatWork.Types.Base.TaskStatus
instance GHC.Show.Show ChatWork.Types.Base.IconPreset
instance Web.Internal.HttpApiData.ToHttpApiData ChatWork.Types.Base.IconPreset
instance Web.Internal.HttpApiData.FromHttpApiData ChatWork.Types.Base.IconPreset
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Base.Account
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Base.Account
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Base.Room
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Base.Room
instance Web.Internal.HttpApiData.FromHttpApiData a => Web.Internal.HttpApiData.FromHttpApiData [a]

module ChatWork.Types.Rooms
type Rooms = [RoomDetail]
data RoomDetail
RoomDetail :: Int -> Text -> Text -> Text -> Bool -> Int -> Int -> Int -> Int -> Int -> Int -> Text -> Int -> Maybe Text -> RoomDetail
[roomDetailToRoomId] :: RoomDetail -> Int
[roomDetailToName] :: RoomDetail -> Text
[roomDetailToType] :: RoomDetail -> Text
[roomDetailToRole] :: RoomDetail -> Text
[roomDetailToSticky] :: RoomDetail -> Bool
[roomDetailToUnreadNum] :: RoomDetail -> Int
[roomDetailToMentionNum] :: RoomDetail -> Int
[roomDetailToMytaskNum] :: RoomDetail -> Int
[roomDetailToMessageNum] :: RoomDetail -> Int
[roomDetailToFileNum] :: RoomDetail -> Int
[roomDetailToTaskNum] :: RoomDetail -> Int
[roomDetailToIconPath] :: RoomDetail -> Text
[roomDetailToLastUpdateTime] :: RoomDetail -> Int
[roomDetailToDescription] :: RoomDetail -> Maybe Text
newtype RoomIdWrap
RoomIdWrap :: Int -> RoomIdWrap
[getRoomId] :: RoomIdWrap -> Int
type Members = [Member]
data Member
Member :: Int -> Text -> Text -> Text -> Int -> Text -> Text -> Text -> Member
[memberToAccountId] :: Member -> Int
[memberToRole] :: Member -> Text
[memberToName] :: Member -> Text
[memberToChatworkId] :: Member -> Text
[memberToOrganizationId] :: Member -> Int
[memberToOrganizationName] :: Member -> Text
[memberToDepartment] :: Member -> Text
[memberToAvatarImageUrl] :: Member -> Text
data MembersPermission
MembersPermission :: [Int] -> [Int] -> [Int] -> MembersPermission
[membersPermissionToAdmin] :: MembersPermission -> [Int]
[membersPermissionToMember] :: MembersPermission -> [Int]
[membersPermissionToReadonly] :: MembersPermission -> [Int]
type Messages = [Message]
data Message
Message :: Text -> Account -> Text -> Int -> Int -> Message
[messageToMessageId] :: Message -> Text
[messageToAccount] :: Message -> Account
[messageToBody] :: Message -> Text
[messageToSendTime] :: Message -> Int
[messageToUpdateTime] :: Message -> Int
newtype MessageIdWrap
MessageIdWrap :: Text -> MessageIdWrap
[getMessageId] :: MessageIdWrap -> Text
type RoomTasks = [RoomTask]
data RoomTask
RoomTask :: Int -> Account -> Account -> Text -> Text -> Int -> Text -> RoomTask
[roomTaskToTaskId] :: RoomTask -> Int
[roomTaskToAccount] :: RoomTask -> Account
[roomTaskToAssignedByAccount] :: RoomTask -> Account
[roomTaskToMessageId] :: RoomTask -> Text
[roomTaskToBody] :: RoomTask -> Text
[roomTaskToLimitTime] :: RoomTask -> Int
[roomTaskToStatus] :: RoomTask -> Text
newtype TaskIdsWrap
TaskIdsWrap :: [Int] -> TaskIdsWrap
[getTaskIds] :: TaskIdsWrap -> [Int]
type Files = [File]
data File
File :: Int -> Account -> Text -> Text -> Int -> Int -> File
[fileToFileId] :: File -> Int
[fileToAccount] :: File -> Account
[fileToMessageId] :: File -> Text
[fileToFilename] :: File -> Text
[fileToFilesize] :: File -> Int
[fileToUploadTime] :: File -> Int

-- | see:
--   <a>http://developer.chatwork.com/ja/endpoint_rooms.html#POST-rooms</a>
data CreateRoomParams
CreateRoomParams :: Maybe Text -> Maybe IconPreset -> [Int] -> Maybe [Int] -> Maybe [Int] -> Text -> CreateRoomParams
[cRoomDescription] :: CreateRoomParams -> Maybe Text
[cIconPreset] :: CreateRoomParams -> Maybe IconPreset
[cMembersAdminIds] :: CreateRoomParams -> [Int]
[cMembersMemberIds] :: CreateRoomParams -> Maybe [Int]
[cMembersReadonlyIds] :: CreateRoomParams -> Maybe [Int]
[cRoomName] :: CreateRoomParams -> Text

-- | see:
--   <a>http://developer.chatwork.com/ja/endpoint_rooms.html#PUT-rooms-room_id</a>
data UpdateRoomParams
UpdateRoomParams :: Maybe Text -> Maybe IconPreset -> Maybe Text -> UpdateRoomParams
[uRoomDescription] :: UpdateRoomParams -> Maybe Text
[uIconPreset] :: UpdateRoomParams -> Maybe IconPreset
[uRoomName] :: UpdateRoomParams -> Maybe Text

-- | see:
--   <a>http://developer.chatwork.com/ja/endpoint_rooms.html#PUT-rooms-room_id-members</a>
data RoomMembersParams
RoomMembersParams :: [Int] -> Maybe [Int] -> Maybe [Int] -> RoomMembersParams
[getAdminIds] :: RoomMembersParams -> [Int]
[getMemberIds] :: RoomMembersParams -> Maybe [Int]
[getReadonlyIds] :: RoomMembersParams -> Maybe [Int]

-- | see:
--   <a>http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-tasks</a>
data GetTasksParams
GetTasksParams :: Maybe Int -> Maybe Int -> Maybe TaskStatus -> GetTasksParams
[getTaskAccountId] :: GetTasksParams -> Maybe Int
[getTaskAssignedByAccountId] :: GetTasksParams -> Maybe Int
[getTaskStatus] :: GetTasksParams -> Maybe TaskStatus

-- | see:
--   <a>http://developer.chatwork.com/ja/endpoint_rooms.html#POST-rooms-room_id-tasks</a>
data CreateTaskParams
CreateTaskParams :: Text -> Maybe Int -> [Int] -> CreateTaskParams
[getTaskBody] :: CreateTaskParams -> Text
[getTaskLimit] :: CreateTaskParams -> Maybe Int
[getTaskToIds] :: CreateTaskParams -> [Int]

-- | see:
--   <a>http://developer.chatwork.com/ja/endpoint_rooms.html#DELETE-rooms-room_id</a>
data DeleteRoomActionType
LeaveRoom :: DeleteRoomActionType
DeleteRoom :: DeleteRoomActionType

-- | see:
--   <a>http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-messages</a>
type Force = Bool

-- | see:
--   <a>http://developer.chatwork.com/ja/endpoint_rooms.html#POST-rooms-room_id-messages</a>
type MessageBody = Text

-- | see:
--   <a>http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-files-file_id</a>
type CreateUrlFlag = Bool
instance GHC.Classes.Eq ChatWork.Types.Rooms.DeleteRoomActionType
instance GHC.Enum.Enum ChatWork.Types.Rooms.DeleteRoomActionType
instance GHC.Enum.Bounded ChatWork.Types.Rooms.DeleteRoomActionType
instance GHC.Show.Show ChatWork.Types.Rooms.CreateTaskParams
instance GHC.Show.Show ChatWork.Types.Rooms.GetTasksParams
instance GHC.Show.Show ChatWork.Types.Rooms.RoomMembersParams
instance GHC.Show.Show ChatWork.Types.Rooms.UpdateRoomParams
instance GHC.Show.Show ChatWork.Types.Rooms.CreateRoomParams
instance GHC.Generics.Generic ChatWork.Types.Rooms.File
instance GHC.Show.Show ChatWork.Types.Rooms.File
instance GHC.Classes.Eq ChatWork.Types.Rooms.File
instance GHC.Generics.Generic ChatWork.Types.Rooms.TaskIdsWrap
instance GHC.Show.Show ChatWork.Types.Rooms.TaskIdsWrap
instance GHC.Classes.Eq ChatWork.Types.Rooms.TaskIdsWrap
instance GHC.Generics.Generic ChatWork.Types.Rooms.RoomTask
instance GHC.Show.Show ChatWork.Types.Rooms.RoomTask
instance GHC.Classes.Eq ChatWork.Types.Rooms.RoomTask
instance GHC.Generics.Generic ChatWork.Types.Rooms.MessageIdWrap
instance GHC.Show.Show ChatWork.Types.Rooms.MessageIdWrap
instance GHC.Classes.Eq ChatWork.Types.Rooms.MessageIdWrap
instance GHC.Generics.Generic ChatWork.Types.Rooms.Message
instance GHC.Show.Show ChatWork.Types.Rooms.Message
instance GHC.Classes.Eq ChatWork.Types.Rooms.Message
instance GHC.Generics.Generic ChatWork.Types.Rooms.MembersPermission
instance GHC.Show.Show ChatWork.Types.Rooms.MembersPermission
instance GHC.Classes.Eq ChatWork.Types.Rooms.MembersPermission
instance GHC.Generics.Generic ChatWork.Types.Rooms.Member
instance GHC.Show.Show ChatWork.Types.Rooms.Member
instance GHC.Classes.Eq ChatWork.Types.Rooms.Member
instance GHC.Generics.Generic ChatWork.Types.Rooms.RoomIdWrap
instance GHC.Show.Show ChatWork.Types.Rooms.RoomIdWrap
instance GHC.Classes.Eq ChatWork.Types.Rooms.RoomIdWrap
instance GHC.Generics.Generic ChatWork.Types.Rooms.RoomDetail
instance GHC.Show.Show ChatWork.Types.Rooms.RoomDetail
instance GHC.Classes.Eq ChatWork.Types.Rooms.RoomDetail
instance GHC.Show.Show ChatWork.Types.Rooms.DeleteRoomActionType
instance Web.Internal.FormUrlEncoded.FromForm ChatWork.Types.Rooms.DeleteRoomActionType
instance Web.Internal.HttpApiData.ToHttpApiData ChatWork.Types.Rooms.DeleteRoomActionType
instance Web.Internal.HttpApiData.FromHttpApiData ChatWork.Types.Rooms.DeleteRoomActionType
instance Web.Internal.FormUrlEncoded.FromForm ChatWork.Types.Rooms.CreateTaskParams
instance Web.Internal.FormUrlEncoded.FromForm ChatWork.Types.Rooms.RoomMembersParams
instance Web.Internal.FormUrlEncoded.FromForm ChatWork.Types.Rooms.UpdateRoomParams
instance Web.Internal.FormUrlEncoded.FromForm ChatWork.Types.Rooms.CreateRoomParams
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.File
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.File
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.TaskIdsWrap
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.TaskIdsWrap
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.RoomTask
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.RoomTask
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.MessageIdWrap
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.MessageIdWrap
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.Message
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.Message
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.MembersPermission
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.MembersPermission
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.Member
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.Member
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.RoomIdWrap
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.RoomIdWrap
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.Rooms.RoomDetail
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.Rooms.RoomDetail

module ChatWork.Types.My
data MyStatus
MyStatus :: Int -> Int -> Int -> Int -> Int -> Int -> MyStatus
[myStatusToUnreadRoomNum] :: MyStatus -> Int
[myStatusToMentionRoomNum] :: MyStatus -> Int
[myStatusToMytaskRoomNum] :: MyStatus -> Int
[myStatusToUnreadNum] :: MyStatus -> Int
[myStatusToMentionNum] :: MyStatus -> Int
[myStatusToMytaskNum] :: MyStatus -> Int
type MyTasks = [MyTask]
data MyTask
MyTask :: Int -> Room -> Account -> Text -> Text -> Int -> Text -> MyTask
[myTaskToTaskId] :: MyTask -> Int
[myTaskToRoom] :: MyTask -> Room
[myTaskToAssignedByAccount] :: MyTask -> Account
[myTaskToMessageId] :: MyTask -> Text
[myTaskToBody] :: MyTask -> Text
[myTaskToLimitTime] :: MyTask -> Int
[myTaskToStatus] :: MyTask -> Text

-- | see:
--   <a>http://developer.chatwork.com/ja/endpoint_my.html#GET-my-tasks</a>
data GetMyTasksParams
GetMyTasksParams :: Maybe AccountId -> Maybe TaskStatus -> GetMyTasksParams
[getMyTasksAssignedByAccountId] :: GetMyTasksParams -> Maybe AccountId
[getMyTasksStatus] :: GetMyTasksParams -> Maybe TaskStatus
instance GHC.Show.Show ChatWork.Types.My.GetMyTasksParams
instance GHC.Generics.Generic ChatWork.Types.My.MyTask
instance GHC.Show.Show ChatWork.Types.My.MyTask
instance GHC.Classes.Eq ChatWork.Types.My.MyTask
instance GHC.Generics.Generic ChatWork.Types.My.MyStatus
instance GHC.Show.Show ChatWork.Types.My.MyStatus
instance GHC.Classes.Eq ChatWork.Types.My.MyStatus
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.My.MyTask
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.My.MyTask
instance Data.Aeson.Types.ToJSON.ToJSON ChatWork.Types.My.MyStatus
instance Data.Aeson.Types.FromJSON.FromJSON ChatWork.Types.My.MyStatus

module ChatWork.Types
data JsonResponse' a
jsonResponse' :: Proxy (JsonResponse' a)

-- | Wrapper type synonym of <tt>JsonResponse</tt> and
--   <a>ChatWorkErrors</a>
type ChatWorkResponse a = JsonResponse' (Either ChatWorkErrors a)

-- | Helper Type Class of <a>QueryParam</a> use to construct request
--   parameter from param type, e.g. <a>CreateRoomParams</a>
class ToReqParam a
toReqParam :: (ToReqParam a, QueryParam param, Monoid param) => Text -> a -> param
instance ChatWork.Types.ToReqParam GHC.Types.Int
instance ChatWork.Types.ToReqParam Data.Text.Internal.Text
instance ChatWork.Types.ToReqParam a => ChatWork.Types.ToReqParam (GHC.Base.Maybe a)
instance GHC.Show.Show a => ChatWork.Types.ToReqParam [a]
instance ChatWork.Types.ToReqParam ChatWork.Types.Base.IconPreset
instance ChatWork.Types.ToReqParam ChatWork.Types.Base.TaskStatus
instance Data.Aeson.Types.FromJSON.FromJSON a => Network.HTTP.Req.HttpResponse (ChatWork.Types.JsonResponse' a)
instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Data.Either.Either ChatWork.Types.Error.ChatWorkErrors a)


-- | see : <a>http://developer.chatwork.com/ja/endpoint_my.html</a>
module ChatWork.Endpoints.My
getMyStatus :: (MonadHttp m, Client c) => c -> m (ChatWorkResponse MyStatus)
getMyTasks :: (MonadHttp m, Client c) => c -> GetMyTasksParams -> m (ChatWorkResponse MyTasks)


-- | see : <a>http://developer.chatwork.com/ja/endpoint_me.html</a>
module ChatWork.Endpoints.Me
getMe :: (MonadHttp m, Client c) => c -> m (ChatWorkResponse Me)


-- | see :
--   <a>http://developer.chatwork.com/ja/endpoint_incoming_requests.html</a>
module ChatWork.Endpoints.IncomingRequests
getIncomingRequests :: (MonadHttp m, Client c) => c -> m (ChatWorkResponse IncomingRequests)

-- | argument <a>Int</a> is <tt>request_id</tt>
acceptIncomingRequest :: (MonadHttp m, Client c) => c -> Int -> m (ChatWorkResponse AcceptedIncomingRequest)

-- | argument <a>Int</a> is <tt>request_id</tt>
rejectIncomingRequest :: (MonadHttp m, Client c) => c -> Int -> m (ChatWorkResponse ())


-- | see : <a>http://developer.chatwork.com/ja/endpoint_contacts.html</a>
module ChatWork.Endpoints.Contacts
getContacts :: (MonadHttp m, Client c) => c -> m (ChatWorkResponse Contacts)


-- | see : <a>http://developer.chatwork.com/ja/endpoint_rooms.html</a>
module ChatWork.Endpoints.Rooms
getRooms :: (MonadHttp m, Client c) => c -> m (ChatWorkResponse Rooms)
createRoom :: (MonadHttp m, Client c) => c -> CreateRoomParams -> m (ChatWorkResponse RoomIdWrap)

-- | argumrnt <a>Int</a> is <tt>room_id</tt>.
getRoom :: (MonadHttp m, Client c) => c -> Int -> m (ChatWorkResponse RoomDetail)

-- | argumrnt <a>Int</a> is <tt>room_id</tt>.
updateRoom :: (MonadHttp m, Client c) => c -> Int -> UpdateRoomParams -> m (ChatWorkResponse RoomIdWrap)

-- | wrap <a>deleteRoom'</a> function, using <a>DeleteRoom</a>. argumrnt
--   <a>Int</a> is <tt>room_id</tt>.
deleteRoom :: (MonadHttp m, Client c) => c -> Int -> m (ChatWorkResponse ())

-- | wrap <a>deleteRoom'</a> function, using <a>LeaveRoom</a>. argumrnt
--   <a>Int</a> is <tt>room_id</tt>.
leaveRoom :: (MonadHttp m, Client c) => c -> Int -> m (ChatWorkResponse ())

-- | argumrnt <a>Int</a> is <tt>room_id</tt>.
deleteRoom' :: (MonadHttp m, Client c) => c -> Int -> DeleteRoomActionType -> m (ChatWorkResponse ())

-- | argumrnt <a>Int</a> is <tt>room_id</tt>.
getMembers :: (MonadHttp m, Client c) => c -> Int -> m (ChatWorkResponse Members)

-- | argumrnt <a>Int</a> is <tt>room_id</tt>.
updateMembersPermission :: (MonadHttp m, Client c) => c -> Int -> RoomMembersParams -> m (ChatWorkResponse MembersPermission)

-- | argumrnt <a>Int</a> is <tt>room_id</tt>.
getMessages :: (MonadHttp m, Client c) => c -> Int -> Maybe Force -> m (ChatWorkResponse Messages)

-- | argumrnt <a>Int</a> is <tt>room_id</tt>.
postMessage :: (MonadHttp m, Client c) => c -> Int -> MessageBody -> m (ChatWorkResponse MessageIdWrap)

-- | argumrnt <a>Int</a> is <tt>room_id</tt>. argumrnt <a>Text</a> is
--   <tt>message_id</tt>.
getMessage :: (MonadHttp m, Client c) => c -> Int -> Text -> m (ChatWorkResponse Message)

-- | argumrnt <a>Int</a> is <tt>room_id</tt>.
getRoomTasks :: (MonadHttp m, Client c) => c -> Int -> GetTasksParams -> m (ChatWorkResponse RoomTasks)

-- | argumrnt <a>Int</a> is <tt>room_id</tt>.
createTask :: (MonadHttp m, Client c) => c -> Int -> CreateTaskParams -> m (ChatWorkResponse TaskIdsWrap)

-- | argumrnt first <a>Int</a> is <tt>room_id</tt>. argumrnt second
--   <a>Int</a> is <tt>task_id</tt>.
getRoomTask :: (MonadHttp m, Client c) => c -> Int -> Int -> m (ChatWorkResponse RoomTask)

-- | argumrnt <a>Int</a> is <tt>room_id</tt>.
getFiles :: (MonadHttp m, Client c) => c -> Int -> Maybe AccountId -> m (ChatWorkResponse Files)

-- | argumrnt first <a>Int</a> is <tt>room_id</tt>. argumrnt second
--   <a>Int</a> is <tt>file_id</tt>.
getFile :: (MonadHttp m, Client c) => c -> Int -> Int -> Maybe CreateUrlFlag -> m (ChatWorkResponse File)

module ChatWork.Endpoints


-- | This module is re-export all endpoint functions and types from this
--   package.
module ChatWork
