gogol-chat (empty) → 0.4.0
raw patch · 17 files changed
+4588/−0 lines, 17 filesdep +basedep +gogol-coresetup-changed
Dependencies added: base, gogol-core
Files
- LICENSE +367/−0
- README.md +28/−0
- Setup.hs +2/−0
- gen/Network/Google/Chat.hs +308/−0
- gen/Network/Google/Chat/Types.hs +259/−0
- gen/Network/Google/Chat/Types/Product.hs +1688/−0
- gen/Network/Google/Chat/Types/Sum.hs +625/−0
- gen/Network/Google/Resource/Chat/Spaces/Get.hs +142/−0
- gen/Network/Google/Resource/Chat/Spaces/List.hs +158/−0
- gen/Network/Google/Resource/Chat/Spaces/Members/Get.hs +145/−0
- gen/Network/Google/Resource/Chat/Spaces/Members/List.hs +174/−0
- gen/Network/Google/Resource/Chat/Spaces/Messages/Create.hs +178/−0
- gen/Network/Google/Resource/Chat/Spaces/Messages/Delete.hs +145/−0
- gen/Network/Google/Resource/Chat/Spaces/Messages/Get.hs +145/−0
- gen/Network/Google/Resource/Chat/Spaces/Messages/Update.hs +171/−0
- gogol-chat.cabal +53/−0
- src/.gitkeep +0/−0
+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+ means each individual or legal entity that creates, contributes to+ the creation of, or owns Covered Software.++1.2. "Contributor Version"+ means the combination of the Contributions of others (if any) used+ by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+ means Covered Software of a particular Contributor.++1.4. "Covered Software"+ means Source Code Form to which the initial Contributor has attached+ the notice in Exhibit A, the Executable Form of such Source Code+ Form, and Modifications of such Source Code Form, in each case+ including portions thereof.++1.5. "Incompatible With Secondary Licenses"+ means++ (a) that the initial Contributor has attached the notice described+ in Exhibit B to the Covered Software; or++ (b) that the Covered Software was made available under the terms of+ version 1.1 or earlier of the License, but not also under the+ terms of a Secondary License.++1.6. "Executable Form"+ means any form of the work other than Source Code Form.++1.7. "Larger Work"+ means a work that combines Covered Software with other material, in+ a separate file or files, that is not Covered Software.++1.8. "License"+ means this document.++1.9. "Licensable"+ means having the right to grant, to the maximum extent possible,+ whether at the time of the initial grant or subsequently, any and+ all of the rights conveyed by this License.++1.10. "Modifications"+ means any of the following:++ (a) any file in Source Code Form that results from an addition to,+ deletion from, or modification of the contents of Covered+ Software; or++ (b) any new file in Source Code Form that contains any Covered+ Software.++1.11. "Patent Claims" of a Contributor+ means any patent claim(s), including without limitation, method,+ process, and apparatus claims, in any patent Licensable by such+ Contributor that would be infringed, but for the grant of the+ License, by the making, using, selling, offering for sale, having+ made, import, or transfer of either its Contributions or its+ Contributor Version.++1.12. "Secondary License"+ means either the GNU General Public License, Version 2.0, the GNU+ Lesser General Public License, Version 2.1, the GNU Affero General+ Public License, Version 3.0, or any later versions of those+ licenses.++1.13. "Source Code Form"+ means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+ means an individual or a legal entity exercising rights under this+ License. For legal entities, "You" includes any entity that+ controls, is controlled by, or is under common control with You. For+ purposes of this definition, "control" means (a) the power, direct+ or indirect, to cause the direction or management of such entity,+ whether by contract or otherwise, or (b) ownership of more than+ fifty percent (50%) of the outstanding shares or beneficial+ ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+ Licensable by such Contributor to use, reproduce, make available,+ modify, display, perform, distribute, and otherwise exploit its+ Contributions, either on an unmodified basis, with Modifications, or+ as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+ for sale, have made, import, and otherwise transfer either its+ Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+ or++(b) for infringements caused by: (i) Your and any other third party's+ modifications of Covered Software, or (ii) the combination of its+ Contributions with other software (except as part of its Contributor+ Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+ its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+ Form, as described in Section 3.1, and You must inform recipients of+ the Executable Form how they can obtain a copy of such Source Code+ Form by reasonable means in a timely manner, at a charge no more+ than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+ License, or sublicense it under different terms, provided that the+ license for the Executable Form does not attempt to limit or alter+ the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+* *+* 6. Disclaimer of Warranty *+* ------------------------- *+* *+* Covered Software is provided under this License on an "as is" *+* basis, without warranty of any kind, either expressed, implied, or *+* statutory, including, without limitation, warranties that the *+* Covered Software is free of defects, merchantable, fit for a *+* particular purpose or non-infringing. The entire risk as to the *+* quality and performance of the Covered Software is with You. *+* Should any Covered Software prove defective in any respect, You *+* (not any Contributor) assume the cost of any necessary servicing, *+* repair, or correction. This disclaimer of warranty constitutes an *+* essential part of this License. No use of any Covered Software is *+* authorized under this License except under this disclaimer. *+* *+************************************************************************++************************************************************************+* *+* 7. Limitation of Liability *+* -------------------------- *+* *+* Under no circumstances and under no legal theory, whether tort *+* (including negligence), contract, or otherwise, shall any *+* Contributor, or anyone who distributes Covered Software as *+* permitted above, be liable to You for any direct, indirect, *+* special, incidental, or consequential damages of any character *+* including, without limitation, damages for lost profits, loss of *+* goodwill, work stoppage, computer failure or malfunction, or any *+* and all other commercial damages or losses, even if such party *+* shall have been informed of the possibility of such damages. This *+* limitation of liability shall not apply to liability for death or *+* personal injury resulting from such party's negligence to the *+* extent applicable law prohibits such limitation. Some *+* jurisdictions do not allow the exclusion or limitation of *+* incidental or consequential damages, so this exclusion and *+* limitation may not apply to You. *+* *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++ This Source Code Form is subject to the terms of the Mozilla Public+ License, v. 2.0. If a copy of the MPL was not distributed with this+ file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-chat++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.3.0`+++## Description++A client library for the Google Hangouts Chat.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.+++## Licence++`gogol-chat` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ gen/Network/Google/Chat.hs view
@@ -0,0 +1,308 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module : Network.Google.Chat+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enables bots to fetch information and perform actions in Hangouts Chat.+--+-- /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference>+module Network.Google.Chat+ (+ -- * Service Configuration+ chatService++ -- * API Declaration+ , ChatAPI++ -- * Resources++ -- ** chat.spaces.get+ , module Network.Google.Resource.Chat.Spaces.Get++ -- ** chat.spaces.list+ , module Network.Google.Resource.Chat.Spaces.List++ -- ** chat.spaces.members.get+ , module Network.Google.Resource.Chat.Spaces.Members.Get++ -- ** chat.spaces.members.list+ , module Network.Google.Resource.Chat.Spaces.Members.List++ -- ** chat.spaces.messages.create+ , module Network.Google.Resource.Chat.Spaces.Messages.Create++ -- ** chat.spaces.messages.delete+ , module Network.Google.Resource.Chat.Spaces.Messages.Delete++ -- ** chat.spaces.messages.get+ , module Network.Google.Resource.Chat.Spaces.Messages.Get++ -- ** chat.spaces.messages.update+ , module Network.Google.Resource.Chat.Spaces.Messages.Update++ -- * Types++ -- ** Card+ , Card+ , card+ , cCardActions+ , cName+ , cHeader+ , cSections++ -- ** Space+ , Space+ , space+ , sName+ , sDisplayName+ , sType++ -- ** KeyValue+ , KeyValue+ , keyValue+ , kvOnClick+ , kvTopLabel+ , kvIcon+ , kvButton+ , kvContent+ , kvIconURL+ , kvContentMultiline+ , kvBottomLabel++ -- ** WidgetMarkup+ , WidgetMarkup+ , widgetMarkup+ , wmKeyValue+ , wmImage+ , wmButtons+ , wmTextParagraph++ -- ** OnClick+ , OnClick+ , onClick+ , ocAction+ , ocOpenLink++ -- ** Annotation+ , Annotation+ , annotation+ , aLength+ , aType+ , aUserMention+ , aStartIndex++ -- ** Image+ , Image+ , image+ , iOnClick+ , iAspectRatio+ , iImageURL++ -- ** KeyValueIcon+ , KeyValueIcon (..)++ -- ** ActionParameter+ , ActionParameter+ , actionParameter+ , apValue+ , apKey++ -- ** Membership+ , Membership+ , membership+ , mState+ , mName+ , mMember+ , mCreateTime++ -- ** ActionResponseType+ , ActionResponseType (..)++ -- ** Empty+ , Empty+ , empty++ -- ** DeprecatedEvent+ , DeprecatedEvent+ , deprecatedEvent+ , deSpace+ , deToken+ , deAction+ , deEventTime+ , deUser+ , deConfigCompleteRedirectURL+ , deType+ , deMessage+ , deThreadKey++ -- ** MembershipState+ , MembershipState (..)++ -- ** CardHeaderImageStyle+ , CardHeaderImageStyle (..)++ -- ** TextParagraph+ , TextParagraph+ , textParagraph+ , tpText++ -- ** Button+ , Button+ , button+ , bTextButton+ , bImageButton++ -- ** UserMentionMetadataType+ , UserMentionMetadataType (..)++ -- ** ListSpacesResponse+ , ListSpacesResponse+ , listSpacesResponse+ , lsrNextPageToken+ , lsrSpaces++ -- ** User+ , User+ , user+ , uName+ , uDisplayName+ , uType++ -- ** SpaceType+ , SpaceType (..)++ -- ** OpenLink+ , OpenLink+ , openLink+ , olURL++ -- ** AnnotationType+ , AnnotationType (..)++ -- ** ImageButtonIcon+ , ImageButtonIcon (..)++ -- ** CardAction+ , CardAction+ , cardAction+ , caOnClick+ , caActionLabel++ -- ** Xgafv+ , Xgafv (..)++ -- ** DeprecatedEventType+ , DeprecatedEventType (..)++ -- ** ActionResponse+ , ActionResponse+ , actionResponse+ , arURL+ , arType++ -- ** FormAction+ , FormAction+ , formAction+ , faActionMethodName+ , faParameters++ -- ** ListMembershipsResponse+ , ListMembershipsResponse+ , listMembershipsResponse+ , lmrNextPageToken+ , lmrMemberships++ -- ** Message+ , Message+ , message+ , mesAnnotations+ , mesSpace+ , mesText+ , mesSender+ , mesName+ , mesPreviewText+ , mesCards+ , mesActionResponse+ , mesArgumentText+ , mesThread+ , mesFallbackText+ , mesCreateTime++ -- ** CardHeader+ , CardHeader+ , cardHeader+ , chSubtitle+ , chImageURL+ , chTitle+ , chImageStyle++ -- ** TextButton+ , TextButton+ , textButton+ , tbOnClick+ , tbText++ -- ** Thread+ , Thread+ , thread+ , tName++ -- ** UserMentionMetadata+ , UserMentionMetadata+ , userMentionMetadata+ , ummUser+ , ummType++ -- ** ImageButton+ , ImageButton+ , imageButton+ , ibOnClick+ , ibIcon+ , ibName+ , ibIconURL++ -- ** Section+ , Section+ , section+ , sWidgets+ , sHeader++ -- ** UserType+ , UserType (..)+ ) where++import Network.Google.Chat.Types+import Network.Google.Prelude+import Network.Google.Resource.Chat.Spaces.Get+import Network.Google.Resource.Chat.Spaces.List+import Network.Google.Resource.Chat.Spaces.Members.Get+import Network.Google.Resource.Chat.Spaces.Members.List+import Network.Google.Resource.Chat.Spaces.Messages.Create+import Network.Google.Resource.Chat.Spaces.Messages.Delete+import Network.Google.Resource.Chat.Spaces.Messages.Get+import Network.Google.Resource.Chat.Spaces.Messages.Update++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Hangouts Chat API service.+type ChatAPI =+ SpacesMembersListResource :<|>+ SpacesMembersGetResource+ :<|> SpacesMessagesGetResource+ :<|> SpacesMessagesCreateResource+ :<|> SpacesMessagesDeleteResource+ :<|> SpacesMessagesUpdateResource+ :<|> SpacesListResource+ :<|> SpacesGetResource
+ gen/Network/Google/Chat/Types.hs view
@@ -0,0 +1,259 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Chat.Types+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Chat.Types+ (+ -- * Service Configuration+ chatService++ -- * Card+ , Card+ , card+ , cCardActions+ , cName+ , cHeader+ , cSections++ -- * Space+ , Space+ , space+ , sName+ , sDisplayName+ , sType++ -- * KeyValue+ , KeyValue+ , keyValue+ , kvOnClick+ , kvTopLabel+ , kvIcon+ , kvButton+ , kvContent+ , kvIconURL+ , kvContentMultiline+ , kvBottomLabel++ -- * WidgetMarkup+ , WidgetMarkup+ , widgetMarkup+ , wmKeyValue+ , wmImage+ , wmButtons+ , wmTextParagraph++ -- * OnClick+ , OnClick+ , onClick+ , ocAction+ , ocOpenLink++ -- * Annotation+ , Annotation+ , annotation+ , aLength+ , aType+ , aUserMention+ , aStartIndex++ -- * Image+ , Image+ , image+ , iOnClick+ , iAspectRatio+ , iImageURL++ -- * KeyValueIcon+ , KeyValueIcon (..)++ -- * ActionParameter+ , ActionParameter+ , actionParameter+ , apValue+ , apKey++ -- * Membership+ , Membership+ , membership+ , mState+ , mName+ , mMember+ , mCreateTime++ -- * ActionResponseType+ , ActionResponseType (..)++ -- * Empty+ , Empty+ , empty++ -- * DeprecatedEvent+ , DeprecatedEvent+ , deprecatedEvent+ , deSpace+ , deToken+ , deAction+ , deEventTime+ , deUser+ , deConfigCompleteRedirectURL+ , deType+ , deMessage+ , deThreadKey++ -- * MembershipState+ , MembershipState (..)++ -- * CardHeaderImageStyle+ , CardHeaderImageStyle (..)++ -- * TextParagraph+ , TextParagraph+ , textParagraph+ , tpText++ -- * Button+ , Button+ , button+ , bTextButton+ , bImageButton++ -- * UserMentionMetadataType+ , UserMentionMetadataType (..)++ -- * ListSpacesResponse+ , ListSpacesResponse+ , listSpacesResponse+ , lsrNextPageToken+ , lsrSpaces++ -- * User+ , User+ , user+ , uName+ , uDisplayName+ , uType++ -- * SpaceType+ , SpaceType (..)++ -- * OpenLink+ , OpenLink+ , openLink+ , olURL++ -- * AnnotationType+ , AnnotationType (..)++ -- * ImageButtonIcon+ , ImageButtonIcon (..)++ -- * CardAction+ , CardAction+ , cardAction+ , caOnClick+ , caActionLabel++ -- * Xgafv+ , Xgafv (..)++ -- * DeprecatedEventType+ , DeprecatedEventType (..)++ -- * ActionResponse+ , ActionResponse+ , actionResponse+ , arURL+ , arType++ -- * FormAction+ , FormAction+ , formAction+ , faActionMethodName+ , faParameters++ -- * ListMembershipsResponse+ , ListMembershipsResponse+ , listMembershipsResponse+ , lmrNextPageToken+ , lmrMemberships++ -- * Message+ , Message+ , message+ , mesAnnotations+ , mesSpace+ , mesText+ , mesSender+ , mesName+ , mesPreviewText+ , mesCards+ , mesActionResponse+ , mesArgumentText+ , mesThread+ , mesFallbackText+ , mesCreateTime++ -- * CardHeader+ , CardHeader+ , cardHeader+ , chSubtitle+ , chImageURL+ , chTitle+ , chImageStyle++ -- * TextButton+ , TextButton+ , textButton+ , tbOnClick+ , tbText++ -- * Thread+ , Thread+ , thread+ , tName++ -- * UserMentionMetadata+ , UserMentionMetadata+ , userMentionMetadata+ , ummUser+ , ummType++ -- * ImageButton+ , ImageButton+ , imageButton+ , ibOnClick+ , ibIcon+ , ibName+ , ibIconURL++ -- * Section+ , Section+ , section+ , sWidgets+ , sHeader++ -- * UserType+ , UserType (..)+ ) where++import Network.Google.Chat.Types.Product+import Network.Google.Chat.Types.Sum+import Network.Google.Prelude++-- | Default request referring to version 'v1' of the Hangouts Chat API. This contains the host and root path used as a starting point for constructing service requests.+chatService :: ServiceConfig+chatService+ = defaultService (ServiceId "chat:v1")+ "chat.googleapis.com"
+ gen/Network/Google/Chat/Types/Product.hs view
@@ -0,0 +1,1688 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}++{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Chat.Types.Product+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Chat.Types.Product where++import Network.Google.Chat.Types.Sum+import Network.Google.Prelude++-- | A card is a UI element that can contain UI widgets such as texts,+-- images.+--+-- /See:/ 'card' smart constructor.+data Card = Card'+ { _cCardActions :: !(Maybe [CardAction])+ , _cName :: !(Maybe Text)+ , _cHeader :: !(Maybe CardHeader)+ , _cSections :: !(Maybe [Section])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Card' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cCardActions'+--+-- * 'cName'+--+-- * 'cHeader'+--+-- * 'cSections'+card+ :: Card+card =+ Card'+ { _cCardActions = Nothing+ , _cName = Nothing+ , _cHeader = Nothing+ , _cSections = Nothing+ }++-- | The actions of this card.+cCardActions :: Lens' Card [CardAction]+cCardActions+ = lens _cCardActions (\ s a -> s{_cCardActions = a})+ . _Default+ . _Coerce++-- | Name of the card.+cName :: Lens' Card (Maybe Text)+cName = lens _cName (\ s a -> s{_cName = a})++-- | The header of the card. A header usually contains a title and an image.+cHeader :: Lens' Card (Maybe CardHeader)+cHeader = lens _cHeader (\ s a -> s{_cHeader = a})++-- | Sections are separated by a line divider.+cSections :: Lens' Card [Section]+cSections+ = lens _cSections (\ s a -> s{_cSections = a}) .+ _Default+ . _Coerce++instance FromJSON Card where+ parseJSON+ = withObject "Card"+ (\ o ->+ Card' <$>+ (o .:? "cardActions" .!= mempty) <*> (o .:? "name")+ <*> (o .:? "header")+ <*> (o .:? "sections" .!= mempty))++instance ToJSON Card where+ toJSON Card'{..}+ = object+ (catMaybes+ [("cardActions" .=) <$> _cCardActions,+ ("name" .=) <$> _cName, ("header" .=) <$> _cHeader,+ ("sections" .=) <$> _cSections])++-- | A room or DM in Hangouts Chat.+--+-- /See:/ 'space' smart constructor.+data Space = Space'+ { _sName :: !(Maybe Text)+ , _sDisplayName :: !(Maybe Text)+ , _sType :: !(Maybe SpaceType)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Space' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sName'+--+-- * 'sDisplayName'+--+-- * 'sType'+space+ :: Space+space =+ Space'+ { _sName = Nothing+ , _sDisplayName = Nothing+ , _sType = Nothing+ }++-- | Resource name of the space, in the form \"spaces\/*\". Example:+-- spaces\/AAAAMpdlehYs+sName :: Lens' Space (Maybe Text)+sName = lens _sName (\ s a -> s{_sName = a})++-- | Output only. The display name (only if the space is a room).+sDisplayName :: Lens' Space (Maybe Text)+sDisplayName+ = lens _sDisplayName (\ s a -> s{_sDisplayName = a})++-- | Output only. The type of a space.+sType :: Lens' Space (Maybe SpaceType)+sType = lens _sType (\ s a -> s{_sType = a})++instance FromJSON Space where+ parseJSON+ = withObject "Space"+ (\ o ->+ Space' <$>+ (o .:? "name") <*> (o .:? "displayName") <*>+ (o .:? "type"))++instance ToJSON Space where+ toJSON Space'{..}+ = object+ (catMaybes+ [("name" .=) <$> _sName,+ ("displayName" .=) <$> _sDisplayName,+ ("type" .=) <$> _sType])++-- | A UI element contains a key (label) and a value (content). And this+-- element may also contain some actions such as onclick button.+--+-- /See:/ 'keyValue' smart constructor.+data KeyValue = KeyValue'+ { _kvOnClick :: !(Maybe OnClick)+ , _kvTopLabel :: !(Maybe Text)+ , _kvIcon :: !(Maybe KeyValueIcon)+ , _kvButton :: !(Maybe Button)+ , _kvContent :: !(Maybe Text)+ , _kvIconURL :: !(Maybe Text)+ , _kvContentMultiline :: !(Maybe Bool)+ , _kvBottomLabel :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'KeyValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kvOnClick'+--+-- * 'kvTopLabel'+--+-- * 'kvIcon'+--+-- * 'kvButton'+--+-- * 'kvContent'+--+-- * 'kvIconURL'+--+-- * 'kvContentMultiline'+--+-- * 'kvBottomLabel'+keyValue+ :: KeyValue+keyValue =+ KeyValue'+ { _kvOnClick = Nothing+ , _kvTopLabel = Nothing+ , _kvIcon = Nothing+ , _kvButton = Nothing+ , _kvContent = Nothing+ , _kvIconURL = Nothing+ , _kvContentMultiline = Nothing+ , _kvBottomLabel = Nothing+ }++-- | The onclick action. Only the top label, bottom label and content region+-- are clickable.+kvOnClick :: Lens' KeyValue (Maybe OnClick)+kvOnClick+ = lens _kvOnClick (\ s a -> s{_kvOnClick = a})++-- | The text of the top label. Formatted text supported.+kvTopLabel :: Lens' KeyValue (Maybe Text)+kvTopLabel+ = lens _kvTopLabel (\ s a -> s{_kvTopLabel = a})++-- | An enum value that will be replaced by the Chat API with the+-- corresponding icon image.+kvIcon :: Lens' KeyValue (Maybe KeyValueIcon)+kvIcon = lens _kvIcon (\ s a -> s{_kvIcon = a})++-- | A button that can be clicked to trigger an action.+kvButton :: Lens' KeyValue (Maybe Button)+kvButton = lens _kvButton (\ s a -> s{_kvButton = a})++-- | The text of the content. Formatted text supported and always required.+kvContent :: Lens' KeyValue (Maybe Text)+kvContent+ = lens _kvContent (\ s a -> s{_kvContent = a})++-- | The icon specified by a URL.+kvIconURL :: Lens' KeyValue (Maybe Text)+kvIconURL+ = lens _kvIconURL (\ s a -> s{_kvIconURL = a})++-- | If the content should be multiline.+kvContentMultiline :: Lens' KeyValue (Maybe Bool)+kvContentMultiline+ = lens _kvContentMultiline+ (\ s a -> s{_kvContentMultiline = a})++-- | The text of the bottom label. Formatted text supported.+kvBottomLabel :: Lens' KeyValue (Maybe Text)+kvBottomLabel+ = lens _kvBottomLabel+ (\ s a -> s{_kvBottomLabel = a})++instance FromJSON KeyValue where+ parseJSON+ = withObject "KeyValue"+ (\ o ->+ KeyValue' <$>+ (o .:? "onClick") <*> (o .:? "topLabel") <*>+ (o .:? "icon")+ <*> (o .:? "button")+ <*> (o .:? "content")+ <*> (o .:? "iconUrl")+ <*> (o .:? "contentMultiline")+ <*> (o .:? "bottomLabel"))++instance ToJSON KeyValue where+ toJSON KeyValue'{..}+ = object+ (catMaybes+ [("onClick" .=) <$> _kvOnClick,+ ("topLabel" .=) <$> _kvTopLabel,+ ("icon" .=) <$> _kvIcon, ("button" .=) <$> _kvButton,+ ("content" .=) <$> _kvContent,+ ("iconUrl" .=) <$> _kvIconURL,+ ("contentMultiline" .=) <$> _kvContentMultiline,+ ("bottomLabel" .=) <$> _kvBottomLabel])++-- | A widget is a UI element that presents texts, images, etc.+--+-- /See:/ 'widgetMarkup' smart constructor.+data WidgetMarkup = WidgetMarkup'+ { _wmKeyValue :: !(Maybe KeyValue)+ , _wmImage :: !(Maybe Image)+ , _wmButtons :: !(Maybe [Button])+ , _wmTextParagraph :: !(Maybe TextParagraph)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'WidgetMarkup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wmKeyValue'+--+-- * 'wmImage'+--+-- * 'wmButtons'+--+-- * 'wmTextParagraph'+widgetMarkup+ :: WidgetMarkup+widgetMarkup =+ WidgetMarkup'+ { _wmKeyValue = Nothing+ , _wmImage = Nothing+ , _wmButtons = Nothing+ , _wmTextParagraph = Nothing+ }++-- | Display a key value item in this widget.+wmKeyValue :: Lens' WidgetMarkup (Maybe KeyValue)+wmKeyValue+ = lens _wmKeyValue (\ s a -> s{_wmKeyValue = a})++-- | Display an image in this widget.+wmImage :: Lens' WidgetMarkup (Maybe Image)+wmImage = lens _wmImage (\ s a -> s{_wmImage = a})++-- | A list of buttons. Buttons is also oneof data and only one of these+-- fields should be set.+wmButtons :: Lens' WidgetMarkup [Button]+wmButtons+ = lens _wmButtons (\ s a -> s{_wmButtons = a}) .+ _Default+ . _Coerce++-- | Display a text paragraph in this widget.+wmTextParagraph :: Lens' WidgetMarkup (Maybe TextParagraph)+wmTextParagraph+ = lens _wmTextParagraph+ (\ s a -> s{_wmTextParagraph = a})++instance FromJSON WidgetMarkup where+ parseJSON+ = withObject "WidgetMarkup"+ (\ o ->+ WidgetMarkup' <$>+ (o .:? "keyValue") <*> (o .:? "image") <*>+ (o .:? "buttons" .!= mempty)+ <*> (o .:? "textParagraph"))++instance ToJSON WidgetMarkup where+ toJSON WidgetMarkup'{..}+ = object+ (catMaybes+ [("keyValue" .=) <$> _wmKeyValue,+ ("image" .=) <$> _wmImage,+ ("buttons" .=) <$> _wmButtons,+ ("textParagraph" .=) <$> _wmTextParagraph])++-- | An onclick action (e.g. open a link).+--+-- /See:/ 'onClick' smart constructor.+data OnClick = OnClick'+ { _ocAction :: !(Maybe FormAction)+ , _ocOpenLink :: !(Maybe OpenLink)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OnClick' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ocAction'+--+-- * 'ocOpenLink'+onClick+ :: OnClick+onClick =+ OnClick'+ { _ocAction = Nothing+ , _ocOpenLink = Nothing+ }++-- | A form action will be trigger by this onclick if specified.+ocAction :: Lens' OnClick (Maybe FormAction)+ocAction = lens _ocAction (\ s a -> s{_ocAction = a})++-- | This onclick triggers an open link action if specified.+ocOpenLink :: Lens' OnClick (Maybe OpenLink)+ocOpenLink+ = lens _ocOpenLink (\ s a -> s{_ocOpenLink = a})++instance FromJSON OnClick where+ parseJSON+ = withObject "OnClick"+ (\ o ->+ OnClick' <$> (o .:? "action") <*> (o .:? "openLink"))++instance ToJSON OnClick where+ toJSON OnClick'{..}+ = object+ (catMaybes+ [("action" .=) <$> _ocAction,+ ("openLink" .=) <$> _ocOpenLink])++-- | Annotations associated with the plain-text body of the message. Example+-- plain-text message body: \`\`\` Hello \'FooBot how are you!\" \`\`\` The+-- corresponding annotations metadata: \`\`\` \"annotations\":[{+-- \"type\":\"USER_MENTION\", \"startIndex\":6, \"length\":7,+-- \"userMention\": { \"user\": {+-- \"name\":\"users\/107946847022116401880\", \"displayName\":\"FooBot\",+-- \"avatarUrl\":\"https:\/\/goo.gl\/aeDtrS\", \"type\":\"BOT\" },+-- \"type\":\"MENTION\" } }] \`\`\`+--+-- /See:/ 'annotation' smart constructor.+data Annotation = Annotation'+ { _aLength :: !(Maybe (Textual Int32))+ , _aType :: !(Maybe AnnotationType)+ , _aUserMention :: !(Maybe UserMentionMetadata)+ , _aStartIndex :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Annotation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aLength'+--+-- * 'aType'+--+-- * 'aUserMention'+--+-- * 'aStartIndex'+annotation+ :: Annotation+annotation =+ Annotation'+ { _aLength = Nothing+ , _aType = Nothing+ , _aUserMention = Nothing+ , _aStartIndex = Nothing+ }++-- | Length of the substring in the plain-text message body this annotation+-- corresponds to.+aLength :: Lens' Annotation (Maybe Int32)+aLength+ = lens _aLength (\ s a -> s{_aLength = a}) .+ mapping _Coerce++-- | The type of this annotation.+aType :: Lens' Annotation (Maybe AnnotationType)+aType = lens _aType (\ s a -> s{_aType = a})++-- | The metadata of user mention.+aUserMention :: Lens' Annotation (Maybe UserMentionMetadata)+aUserMention+ = lens _aUserMention (\ s a -> s{_aUserMention = a})++-- | Start index (0-based, inclusive) in the plain-text message body this+-- annotation corresponds to.+aStartIndex :: Lens' Annotation (Maybe Int32)+aStartIndex+ = lens _aStartIndex (\ s a -> s{_aStartIndex = a}) .+ mapping _Coerce++instance FromJSON Annotation where+ parseJSON+ = withObject "Annotation"+ (\ o ->+ Annotation' <$>+ (o .:? "length") <*> (o .:? "type") <*>+ (o .:? "userMention")+ <*> (o .:? "startIndex"))++instance ToJSON Annotation where+ toJSON Annotation'{..}+ = object+ (catMaybes+ [("length" .=) <$> _aLength, ("type" .=) <$> _aType,+ ("userMention" .=) <$> _aUserMention,+ ("startIndex" .=) <$> _aStartIndex])++-- | An image that is specified by a URL and can have an onclick action.+--+-- /See:/ 'image' smart constructor.+data Image = Image'+ { _iOnClick :: !(Maybe OnClick)+ , _iAspectRatio :: !(Maybe (Textual Double))+ , _iImageURL :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Image' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iOnClick'+--+-- * 'iAspectRatio'+--+-- * 'iImageURL'+image+ :: Image+image =+ Image'+ { _iOnClick = Nothing+ , _iAspectRatio = Nothing+ , _iImageURL = Nothing+ }++-- | The onclick action.+iOnClick :: Lens' Image (Maybe OnClick)+iOnClick = lens _iOnClick (\ s a -> s{_iOnClick = a})++-- | The aspect ratio of this image (width\/height).+iAspectRatio :: Lens' Image (Maybe Double)+iAspectRatio+ = lens _iAspectRatio (\ s a -> s{_iAspectRatio = a})+ . mapping _Coerce++-- | The URL of the image.+iImageURL :: Lens' Image (Maybe Text)+iImageURL+ = lens _iImageURL (\ s a -> s{_iImageURL = a})++instance FromJSON Image where+ parseJSON+ = withObject "Image"+ (\ o ->+ Image' <$>+ (o .:? "onClick") <*> (o .:? "aspectRatio") <*>+ (o .:? "imageUrl"))++instance ToJSON Image where+ toJSON Image'{..}+ = object+ (catMaybes+ [("onClick" .=) <$> _iOnClick,+ ("aspectRatio" .=) <$> _iAspectRatio,+ ("imageUrl" .=) <$> _iImageURL])++-- | List of string parameters to supply when the action method is invoked.+-- For example, consider three snooze buttons: snooze now, snooze 1 day,+-- snooze next week. You might use action method = snooze(), passing the+-- snooze type and snooze time in the list of string parameters.+--+-- /See:/ 'actionParameter' smart constructor.+data ActionParameter = ActionParameter'+ { _apValue :: !(Maybe Text)+ , _apKey :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ActionParameter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'apValue'+--+-- * 'apKey'+actionParameter+ :: ActionParameter+actionParameter =+ ActionParameter'+ { _apValue = Nothing+ , _apKey = Nothing+ }++-- | The value of the parameter.+apValue :: Lens' ActionParameter (Maybe Text)+apValue = lens _apValue (\ s a -> s{_apValue = a})++-- | The name of the parameter for the action script.+apKey :: Lens' ActionParameter (Maybe Text)+apKey = lens _apKey (\ s a -> s{_apKey = a})++instance FromJSON ActionParameter where+ parseJSON+ = withObject "ActionParameter"+ (\ o ->+ ActionParameter' <$>+ (o .:? "value") <*> (o .:? "key"))++instance ToJSON ActionParameter where+ toJSON ActionParameter'{..}+ = object+ (catMaybes+ [("value" .=) <$> _apValue, ("key" .=) <$> _apKey])++-- | Represents a membership relation in Hangouts Chat.+--+-- /See:/ 'membership' smart constructor.+data Membership = Membership'+ { _mState :: !(Maybe MembershipState)+ , _mName :: !(Maybe Text)+ , _mMember :: !(Maybe User)+ , _mCreateTime :: !(Maybe DateTime')+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Membership' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mState'+--+-- * 'mName'+--+-- * 'mMember'+--+-- * 'mCreateTime'+membership+ :: Membership+membership =+ Membership'+ { _mState = Nothing+ , _mName = Nothing+ , _mMember = Nothing+ , _mCreateTime = Nothing+ }++-- | State of the membership.+mState :: Lens' Membership (Maybe MembershipState)+mState = lens _mState (\ s a -> s{_mState = a})++-- | Resource name of the membership, in the form \"spaces\/*\/members\/*\".+-- Example: spaces\/AAAAMpdlehY\/members\/105115627578887013105+mName :: Lens' Membership (Maybe Text)+mName = lens _mName (\ s a -> s{_mName = a})++-- | Member details.+mMember :: Lens' Membership (Maybe User)+mMember = lens _mMember (\ s a -> s{_mMember = a})++-- | The creation time of the membership a.k.a the time at which the member+-- joined the space, if applicable.+mCreateTime :: Lens' Membership (Maybe UTCTime)+mCreateTime+ = lens _mCreateTime (\ s a -> s{_mCreateTime = a}) .+ mapping _DateTime++instance FromJSON Membership where+ parseJSON+ = withObject "Membership"+ (\ o ->+ Membership' <$>+ (o .:? "state") <*> (o .:? "name") <*>+ (o .:? "member")+ <*> (o .:? "createTime"))++instance ToJSON Membership where+ toJSON Membership'{..}+ = object+ (catMaybes+ [("state" .=) <$> _mState, ("name" .=) <$> _mName,+ ("member" .=) <$> _mMember,+ ("createTime" .=) <$> _mCreateTime])++-- | A generic empty message that you can re-use to avoid defining duplicated+-- empty messages in your APIs. A typical example is to use it as the+-- request or the response type of an API method. For instance: service Foo+-- { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The+-- JSON representation for \`Empty\` is empty JSON object \`{}\`.+--+-- /See:/ 'empty' smart constructor.+data Empty =+ Empty'+ deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Empty' with the minimum fields required to make a request.+--+empty+ :: Empty+empty = Empty'++instance FromJSON Empty where+ parseJSON = withObject "Empty" (\ o -> pure Empty')++instance ToJSON Empty where+ toJSON = const emptyObject++-- | Hangouts Chat events.+--+-- /See:/ 'deprecatedEvent' smart constructor.+data DeprecatedEvent = DeprecatedEvent'+ { _deSpace :: !(Maybe Space)+ , _deToken :: !(Maybe Text)+ , _deAction :: !(Maybe FormAction)+ , _deEventTime :: !(Maybe DateTime')+ , _deUser :: !(Maybe User)+ , _deConfigCompleteRedirectURL :: !(Maybe Text)+ , _deType :: !(Maybe DeprecatedEventType)+ , _deMessage :: !(Maybe Message)+ , _deThreadKey :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeprecatedEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'deSpace'+--+-- * 'deToken'+--+-- * 'deAction'+--+-- * 'deEventTime'+--+-- * 'deUser'+--+-- * 'deConfigCompleteRedirectURL'+--+-- * 'deType'+--+-- * 'deMessage'+--+-- * 'deThreadKey'+deprecatedEvent+ :: DeprecatedEvent+deprecatedEvent =+ DeprecatedEvent'+ { _deSpace = Nothing+ , _deToken = Nothing+ , _deAction = Nothing+ , _deEventTime = Nothing+ , _deUser = Nothing+ , _deConfigCompleteRedirectURL = Nothing+ , _deType = Nothing+ , _deMessage = Nothing+ , _deThreadKey = Nothing+ }++-- | The room or DM in which the event occurred.+deSpace :: Lens' DeprecatedEvent (Maybe Space)+deSpace = lens _deSpace (\ s a -> s{_deSpace = a})++-- | A secret value that bots can use to verify if a request is from Google.+-- The token is randomly generated by Google, remains static, and can be+-- obtained from the Hangouts Chat API configuration page in the Cloud+-- Console. Developers can revoke\/regenerate it if needed from the same+-- page.+deToken :: Lens' DeprecatedEvent (Maybe Text)+deToken = lens _deToken (\ s a -> s{_deToken = a})++-- | The form action data associated with an interactive card that was+-- clicked. Only populated for CARD_CLICKED events. See the [Interactive+-- Cards guide](\/hangouts\/chat\/how-tos\/cards-onclick) for more+-- information.+deAction :: Lens' DeprecatedEvent (Maybe FormAction)+deAction = lens _deAction (\ s a -> s{_deAction = a})++-- | The timestamp indicating when the event was dispatched.+deEventTime :: Lens' DeprecatedEvent (Maybe UTCTime)+deEventTime+ = lens _deEventTime (\ s a -> s{_deEventTime = a}) .+ mapping _DateTime++-- | The user that triggered the event.+deUser :: Lens' DeprecatedEvent (Maybe User)+deUser = lens _deUser (\ s a -> s{_deUser = a})++-- | The URL the bot should redirect the user to after they have completed an+-- authorization or configuration flow outside of Hangouts Chat. See the+-- [Authorizing access to 3p services+-- guide](\/hangouts\/chat\/how-tos\/auth-3p) for more information.+deConfigCompleteRedirectURL :: Lens' DeprecatedEvent (Maybe Text)+deConfigCompleteRedirectURL+ = lens _deConfigCompleteRedirectURL+ (\ s a -> s{_deConfigCompleteRedirectURL = a})++-- | The type of the event.+deType :: Lens' DeprecatedEvent (Maybe DeprecatedEventType)+deType = lens _deType (\ s a -> s{_deType = a})++-- | The message that triggered the event, if applicable.+deMessage :: Lens' DeprecatedEvent (Maybe Message)+deMessage+ = lens _deMessage (\ s a -> s{_deMessage = a})++-- | The bot-defined key for the thread related to the event. See the+-- thread_key field of the \`spaces.message.create\` request for more+-- information.+deThreadKey :: Lens' DeprecatedEvent (Maybe Text)+deThreadKey+ = lens _deThreadKey (\ s a -> s{_deThreadKey = a})++instance FromJSON DeprecatedEvent where+ parseJSON+ = withObject "DeprecatedEvent"+ (\ o ->+ DeprecatedEvent' <$>+ (o .:? "space") <*> (o .:? "token") <*>+ (o .:? "action")+ <*> (o .:? "eventTime")+ <*> (o .:? "user")+ <*> (o .:? "configCompleteRedirectUrl")+ <*> (o .:? "type")+ <*> (o .:? "message")+ <*> (o .:? "threadKey"))++instance ToJSON DeprecatedEvent where+ toJSON DeprecatedEvent'{..}+ = object+ (catMaybes+ [("space" .=) <$> _deSpace,+ ("token" .=) <$> _deToken,+ ("action" .=) <$> _deAction,+ ("eventTime" .=) <$> _deEventTime,+ ("user" .=) <$> _deUser,+ ("configCompleteRedirectUrl" .=) <$>+ _deConfigCompleteRedirectURL,+ ("type" .=) <$> _deType,+ ("message" .=) <$> _deMessage,+ ("threadKey" .=) <$> _deThreadKey])++-- | A paragraph of text. Formatted text supported.+--+-- /See:/ 'textParagraph' smart constructor.+newtype TextParagraph = TextParagraph'+ { _tpText :: Maybe Text+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TextParagraph' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpText'+textParagraph+ :: TextParagraph+textParagraph =+ TextParagraph'+ { _tpText = Nothing+ }++tpText :: Lens' TextParagraph (Maybe Text)+tpText = lens _tpText (\ s a -> s{_tpText = a})++instance FromJSON TextParagraph where+ parseJSON+ = withObject "TextParagraph"+ (\ o -> TextParagraph' <$> (o .:? "text"))++instance ToJSON TextParagraph where+ toJSON TextParagraph'{..}+ = object (catMaybes [("text" .=) <$> _tpText])++-- | A button. Can be a text button or an image button.+--+-- /See:/ 'button' smart constructor.+data Button = Button'+ { _bTextButton :: !(Maybe TextButton)+ , _bImageButton :: !(Maybe ImageButton)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Button' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bTextButton'+--+-- * 'bImageButton'+button+ :: Button+button =+ Button'+ { _bTextButton = Nothing+ , _bImageButton = Nothing+ }++-- | A button with text and onclick action.+bTextButton :: Lens' Button (Maybe TextButton)+bTextButton+ = lens _bTextButton (\ s a -> s{_bTextButton = a})++-- | A button with image and onclick action.+bImageButton :: Lens' Button (Maybe ImageButton)+bImageButton+ = lens _bImageButton (\ s a -> s{_bImageButton = a})++instance FromJSON Button where+ parseJSON+ = withObject "Button"+ (\ o ->+ Button' <$>+ (o .:? "textButton") <*> (o .:? "imageButton"))++instance ToJSON Button where+ toJSON Button'{..}+ = object+ (catMaybes+ [("textButton" .=) <$> _bTextButton,+ ("imageButton" .=) <$> _bImageButton])++--+-- /See:/ 'listSpacesResponse' smart constructor.+data ListSpacesResponse = ListSpacesResponse'+ { _lsrNextPageToken :: !(Maybe Text)+ , _lsrSpaces :: !(Maybe [Space])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListSpacesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsrNextPageToken'+--+-- * 'lsrSpaces'+listSpacesResponse+ :: ListSpacesResponse+listSpacesResponse =+ ListSpacesResponse'+ { _lsrNextPageToken = Nothing+ , _lsrSpaces = Nothing+ }++-- | Continuation token to retrieve the next page of results. It will be+-- empty for the last page of results. Tokens expire in an hour. An error+-- is thrown if an expired token is passed.+lsrNextPageToken :: Lens' ListSpacesResponse (Maybe Text)+lsrNextPageToken+ = lens _lsrNextPageToken+ (\ s a -> s{_lsrNextPageToken = a})++-- | List of spaces in the requested (or first) page.+lsrSpaces :: Lens' ListSpacesResponse [Space]+lsrSpaces+ = lens _lsrSpaces (\ s a -> s{_lsrSpaces = a}) .+ _Default+ . _Coerce++instance FromJSON ListSpacesResponse where+ parseJSON+ = withObject "ListSpacesResponse"+ (\ o ->+ ListSpacesResponse' <$>+ (o .:? "nextPageToken") <*>+ (o .:? "spaces" .!= mempty))++instance ToJSON ListSpacesResponse where+ toJSON ListSpacesResponse'{..}+ = object+ (catMaybes+ [("nextPageToken" .=) <$> _lsrNextPageToken,+ ("spaces" .=) <$> _lsrSpaces])++-- | A user in Hangouts Chat.+--+-- /See:/ 'user' smart constructor.+data User = User'+ { _uName :: !(Maybe Text)+ , _uDisplayName :: !(Maybe Text)+ , _uType :: !(Maybe UserType)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'User' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uName'+--+-- * 'uDisplayName'+--+-- * 'uType'+user+ :: User+user =+ User'+ { _uName = Nothing+ , _uDisplayName = Nothing+ , _uType = Nothing+ }++-- | Resource name, in the format \"users\/*\".+uName :: Lens' User (Maybe Text)+uName = lens _uName (\ s a -> s{_uName = a})++-- | The user\'s display name.+uDisplayName :: Lens' User (Maybe Text)+uDisplayName+ = lens _uDisplayName (\ s a -> s{_uDisplayName = a})++-- | User type.+uType :: Lens' User (Maybe UserType)+uType = lens _uType (\ s a -> s{_uType = a})++instance FromJSON User where+ parseJSON+ = withObject "User"+ (\ o ->+ User' <$>+ (o .:? "name") <*> (o .:? "displayName") <*>+ (o .:? "type"))++instance ToJSON User where+ toJSON User'{..}+ = object+ (catMaybes+ [("name" .=) <$> _uName,+ ("displayName" .=) <$> _uDisplayName,+ ("type" .=) <$> _uType])++-- | A link that opens a new window.+--+-- /See:/ 'openLink' smart constructor.+newtype OpenLink = OpenLink'+ { _olURL :: Maybe Text+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OpenLink' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'olURL'+openLink+ :: OpenLink+openLink =+ OpenLink'+ { _olURL = Nothing+ }++-- | The URL to open.+olURL :: Lens' OpenLink (Maybe Text)+olURL = lens _olURL (\ s a -> s{_olURL = a})++instance FromJSON OpenLink where+ parseJSON+ = withObject "OpenLink"+ (\ o -> OpenLink' <$> (o .:? "url"))++instance ToJSON OpenLink where+ toJSON OpenLink'{..}+ = object (catMaybes [("url" .=) <$> _olURL])++-- | A card action is the action associated with the card. For an invoice+-- card, a typical action would be: delete invoice, email invoice or open+-- the invoice in browser.+--+-- /See:/ 'cardAction' smart constructor.+data CardAction = CardAction'+ { _caOnClick :: !(Maybe OnClick)+ , _caActionLabel :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CardAction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'caOnClick'+--+-- * 'caActionLabel'+cardAction+ :: CardAction+cardAction =+ CardAction'+ { _caOnClick = Nothing+ , _caActionLabel = Nothing+ }++-- | The onclick action for this action item.+caOnClick :: Lens' CardAction (Maybe OnClick)+caOnClick+ = lens _caOnClick (\ s a -> s{_caOnClick = a})++-- | The label used to be displayed in the action menu item.+caActionLabel :: Lens' CardAction (Maybe Text)+caActionLabel+ = lens _caActionLabel+ (\ s a -> s{_caActionLabel = a})++instance FromJSON CardAction where+ parseJSON+ = withObject "CardAction"+ (\ o ->+ CardAction' <$>+ (o .:? "onClick") <*> (o .:? "actionLabel"))++instance ToJSON CardAction where+ toJSON CardAction'{..}+ = object+ (catMaybes+ [("onClick" .=) <$> _caOnClick,+ ("actionLabel" .=) <$> _caActionLabel])++-- | Parameters that a bot can use to configure how it\'s response is posted.+--+-- /See:/ 'actionResponse' smart constructor.+data ActionResponse = ActionResponse'+ { _arURL :: !(Maybe Text)+ , _arType :: !(Maybe ActionResponseType)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ActionResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'arURL'+--+-- * 'arType'+actionResponse+ :: ActionResponse+actionResponse =+ ActionResponse'+ { _arURL = Nothing+ , _arType = Nothing+ }++-- | URL for users to auth or config. (Only for REQUEST_CONFIG response+-- types.)+arURL :: Lens' ActionResponse (Maybe Text)+arURL = lens _arURL (\ s a -> s{_arURL = a})++-- | The type of bot response.+arType :: Lens' ActionResponse (Maybe ActionResponseType)+arType = lens _arType (\ s a -> s{_arType = a})++instance FromJSON ActionResponse where+ parseJSON+ = withObject "ActionResponse"+ (\ o ->+ ActionResponse' <$> (o .:? "url") <*> (o .:? "type"))++instance ToJSON ActionResponse where+ toJSON ActionResponse'{..}+ = object+ (catMaybes+ [("url" .=) <$> _arURL, ("type" .=) <$> _arType])++-- | A form action describes the behavior when the form is submitted. For+-- example, an Apps Script can be invoked to handle the form.+--+-- /See:/ 'formAction' smart constructor.+data FormAction = FormAction'+ { _faActionMethodName :: !(Maybe Text)+ , _faParameters :: !(Maybe [ActionParameter])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FormAction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'faActionMethodName'+--+-- * 'faParameters'+formAction+ :: FormAction+formAction =+ FormAction'+ { _faActionMethodName = Nothing+ , _faParameters = Nothing+ }++-- | Apps Script function to invoke when the containing element is+-- clicked\/activated.+faActionMethodName :: Lens' FormAction (Maybe Text)+faActionMethodName+ = lens _faActionMethodName+ (\ s a -> s{_faActionMethodName = a})++-- | List of action parameters.+faParameters :: Lens' FormAction [ActionParameter]+faParameters+ = lens _faParameters (\ s a -> s{_faParameters = a})+ . _Default+ . _Coerce++instance FromJSON FormAction where+ parseJSON+ = withObject "FormAction"+ (\ o ->+ FormAction' <$>+ (o .:? "actionMethodName") <*>+ (o .:? "parameters" .!= mempty))++instance ToJSON FormAction where+ toJSON FormAction'{..}+ = object+ (catMaybes+ [("actionMethodName" .=) <$> _faActionMethodName,+ ("parameters" .=) <$> _faParameters])++--+-- /See:/ 'listMembershipsResponse' smart constructor.+data ListMembershipsResponse = ListMembershipsResponse'+ { _lmrNextPageToken :: !(Maybe Text)+ , _lmrMemberships :: !(Maybe [Membership])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListMembershipsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lmrNextPageToken'+--+-- * 'lmrMemberships'+listMembershipsResponse+ :: ListMembershipsResponse+listMembershipsResponse =+ ListMembershipsResponse'+ { _lmrNextPageToken = Nothing+ , _lmrMemberships = Nothing+ }++-- | Continuation token to retrieve the next page of results. It will be+-- empty for the last page of results.+lmrNextPageToken :: Lens' ListMembershipsResponse (Maybe Text)+lmrNextPageToken+ = lens _lmrNextPageToken+ (\ s a -> s{_lmrNextPageToken = a})++-- | List of memberships in the requested (or first) page.+lmrMemberships :: Lens' ListMembershipsResponse [Membership]+lmrMemberships+ = lens _lmrMemberships+ (\ s a -> s{_lmrMemberships = a})+ . _Default+ . _Coerce++instance FromJSON ListMembershipsResponse where+ parseJSON+ = withObject "ListMembershipsResponse"+ (\ o ->+ ListMembershipsResponse' <$>+ (o .:? "nextPageToken") <*>+ (o .:? "memberships" .!= mempty))++instance ToJSON ListMembershipsResponse where+ toJSON ListMembershipsResponse'{..}+ = object+ (catMaybes+ [("nextPageToken" .=) <$> _lmrNextPageToken,+ ("memberships" .=) <$> _lmrMemberships])++-- | A message in Hangouts Chat.+--+-- /See:/ 'message' smart constructor.+data Message = Message'+ { _mesAnnotations :: !(Maybe [Annotation])+ , _mesSpace :: !(Maybe Space)+ , _mesText :: !(Maybe Text)+ , _mesSender :: !(Maybe User)+ , _mesName :: !(Maybe Text)+ , _mesPreviewText :: !(Maybe Text)+ , _mesCards :: !(Maybe [Card])+ , _mesActionResponse :: !(Maybe ActionResponse)+ , _mesArgumentText :: !(Maybe Text)+ , _mesThread :: !(Maybe Thread)+ , _mesFallbackText :: !(Maybe Text)+ , _mesCreateTime :: !(Maybe DateTime')+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Message' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mesAnnotations'+--+-- * 'mesSpace'+--+-- * 'mesText'+--+-- * 'mesSender'+--+-- * 'mesName'+--+-- * 'mesPreviewText'+--+-- * 'mesCards'+--+-- * 'mesActionResponse'+--+-- * 'mesArgumentText'+--+-- * 'mesThread'+--+-- * 'mesFallbackText'+--+-- * 'mesCreateTime'+message+ :: Message+message =+ Message'+ { _mesAnnotations = Nothing+ , _mesSpace = Nothing+ , _mesText = Nothing+ , _mesSender = Nothing+ , _mesName = Nothing+ , _mesPreviewText = Nothing+ , _mesCards = Nothing+ , _mesActionResponse = Nothing+ , _mesArgumentText = Nothing+ , _mesThread = Nothing+ , _mesFallbackText = Nothing+ , _mesCreateTime = Nothing+ }++-- | Output only. Annotations associated with the text in this message.+mesAnnotations :: Lens' Message [Annotation]+mesAnnotations+ = lens _mesAnnotations+ (\ s a -> s{_mesAnnotations = a})+ . _Default+ . _Coerce++-- | The space the message belongs to.+mesSpace :: Lens' Message (Maybe Space)+mesSpace = lens _mesSpace (\ s a -> s{_mesSpace = a})++-- | Plain-text body of the message.+mesText :: Lens' Message (Maybe Text)+mesText = lens _mesText (\ s a -> s{_mesText = a})++-- | The user who created the message.+mesSender :: Lens' Message (Maybe User)+mesSender+ = lens _mesSender (\ s a -> s{_mesSender = a})++-- | Resource name, in the form \"spaces\/*\/messages\/*\". Example:+-- spaces\/AAAAMpdlehY\/messages\/UMxbHmzDlr4.UMxbHmzDlr4+mesName :: Lens' Message (Maybe Text)+mesName = lens _mesName (\ s a -> s{_mesName = a})++-- | Text for generating preview chips. This text will not be displayed to+-- the user, but any links to images, web pages, videos, etc. included here+-- will generate preview chips.+mesPreviewText :: Lens' Message (Maybe Text)+mesPreviewText+ = lens _mesPreviewText+ (\ s a -> s{_mesPreviewText = a})++-- | Rich, formatted and interactive cards that can be used to display UI+-- elements such as: formatted texts, buttons, clickable images. Cards are+-- normally displayed below the plain-text body of the message.+mesCards :: Lens' Message [Card]+mesCards+ = lens _mesCards (\ s a -> s{_mesCards = a}) .+ _Default+ . _Coerce++-- | Input only. Parameters that a bot can use to configure how its response+-- is posted.+mesActionResponse :: Lens' Message (Maybe ActionResponse)+mesActionResponse+ = lens _mesActionResponse+ (\ s a -> s{_mesActionResponse = a})++-- | Plain-text body of the message with all bot mentions stripped out.+mesArgumentText :: Lens' Message (Maybe Text)+mesArgumentText+ = lens _mesArgumentText+ (\ s a -> s{_mesArgumentText = a})++-- | The thread the message belongs to.+mesThread :: Lens' Message (Maybe Thread)+mesThread+ = lens _mesThread (\ s a -> s{_mesThread = a})++-- | A plain-text description of the message\'s cards, used when the actual+-- cards cannot be displayed (e.g. mobile notifications).+mesFallbackText :: Lens' Message (Maybe Text)+mesFallbackText+ = lens _mesFallbackText+ (\ s a -> s{_mesFallbackText = a})++-- | Output only. The time at which the message was created in Hangouts Chat+-- server.+mesCreateTime :: Lens' Message (Maybe UTCTime)+mesCreateTime+ = lens _mesCreateTime+ (\ s a -> s{_mesCreateTime = a})+ . mapping _DateTime++instance FromJSON Message where+ parseJSON+ = withObject "Message"+ (\ o ->+ Message' <$>+ (o .:? "annotations" .!= mempty) <*> (o .:? "space")+ <*> (o .:? "text")+ <*> (o .:? "sender")+ <*> (o .:? "name")+ <*> (o .:? "previewText")+ <*> (o .:? "cards" .!= mempty)+ <*> (o .:? "actionResponse")+ <*> (o .:? "argumentText")+ <*> (o .:? "thread")+ <*> (o .:? "fallbackText")+ <*> (o .:? "createTime"))++instance ToJSON Message where+ toJSON Message'{..}+ = object+ (catMaybes+ [("annotations" .=) <$> _mesAnnotations,+ ("space" .=) <$> _mesSpace, ("text" .=) <$> _mesText,+ ("sender" .=) <$> _mesSender,+ ("name" .=) <$> _mesName,+ ("previewText" .=) <$> _mesPreviewText,+ ("cards" .=) <$> _mesCards,+ ("actionResponse" .=) <$> _mesActionResponse,+ ("argumentText" .=) <$> _mesArgumentText,+ ("thread" .=) <$> _mesThread,+ ("fallbackText" .=) <$> _mesFallbackText,+ ("createTime" .=) <$> _mesCreateTime])++--+-- /See:/ 'cardHeader' smart constructor.+data CardHeader = CardHeader'+ { _chSubtitle :: !(Maybe Text)+ , _chImageURL :: !(Maybe Text)+ , _chTitle :: !(Maybe Text)+ , _chImageStyle :: !(Maybe CardHeaderImageStyle)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CardHeader' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'chSubtitle'+--+-- * 'chImageURL'+--+-- * 'chTitle'+--+-- * 'chImageStyle'+cardHeader+ :: CardHeader+cardHeader =+ CardHeader'+ { _chSubtitle = Nothing+ , _chImageURL = Nothing+ , _chTitle = Nothing+ , _chImageStyle = Nothing+ }++-- | The subtitle of the card header.+chSubtitle :: Lens' CardHeader (Maybe Text)+chSubtitle+ = lens _chSubtitle (\ s a -> s{_chSubtitle = a})++-- | The URL of the image in the card header.+chImageURL :: Lens' CardHeader (Maybe Text)+chImageURL+ = lens _chImageURL (\ s a -> s{_chImageURL = a})++-- | The title must be specified. The header has a fixed height: if both a+-- title and subtitle is specified, each will take up 1 line. If only the+-- title is specified, it will take up both lines.+chTitle :: Lens' CardHeader (Maybe Text)+chTitle = lens _chTitle (\ s a -> s{_chTitle = a})++-- | The image\'s type (e.g. square border or circular border).+chImageStyle :: Lens' CardHeader (Maybe CardHeaderImageStyle)+chImageStyle+ = lens _chImageStyle (\ s a -> s{_chImageStyle = a})++instance FromJSON CardHeader where+ parseJSON+ = withObject "CardHeader"+ (\ o ->+ CardHeader' <$>+ (o .:? "subtitle") <*> (o .:? "imageUrl") <*>+ (o .:? "title")+ <*> (o .:? "imageStyle"))++instance ToJSON CardHeader where+ toJSON CardHeader'{..}+ = object+ (catMaybes+ [("subtitle" .=) <$> _chSubtitle,+ ("imageUrl" .=) <$> _chImageURL,+ ("title" .=) <$> _chTitle,+ ("imageStyle" .=) <$> _chImageStyle])++-- | A button with text and onclick action.+--+-- /See:/ 'textButton' smart constructor.+data TextButton = TextButton'+ { _tbOnClick :: !(Maybe OnClick)+ , _tbText :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TextButton' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tbOnClick'+--+-- * 'tbText'+textButton+ :: TextButton+textButton =+ TextButton'+ { _tbOnClick = Nothing+ , _tbText = Nothing+ }++-- | The onclick action of the button.+tbOnClick :: Lens' TextButton (Maybe OnClick)+tbOnClick+ = lens _tbOnClick (\ s a -> s{_tbOnClick = a})++-- | The text of the button.+tbText :: Lens' TextButton (Maybe Text)+tbText = lens _tbText (\ s a -> s{_tbText = a})++instance FromJSON TextButton where+ parseJSON+ = withObject "TextButton"+ (\ o ->+ TextButton' <$> (o .:? "onClick") <*> (o .:? "text"))++instance ToJSON TextButton where+ toJSON TextButton'{..}+ = object+ (catMaybes+ [("onClick" .=) <$> _tbOnClick,+ ("text" .=) <$> _tbText])++-- | A thread in Hangouts Chat.+--+-- /See:/ 'thread' smart constructor.+newtype Thread = Thread'+ { _tName :: Maybe Text+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Thread' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tName'+thread+ :: Thread+thread =+ Thread'+ { _tName = Nothing+ }++-- | Resource name, in the form \"spaces\/*\/threads\/*\". Example:+-- spaces\/AAAAMpdlehY\/threads\/UMxbHmzDlr4+tName :: Lens' Thread (Maybe Text)+tName = lens _tName (\ s a -> s{_tName = a})++instance FromJSON Thread where+ parseJSON+ = withObject "Thread"+ (\ o -> Thread' <$> (o .:? "name"))++instance ToJSON Thread where+ toJSON Thread'{..}+ = object (catMaybes [("name" .=) <$> _tName])++-- | Annotation metadata for user mentions (\').+--+-- /See:/ 'userMentionMetadata' smart constructor.+data UserMentionMetadata = UserMentionMetadata'+ { _ummUser :: !(Maybe User)+ , _ummType :: !(Maybe UserMentionMetadataType)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserMentionMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ummUser'+--+-- * 'ummType'+userMentionMetadata+ :: UserMentionMetadata+userMentionMetadata =+ UserMentionMetadata'+ { _ummUser = Nothing+ , _ummType = Nothing+ }++-- | The user mentioned.+ummUser :: Lens' UserMentionMetadata (Maybe User)+ummUser = lens _ummUser (\ s a -> s{_ummUser = a})++-- | The type of user mention.+ummType :: Lens' UserMentionMetadata (Maybe UserMentionMetadataType)+ummType = lens _ummType (\ s a -> s{_ummType = a})++instance FromJSON UserMentionMetadata where+ parseJSON+ = withObject "UserMentionMetadata"+ (\ o ->+ UserMentionMetadata' <$>+ (o .:? "user") <*> (o .:? "type"))++instance ToJSON UserMentionMetadata where+ toJSON UserMentionMetadata'{..}+ = object+ (catMaybes+ [("user" .=) <$> _ummUser, ("type" .=) <$> _ummType])++-- | An image button with an onclick action.+--+-- /See:/ 'imageButton' smart constructor.+data ImageButton = ImageButton'+ { _ibOnClick :: !(Maybe OnClick)+ , _ibIcon :: !(Maybe ImageButtonIcon)+ , _ibName :: !(Maybe Text)+ , _ibIconURL :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImageButton' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ibOnClick'+--+-- * 'ibIcon'+--+-- * 'ibName'+--+-- * 'ibIconURL'+imageButton+ :: ImageButton+imageButton =+ ImageButton'+ { _ibOnClick = Nothing+ , _ibIcon = Nothing+ , _ibName = Nothing+ , _ibIconURL = Nothing+ }++-- | The onclick action.+ibOnClick :: Lens' ImageButton (Maybe OnClick)+ibOnClick+ = lens _ibOnClick (\ s a -> s{_ibOnClick = a})++-- | The icon specified by an enum that indices to an icon provided by Chat+-- API.+ibIcon :: Lens' ImageButton (Maybe ImageButtonIcon)+ibIcon = lens _ibIcon (\ s a -> s{_ibIcon = a})++-- | The name of this image_button which will be used for accessibility.+-- Default value will be provided if developers don\'t specify.+ibName :: Lens' ImageButton (Maybe Text)+ibName = lens _ibName (\ s a -> s{_ibName = a})++-- | The icon specified by a URL.+ibIconURL :: Lens' ImageButton (Maybe Text)+ibIconURL+ = lens _ibIconURL (\ s a -> s{_ibIconURL = a})++instance FromJSON ImageButton where+ parseJSON+ = withObject "ImageButton"+ (\ o ->+ ImageButton' <$>+ (o .:? "onClick") <*> (o .:? "icon") <*>+ (o .:? "name")+ <*> (o .:? "iconUrl"))++instance ToJSON ImageButton where+ toJSON ImageButton'{..}+ = object+ (catMaybes+ [("onClick" .=) <$> _ibOnClick,+ ("icon" .=) <$> _ibIcon, ("name" .=) <$> _ibName,+ ("iconUrl" .=) <$> _ibIconURL])++-- | A section contains a collection of widgets that are rendered+-- (vertically) in the order that they are specified. Across all platforms,+-- cards have a narrow fixed width, so there is currently no need for+-- layout properties (e.g. float).+--+-- /See:/ 'section' smart constructor.+data Section = Section'+ { _sWidgets :: !(Maybe [WidgetMarkup])+ , _sHeader :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Section' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sWidgets'+--+-- * 'sHeader'+section+ :: Section+section =+ Section'+ { _sWidgets = Nothing+ , _sHeader = Nothing+ }++-- | A section must contain at least 1 widget.+sWidgets :: Lens' Section [WidgetMarkup]+sWidgets+ = lens _sWidgets (\ s a -> s{_sWidgets = a}) .+ _Default+ . _Coerce++-- | The header of the section, text formatted supported.+sHeader :: Lens' Section (Maybe Text)+sHeader = lens _sHeader (\ s a -> s{_sHeader = a})++instance FromJSON Section where+ parseJSON+ = withObject "Section"+ (\ o ->+ Section' <$>+ (o .:? "widgets" .!= mempty) <*> (o .:? "header"))++instance ToJSON Section where+ toJSON Section'{..}+ = object+ (catMaybes+ [("widgets" .=) <$> _sWidgets,+ ("header" .=) <$> _sHeader])
+ gen/Network/Google/Chat/Types/Sum.hs view
@@ -0,0 +1,625 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Chat.Types.Sum+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Chat.Types.Sum where++import Network.Google.Prelude hiding (Bytes)++-- | An enum value that will be replaced by the Chat API with the+-- corresponding icon image.+data KeyValueIcon+ = KVIIconUnspecified+ -- ^ @ICON_UNSPECIFIED@+ | KVIAirplane+ -- ^ @AIRPLANE@+ | KVIBookmark+ -- ^ @BOOKMARK@+ | KVIBus+ -- ^ @BUS@+ | KVICar+ -- ^ @CAR@+ | KVIClock+ -- ^ @CLOCK@+ | KVIConfirmationNumberIcon+ -- ^ @CONFIRMATION_NUMBER_ICON@+ | KVIDollar+ -- ^ @DOLLAR@+ | KVIDescription+ -- ^ @DESCRIPTION@+ | KVIEmail+ -- ^ @EMAIL@+ | KVIEventPerformer+ -- ^ @EVENT_PERFORMER@+ | KVIEventSeat+ -- ^ @EVENT_SEAT@+ | KVIFlightArrival+ -- ^ @FLIGHT_ARRIVAL@+ | KVIFlightDeParture+ -- ^ @FLIGHT_DEPARTURE@+ | KVIHotel+ -- ^ @HOTEL@+ | KVIHotelRoomType+ -- ^ @HOTEL_ROOM_TYPE@+ | KVIInvite+ -- ^ @INVITE@+ | KVIMapPin+ -- ^ @MAP_PIN@+ | KVIMembership+ -- ^ @MEMBERSHIP@+ | KVIMultiplePeople+ -- ^ @MULTIPLE_PEOPLE@+ | KVIOffer+ -- ^ @OFFER@+ | KVIPerson+ -- ^ @PERSON@+ | KVIPhone+ -- ^ @PHONE@+ | KVIRestaurantIcon+ -- ^ @RESTAURANT_ICON@+ | KVIShoppingCart+ -- ^ @SHOPPING_CART@+ | KVIStar+ -- ^ @STAR@+ | KVIStore+ -- ^ @STORE@+ | KVITicket+ -- ^ @TICKET@+ | KVITrain+ -- ^ @TRAIN@+ | KVIVideoCamera+ -- ^ @VIDEO_CAMERA@+ | KVIVideoPlay+ -- ^ @VIDEO_PLAY@+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable KeyValueIcon++instance FromHttpApiData KeyValueIcon where+ parseQueryParam = \case+ "ICON_UNSPECIFIED" -> Right KVIIconUnspecified+ "AIRPLANE" -> Right KVIAirplane+ "BOOKMARK" -> Right KVIBookmark+ "BUS" -> Right KVIBus+ "CAR" -> Right KVICar+ "CLOCK" -> Right KVIClock+ "CONFIRMATION_NUMBER_ICON" -> Right KVIConfirmationNumberIcon+ "DOLLAR" -> Right KVIDollar+ "DESCRIPTION" -> Right KVIDescription+ "EMAIL" -> Right KVIEmail+ "EVENT_PERFORMER" -> Right KVIEventPerformer+ "EVENT_SEAT" -> Right KVIEventSeat+ "FLIGHT_ARRIVAL" -> Right KVIFlightArrival+ "FLIGHT_DEPARTURE" -> Right KVIFlightDeParture+ "HOTEL" -> Right KVIHotel+ "HOTEL_ROOM_TYPE" -> Right KVIHotelRoomType+ "INVITE" -> Right KVIInvite+ "MAP_PIN" -> Right KVIMapPin+ "MEMBERSHIP" -> Right KVIMembership+ "MULTIPLE_PEOPLE" -> Right KVIMultiplePeople+ "OFFER" -> Right KVIOffer+ "PERSON" -> Right KVIPerson+ "PHONE" -> Right KVIPhone+ "RESTAURANT_ICON" -> Right KVIRestaurantIcon+ "SHOPPING_CART" -> Right KVIShoppingCart+ "STAR" -> Right KVIStar+ "STORE" -> Right KVIStore+ "TICKET" -> Right KVITicket+ "TRAIN" -> Right KVITrain+ "VIDEO_CAMERA" -> Right KVIVideoCamera+ "VIDEO_PLAY" -> Right KVIVideoPlay+ x -> Left ("Unable to parse KeyValueIcon from: " <> x)++instance ToHttpApiData KeyValueIcon where+ toQueryParam = \case+ KVIIconUnspecified -> "ICON_UNSPECIFIED"+ KVIAirplane -> "AIRPLANE"+ KVIBookmark -> "BOOKMARK"+ KVIBus -> "BUS"+ KVICar -> "CAR"+ KVIClock -> "CLOCK"+ KVIConfirmationNumberIcon -> "CONFIRMATION_NUMBER_ICON"+ KVIDollar -> "DOLLAR"+ KVIDescription -> "DESCRIPTION"+ KVIEmail -> "EMAIL"+ KVIEventPerformer -> "EVENT_PERFORMER"+ KVIEventSeat -> "EVENT_SEAT"+ KVIFlightArrival -> "FLIGHT_ARRIVAL"+ KVIFlightDeParture -> "FLIGHT_DEPARTURE"+ KVIHotel -> "HOTEL"+ KVIHotelRoomType -> "HOTEL_ROOM_TYPE"+ KVIInvite -> "INVITE"+ KVIMapPin -> "MAP_PIN"+ KVIMembership -> "MEMBERSHIP"+ KVIMultiplePeople -> "MULTIPLE_PEOPLE"+ KVIOffer -> "OFFER"+ KVIPerson -> "PERSON"+ KVIPhone -> "PHONE"+ KVIRestaurantIcon -> "RESTAURANT_ICON"+ KVIShoppingCart -> "SHOPPING_CART"+ KVIStar -> "STAR"+ KVIStore -> "STORE"+ KVITicket -> "TICKET"+ KVITrain -> "TRAIN"+ KVIVideoCamera -> "VIDEO_CAMERA"+ KVIVideoPlay -> "VIDEO_PLAY"++instance FromJSON KeyValueIcon where+ parseJSON = parseJSONText "KeyValueIcon"++instance ToJSON KeyValueIcon where+ toJSON = toJSONText++-- | The type of bot response.+data ActionResponseType+ = TypeUnspecified+ -- ^ @TYPE_UNSPECIFIED@+ -- Default type; will be handled as NEW_MESSAGE.+ | NewMessage+ -- ^ @NEW_MESSAGE@+ -- Post as a new message in the topic.+ | UpdateMessage+ -- ^ @UPDATE_MESSAGE@+ -- Update the bot\'s own message. (Only after CARD_CLICKED events.)+ | RequestConfig+ -- ^ @REQUEST_CONFIG@+ -- Privately ask the user for additional auth or config.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ActionResponseType++instance FromHttpApiData ActionResponseType where+ parseQueryParam = \case+ "TYPE_UNSPECIFIED" -> Right TypeUnspecified+ "NEW_MESSAGE" -> Right NewMessage+ "UPDATE_MESSAGE" -> Right UpdateMessage+ "REQUEST_CONFIG" -> Right RequestConfig+ x -> Left ("Unable to parse ActionResponseType from: " <> x)++instance ToHttpApiData ActionResponseType where+ toQueryParam = \case+ TypeUnspecified -> "TYPE_UNSPECIFIED"+ NewMessage -> "NEW_MESSAGE"+ UpdateMessage -> "UPDATE_MESSAGE"+ RequestConfig -> "REQUEST_CONFIG"++instance FromJSON ActionResponseType where+ parseJSON = parseJSONText "ActionResponseType"++instance ToJSON ActionResponseType where+ toJSON = toJSONText++-- | State of the membership.+data MembershipState+ = MembershipStateUnspecified+ -- ^ @MEMBERSHIP_STATE_UNSPECIFIED@+ -- Default, do not use.+ | Joined+ -- ^ @JOINED@+ -- The user has joined the space.+ | Invited+ -- ^ @INVITED@+ -- The user has been invited, is able to join the space, but currently has+ -- not joined.+ | NotAMember+ -- ^ @NOT_A_MEMBER@+ -- The user is not a member of the space, has not been invited and is not+ -- able to join the space.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable MembershipState++instance FromHttpApiData MembershipState where+ parseQueryParam = \case+ "MEMBERSHIP_STATE_UNSPECIFIED" -> Right MembershipStateUnspecified+ "JOINED" -> Right Joined+ "INVITED" -> Right Invited+ "NOT_A_MEMBER" -> Right NotAMember+ x -> Left ("Unable to parse MembershipState from: " <> x)++instance ToHttpApiData MembershipState where+ toQueryParam = \case+ MembershipStateUnspecified -> "MEMBERSHIP_STATE_UNSPECIFIED"+ Joined -> "JOINED"+ Invited -> "INVITED"+ NotAMember -> "NOT_A_MEMBER"++instance FromJSON MembershipState where+ parseJSON = parseJSONText "MembershipState"++instance ToJSON MembershipState where+ toJSON = toJSONText++-- | The image\'s type (e.g. square border or circular border).+data CardHeaderImageStyle+ = CHISImageStyleUnspecified+ -- ^ @IMAGE_STYLE_UNSPECIFIED@+ | CHISImage+ -- ^ @IMAGE@+ -- Square border.+ | CHISAvatar+ -- ^ @AVATAR@+ -- Circular border.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable CardHeaderImageStyle++instance FromHttpApiData CardHeaderImageStyle where+ parseQueryParam = \case+ "IMAGE_STYLE_UNSPECIFIED" -> Right CHISImageStyleUnspecified+ "IMAGE" -> Right CHISImage+ "AVATAR" -> Right CHISAvatar+ x -> Left ("Unable to parse CardHeaderImageStyle from: " <> x)++instance ToHttpApiData CardHeaderImageStyle where+ toQueryParam = \case+ CHISImageStyleUnspecified -> "IMAGE_STYLE_UNSPECIFIED"+ CHISImage -> "IMAGE"+ CHISAvatar -> "AVATAR"++instance FromJSON CardHeaderImageStyle where+ parseJSON = parseJSONText "CardHeaderImageStyle"++instance ToJSON CardHeaderImageStyle where+ toJSON = toJSONText++-- | The type of user mention.+data UserMentionMetadataType+ = UMMTTypeUnspecified+ -- ^ @TYPE_UNSPECIFIED@+ -- Default value for the enum. DO NOT USE.+ | UMMTAdd+ -- ^ @ADD@+ -- Add user to space.+ | UMMTMention+ -- ^ @MENTION@+ -- Mention user in space.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable UserMentionMetadataType++instance FromHttpApiData UserMentionMetadataType where+ parseQueryParam = \case+ "TYPE_UNSPECIFIED" -> Right UMMTTypeUnspecified+ "ADD" -> Right UMMTAdd+ "MENTION" -> Right UMMTMention+ x -> Left ("Unable to parse UserMentionMetadataType from: " <> x)++instance ToHttpApiData UserMentionMetadataType where+ toQueryParam = \case+ UMMTTypeUnspecified -> "TYPE_UNSPECIFIED"+ UMMTAdd -> "ADD"+ UMMTMention -> "MENTION"++instance FromJSON UserMentionMetadataType where+ parseJSON = parseJSONText "UserMentionMetadataType"++instance ToJSON UserMentionMetadataType where+ toJSON = toJSONText++-- | Output only. The type of a space.+data SpaceType+ = STTypeUnspecified+ -- ^ @TYPE_UNSPECIFIED@+ | STRoom+ -- ^ @ROOM@+ -- A chat space where memberships are free to change. Messages in rooms are+ -- threaded.+ | STDM+ -- ^ @DM@+ -- 1:1 Direct Message between a human and a bot, where all messages are+ -- flat.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable SpaceType++instance FromHttpApiData SpaceType where+ parseQueryParam = \case+ "TYPE_UNSPECIFIED" -> Right STTypeUnspecified+ "ROOM" -> Right STRoom+ "DM" -> Right STDM+ x -> Left ("Unable to parse SpaceType from: " <> x)++instance ToHttpApiData SpaceType where+ toQueryParam = \case+ STTypeUnspecified -> "TYPE_UNSPECIFIED"+ STRoom -> "ROOM"+ STDM -> "DM"++instance FromJSON SpaceType where+ parseJSON = parseJSONText "SpaceType"++instance ToJSON SpaceType where+ toJSON = toJSONText++-- | The type of this annotation.+data AnnotationType+ = AnnotationTypeUnspecified+ -- ^ @ANNOTATION_TYPE_UNSPECIFIED@+ -- Default value for the enum. DO NOT USE.+ | UserMention+ -- ^ @USER_MENTION@+ -- A user is mentioned.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable AnnotationType++instance FromHttpApiData AnnotationType where+ parseQueryParam = \case+ "ANNOTATION_TYPE_UNSPECIFIED" -> Right AnnotationTypeUnspecified+ "USER_MENTION" -> Right UserMention+ x -> Left ("Unable to parse AnnotationType from: " <> x)++instance ToHttpApiData AnnotationType where+ toQueryParam = \case+ AnnotationTypeUnspecified -> "ANNOTATION_TYPE_UNSPECIFIED"+ UserMention -> "USER_MENTION"++instance FromJSON AnnotationType where+ parseJSON = parseJSONText "AnnotationType"++instance ToJSON AnnotationType where+ toJSON = toJSONText++-- | The icon specified by an enum that indices to an icon provided by Chat+-- API.+data ImageButtonIcon+ = IBIIconUnspecified+ -- ^ @ICON_UNSPECIFIED@+ | IBIAirplane+ -- ^ @AIRPLANE@+ | IBIBookmark+ -- ^ @BOOKMARK@+ | IBIBus+ -- ^ @BUS@+ | IBICar+ -- ^ @CAR@+ | IBIClock+ -- ^ @CLOCK@+ | IBIConfirmationNumberIcon+ -- ^ @CONFIRMATION_NUMBER_ICON@+ | IBIDollar+ -- ^ @DOLLAR@+ | IBIDescription+ -- ^ @DESCRIPTION@+ | IBIEmail+ -- ^ @EMAIL@+ | IBIEventPerformer+ -- ^ @EVENT_PERFORMER@+ | IBIEventSeat+ -- ^ @EVENT_SEAT@+ | IBIFlightArrival+ -- ^ @FLIGHT_ARRIVAL@+ | IBIFlightDeParture+ -- ^ @FLIGHT_DEPARTURE@+ | IBIHotel+ -- ^ @HOTEL@+ | IBIHotelRoomType+ -- ^ @HOTEL_ROOM_TYPE@+ | IBIInvite+ -- ^ @INVITE@+ | IBIMapPin+ -- ^ @MAP_PIN@+ | IBIMembership+ -- ^ @MEMBERSHIP@+ | IBIMultiplePeople+ -- ^ @MULTIPLE_PEOPLE@+ | IBIOffer+ -- ^ @OFFER@+ | IBIPerson+ -- ^ @PERSON@+ | IBIPhone+ -- ^ @PHONE@+ | IBIRestaurantIcon+ -- ^ @RESTAURANT_ICON@+ | IBIShoppingCart+ -- ^ @SHOPPING_CART@+ | IBIStar+ -- ^ @STAR@+ | IBIStore+ -- ^ @STORE@+ | IBITicket+ -- ^ @TICKET@+ | IBITrain+ -- ^ @TRAIN@+ | IBIVideoCamera+ -- ^ @VIDEO_CAMERA@+ | IBIVideoPlay+ -- ^ @VIDEO_PLAY@+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ImageButtonIcon++instance FromHttpApiData ImageButtonIcon where+ parseQueryParam = \case+ "ICON_UNSPECIFIED" -> Right IBIIconUnspecified+ "AIRPLANE" -> Right IBIAirplane+ "BOOKMARK" -> Right IBIBookmark+ "BUS" -> Right IBIBus+ "CAR" -> Right IBICar+ "CLOCK" -> Right IBIClock+ "CONFIRMATION_NUMBER_ICON" -> Right IBIConfirmationNumberIcon+ "DOLLAR" -> Right IBIDollar+ "DESCRIPTION" -> Right IBIDescription+ "EMAIL" -> Right IBIEmail+ "EVENT_PERFORMER" -> Right IBIEventPerformer+ "EVENT_SEAT" -> Right IBIEventSeat+ "FLIGHT_ARRIVAL" -> Right IBIFlightArrival+ "FLIGHT_DEPARTURE" -> Right IBIFlightDeParture+ "HOTEL" -> Right IBIHotel+ "HOTEL_ROOM_TYPE" -> Right IBIHotelRoomType+ "INVITE" -> Right IBIInvite+ "MAP_PIN" -> Right IBIMapPin+ "MEMBERSHIP" -> Right IBIMembership+ "MULTIPLE_PEOPLE" -> Right IBIMultiplePeople+ "OFFER" -> Right IBIOffer+ "PERSON" -> Right IBIPerson+ "PHONE" -> Right IBIPhone+ "RESTAURANT_ICON" -> Right IBIRestaurantIcon+ "SHOPPING_CART" -> Right IBIShoppingCart+ "STAR" -> Right IBIStar+ "STORE" -> Right IBIStore+ "TICKET" -> Right IBITicket+ "TRAIN" -> Right IBITrain+ "VIDEO_CAMERA" -> Right IBIVideoCamera+ "VIDEO_PLAY" -> Right IBIVideoPlay+ x -> Left ("Unable to parse ImageButtonIcon from: " <> x)++instance ToHttpApiData ImageButtonIcon where+ toQueryParam = \case+ IBIIconUnspecified -> "ICON_UNSPECIFIED"+ IBIAirplane -> "AIRPLANE"+ IBIBookmark -> "BOOKMARK"+ IBIBus -> "BUS"+ IBICar -> "CAR"+ IBIClock -> "CLOCK"+ IBIConfirmationNumberIcon -> "CONFIRMATION_NUMBER_ICON"+ IBIDollar -> "DOLLAR"+ IBIDescription -> "DESCRIPTION"+ IBIEmail -> "EMAIL"+ IBIEventPerformer -> "EVENT_PERFORMER"+ IBIEventSeat -> "EVENT_SEAT"+ IBIFlightArrival -> "FLIGHT_ARRIVAL"+ IBIFlightDeParture -> "FLIGHT_DEPARTURE"+ IBIHotel -> "HOTEL"+ IBIHotelRoomType -> "HOTEL_ROOM_TYPE"+ IBIInvite -> "INVITE"+ IBIMapPin -> "MAP_PIN"+ IBIMembership -> "MEMBERSHIP"+ IBIMultiplePeople -> "MULTIPLE_PEOPLE"+ IBIOffer -> "OFFER"+ IBIPerson -> "PERSON"+ IBIPhone -> "PHONE"+ IBIRestaurantIcon -> "RESTAURANT_ICON"+ IBIShoppingCart -> "SHOPPING_CART"+ IBIStar -> "STAR"+ IBIStore -> "STORE"+ IBITicket -> "TICKET"+ IBITrain -> "TRAIN"+ IBIVideoCamera -> "VIDEO_CAMERA"+ IBIVideoPlay -> "VIDEO_PLAY"++instance FromJSON ImageButtonIcon where+ parseJSON = parseJSONText "ImageButtonIcon"++instance ToJSON ImageButtonIcon where+ toJSON = toJSONText++-- | V1 error format.+data Xgafv+ = X1+ -- ^ @1@+ -- v1 error format+ | X2+ -- ^ @2@+ -- v2 error format+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable Xgafv++instance FromHttpApiData Xgafv where+ parseQueryParam = \case+ "1" -> Right X1+ "2" -> Right X2+ x -> Left ("Unable to parse Xgafv from: " <> x)++instance ToHttpApiData Xgafv where+ toQueryParam = \case+ X1 -> "1"+ X2 -> "2"++instance FromJSON Xgafv where+ parseJSON = parseJSONText "Xgafv"++instance ToJSON Xgafv where+ toJSON = toJSONText++-- | The type of the event.+data DeprecatedEventType+ = DETUnspecified+ -- ^ @UNSPECIFIED@+ -- Default value for the enum. DO NOT USE.+ | DETMessage+ -- ^ @MESSAGE@+ -- A message was sent in a room or direct message.+ | DETAddedToSpace+ -- ^ @ADDED_TO_SPACE@+ -- The bot was added to a room or DM.+ | DETRemovedFromSpace+ -- ^ @REMOVED_FROM_SPACE@+ -- The bot was removed from a room or DM.+ | DETCardClicked+ -- ^ @CARD_CLICKED@+ -- The bot\'s interactive card was clicked.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DeprecatedEventType++instance FromHttpApiData DeprecatedEventType where+ parseQueryParam = \case+ "UNSPECIFIED" -> Right DETUnspecified+ "MESSAGE" -> Right DETMessage+ "ADDED_TO_SPACE" -> Right DETAddedToSpace+ "REMOVED_FROM_SPACE" -> Right DETRemovedFromSpace+ "CARD_CLICKED" -> Right DETCardClicked+ x -> Left ("Unable to parse DeprecatedEventType from: " <> x)++instance ToHttpApiData DeprecatedEventType where+ toQueryParam = \case+ DETUnspecified -> "UNSPECIFIED"+ DETMessage -> "MESSAGE"+ DETAddedToSpace -> "ADDED_TO_SPACE"+ DETRemovedFromSpace -> "REMOVED_FROM_SPACE"+ DETCardClicked -> "CARD_CLICKED"++instance FromJSON DeprecatedEventType where+ parseJSON = parseJSONText "DeprecatedEventType"++instance ToJSON DeprecatedEventType where+ toJSON = toJSONText++-- | User type.+data UserType+ = UTTypeUnspecified+ -- ^ @TYPE_UNSPECIFIED@+ -- Default value for the enum. DO NOT USE.+ | UTHuman+ -- ^ @HUMAN@+ -- Human user.+ | UTBot+ -- ^ @BOT@+ -- Bot user.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable UserType++instance FromHttpApiData UserType where+ parseQueryParam = \case+ "TYPE_UNSPECIFIED" -> Right UTTypeUnspecified+ "HUMAN" -> Right UTHuman+ "BOT" -> Right UTBot+ x -> Left ("Unable to parse UserType from: " <> x)++instance ToHttpApiData UserType where+ toQueryParam = \case+ UTTypeUnspecified -> "TYPE_UNSPECIFIED"+ UTHuman -> "HUMAN"+ UTBot -> "BOT"++instance FromJSON UserType where+ parseJSON = parseJSONText "UserType"++instance ToJSON UserType where+ toJSON = toJSONText
+ gen/Network/Google/Resource/Chat/Spaces/Get.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.Chat.Spaces.Get+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a space.+--+-- /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.get@.+module Network.Google.Resource.Chat.Spaces.Get+ (+ -- * REST Resource+ SpacesGetResource++ -- * Creating a Request+ , spacesGet+ , SpacesGet++ -- * Request Lenses+ , sgXgafv+ , sgUploadProtocol+ , sgAccessToken+ , sgUploadType+ , sgName+ , sgCallback+ ) where++import Network.Google.Chat.Types+import Network.Google.Prelude++-- | A resource alias for @chat.spaces.get@ method which the+-- 'SpacesGet' request conforms to.+type SpacesGetResource =+ "v1" :>+ Capture "name" Text :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :> Get '[JSON] Space++-- | Returns a space.+--+-- /See:/ 'spacesGet' smart constructor.+data SpacesGet = SpacesGet'+ { _sgXgafv :: !(Maybe Xgafv)+ , _sgUploadProtocol :: !(Maybe Text)+ , _sgAccessToken :: !(Maybe Text)+ , _sgUploadType :: !(Maybe Text)+ , _sgName :: !Text+ , _sgCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpacesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgXgafv'+--+-- * 'sgUploadProtocol'+--+-- * 'sgAccessToken'+--+-- * 'sgUploadType'+--+-- * 'sgName'+--+-- * 'sgCallback'+spacesGet+ :: Text -- ^ 'sgName'+ -> SpacesGet+spacesGet pSgName_ =+ SpacesGet'+ { _sgXgafv = Nothing+ , _sgUploadProtocol = Nothing+ , _sgAccessToken = Nothing+ , _sgUploadType = Nothing+ , _sgName = pSgName_+ , _sgCallback = Nothing+ }++-- | V1 error format.+sgXgafv :: Lens' SpacesGet (Maybe Xgafv)+sgXgafv = lens _sgXgafv (\ s a -> s{_sgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+sgUploadProtocol :: Lens' SpacesGet (Maybe Text)+sgUploadProtocol+ = lens _sgUploadProtocol+ (\ s a -> s{_sgUploadProtocol = a})++-- | OAuth access token.+sgAccessToken :: Lens' SpacesGet (Maybe Text)+sgAccessToken+ = lens _sgAccessToken+ (\ s a -> s{_sgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+sgUploadType :: Lens' SpacesGet (Maybe Text)+sgUploadType+ = lens _sgUploadType (\ s a -> s{_sgUploadType = a})++-- | Required. Resource name of the space, in the form \"spaces\/*\".+-- Example: spaces\/AAAAMpdlehY+sgName :: Lens' SpacesGet Text+sgName = lens _sgName (\ s a -> s{_sgName = a})++-- | JSONP+sgCallback :: Lens' SpacesGet (Maybe Text)+sgCallback+ = lens _sgCallback (\ s a -> s{_sgCallback = a})++instance GoogleRequest SpacesGet where+ type Rs SpacesGet = Space+ type Scopes SpacesGet = '[]+ requestClient SpacesGet'{..}+ = go _sgName _sgXgafv _sgUploadProtocol+ _sgAccessToken+ _sgUploadType+ _sgCallback+ (Just AltJSON)+ chatService+ where go+ = buildClient (Proxy :: Proxy SpacesGetResource)+ mempty
+ gen/Network/Google/Resource/Chat/Spaces/List.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.Chat.Spaces.List+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists spaces the caller is a member of.+--+-- /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.list@.+module Network.Google.Resource.Chat.Spaces.List+ (+ -- * REST Resource+ SpacesListResource++ -- * Creating a Request+ , spacesList+ , SpacesList++ -- * Request Lenses+ , slXgafv+ , slUploadProtocol+ , slAccessToken+ , slUploadType+ , slPageToken+ , slPageSize+ , slCallback+ ) where++import Network.Google.Chat.Types+import Network.Google.Prelude++-- | A resource alias for @chat.spaces.list@ method which the+-- 'SpacesList' request conforms to.+type SpacesListResource =+ "v1" :>+ "spaces" :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "pageToken" Text :>+ QueryParam "pageSize" (Textual Int32) :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ Get '[JSON] ListSpacesResponse++-- | Lists spaces the caller is a member of.+--+-- /See:/ 'spacesList' smart constructor.+data SpacesList = SpacesList'+ { _slXgafv :: !(Maybe Xgafv)+ , _slUploadProtocol :: !(Maybe Text)+ , _slAccessToken :: !(Maybe Text)+ , _slUploadType :: !(Maybe Text)+ , _slPageToken :: !(Maybe Text)+ , _slPageSize :: !(Maybe (Textual Int32))+ , _slCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpacesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'slXgafv'+--+-- * 'slUploadProtocol'+--+-- * 'slAccessToken'+--+-- * 'slUploadType'+--+-- * 'slPageToken'+--+-- * 'slPageSize'+--+-- * 'slCallback'+spacesList+ :: SpacesList+spacesList =+ SpacesList'+ { _slXgafv = Nothing+ , _slUploadProtocol = Nothing+ , _slAccessToken = Nothing+ , _slUploadType = Nothing+ , _slPageToken = Nothing+ , _slPageSize = Nothing+ , _slCallback = Nothing+ }++-- | V1 error format.+slXgafv :: Lens' SpacesList (Maybe Xgafv)+slXgafv = lens _slXgafv (\ s a -> s{_slXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+slUploadProtocol :: Lens' SpacesList (Maybe Text)+slUploadProtocol+ = lens _slUploadProtocol+ (\ s a -> s{_slUploadProtocol = a})++-- | OAuth access token.+slAccessToken :: Lens' SpacesList (Maybe Text)+slAccessToken+ = lens _slAccessToken+ (\ s a -> s{_slAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+slUploadType :: Lens' SpacesList (Maybe Text)+slUploadType+ = lens _slUploadType (\ s a -> s{_slUploadType = a})++-- | A token identifying a page of results the server should return.+slPageToken :: Lens' SpacesList (Maybe Text)+slPageToken+ = lens _slPageToken (\ s a -> s{_slPageToken = a})++-- | Requested page size. The value is capped at 1000. Server may return+-- fewer results than requested. If unspecified, server will default to+-- 100.+slPageSize :: Lens' SpacesList (Maybe Int32)+slPageSize+ = lens _slPageSize (\ s a -> s{_slPageSize = a}) .+ mapping _Coerce++-- | JSONP+slCallback :: Lens' SpacesList (Maybe Text)+slCallback+ = lens _slCallback (\ s a -> s{_slCallback = a})++instance GoogleRequest SpacesList where+ type Rs SpacesList = ListSpacesResponse+ type Scopes SpacesList = '[]+ requestClient SpacesList'{..}+ = go _slXgafv _slUploadProtocol _slAccessToken+ _slUploadType+ _slPageToken+ _slPageSize+ _slCallback+ (Just AltJSON)+ chatService+ where go+ = buildClient (Proxy :: Proxy SpacesListResource)+ mempty
+ gen/Network/Google/Resource/Chat/Spaces/Members/Get.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.Chat.Spaces.Members.Get+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a membership.+--+-- /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.members.get@.+module Network.Google.Resource.Chat.Spaces.Members.Get+ (+ -- * REST Resource+ SpacesMembersGetResource++ -- * Creating a Request+ , spacesMembersGet+ , SpacesMembersGet++ -- * Request Lenses+ , spaXgafv+ , spaUploadProtocol+ , spaAccessToken+ , spaUploadType+ , spaName+ , spaCallback+ ) where++import Network.Google.Chat.Types+import Network.Google.Prelude++-- | A resource alias for @chat.spaces.members.get@ method which the+-- 'SpacesMembersGet' request conforms to.+type SpacesMembersGetResource =+ "v1" :>+ Capture "name" Text :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :> Get '[JSON] Membership++-- | Returns a membership.+--+-- /See:/ 'spacesMembersGet' smart constructor.+data SpacesMembersGet = SpacesMembersGet'+ { _spaXgafv :: !(Maybe Xgafv)+ , _spaUploadProtocol :: !(Maybe Text)+ , _spaAccessToken :: !(Maybe Text)+ , _spaUploadType :: !(Maybe Text)+ , _spaName :: !Text+ , _spaCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpacesMembersGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'spaXgafv'+--+-- * 'spaUploadProtocol'+--+-- * 'spaAccessToken'+--+-- * 'spaUploadType'+--+-- * 'spaName'+--+-- * 'spaCallback'+spacesMembersGet+ :: Text -- ^ 'spaName'+ -> SpacesMembersGet+spacesMembersGet pSpaName_ =+ SpacesMembersGet'+ { _spaXgafv = Nothing+ , _spaUploadProtocol = Nothing+ , _spaAccessToken = Nothing+ , _spaUploadType = Nothing+ , _spaName = pSpaName_+ , _spaCallback = Nothing+ }++-- | V1 error format.+spaXgafv :: Lens' SpacesMembersGet (Maybe Xgafv)+spaXgafv = lens _spaXgafv (\ s a -> s{_spaXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+spaUploadProtocol :: Lens' SpacesMembersGet (Maybe Text)+spaUploadProtocol+ = lens _spaUploadProtocol+ (\ s a -> s{_spaUploadProtocol = a})++-- | OAuth access token.+spaAccessToken :: Lens' SpacesMembersGet (Maybe Text)+spaAccessToken+ = lens _spaAccessToken+ (\ s a -> s{_spaAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+spaUploadType :: Lens' SpacesMembersGet (Maybe Text)+spaUploadType+ = lens _spaUploadType+ (\ s a -> s{_spaUploadType = a})++-- | Required. Resource name of the membership to be retrieved, in the form+-- \"spaces\/*\/members\/*\". Example:+-- spaces\/AAAAMpdlehY\/members\/105115627578887013105+spaName :: Lens' SpacesMembersGet Text+spaName = lens _spaName (\ s a -> s{_spaName = a})++-- | JSONP+spaCallback :: Lens' SpacesMembersGet (Maybe Text)+spaCallback+ = lens _spaCallback (\ s a -> s{_spaCallback = a})++instance GoogleRequest SpacesMembersGet where+ type Rs SpacesMembersGet = Membership+ type Scopes SpacesMembersGet = '[]+ requestClient SpacesMembersGet'{..}+ = go _spaName _spaXgafv _spaUploadProtocol+ _spaAccessToken+ _spaUploadType+ _spaCallback+ (Just AltJSON)+ chatService+ where go+ = buildClient+ (Proxy :: Proxy SpacesMembersGetResource)+ mempty
+ gen/Network/Google/Resource/Chat/Spaces/Members/List.hs view
@@ -0,0 +1,174 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.Chat.Spaces.Members.List+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists human memberships in a space.+--+-- /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.members.list@.+module Network.Google.Resource.Chat.Spaces.Members.List+ (+ -- * REST Resource+ SpacesMembersListResource++ -- * Creating a Request+ , spacesMembersList+ , SpacesMembersList++ -- * Request Lenses+ , smlParent+ , smlXgafv+ , smlUploadProtocol+ , smlAccessToken+ , smlUploadType+ , smlPageToken+ , smlPageSize+ , smlCallback+ ) where++import Network.Google.Chat.Types+import Network.Google.Prelude++-- | A resource alias for @chat.spaces.members.list@ method which the+-- 'SpacesMembersList' request conforms to.+type SpacesMembersListResource =+ "v1" :>+ Capture "parent" Text :>+ "members" :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "pageToken" Text :>+ QueryParam "pageSize" (Textual Int32) :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ Get '[JSON] ListMembershipsResponse++-- | Lists human memberships in a space.+--+-- /See:/ 'spacesMembersList' smart constructor.+data SpacesMembersList = SpacesMembersList'+ { _smlParent :: !Text+ , _smlXgafv :: !(Maybe Xgafv)+ , _smlUploadProtocol :: !(Maybe Text)+ , _smlAccessToken :: !(Maybe Text)+ , _smlUploadType :: !(Maybe Text)+ , _smlPageToken :: !(Maybe Text)+ , _smlPageSize :: !(Maybe (Textual Int32))+ , _smlCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpacesMembersList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'smlParent'+--+-- * 'smlXgafv'+--+-- * 'smlUploadProtocol'+--+-- * 'smlAccessToken'+--+-- * 'smlUploadType'+--+-- * 'smlPageToken'+--+-- * 'smlPageSize'+--+-- * 'smlCallback'+spacesMembersList+ :: Text -- ^ 'smlParent'+ -> SpacesMembersList+spacesMembersList pSmlParent_ =+ SpacesMembersList'+ { _smlParent = pSmlParent_+ , _smlXgafv = Nothing+ , _smlUploadProtocol = Nothing+ , _smlAccessToken = Nothing+ , _smlUploadType = Nothing+ , _smlPageToken = Nothing+ , _smlPageSize = Nothing+ , _smlCallback = Nothing+ }++-- | Required. The resource name of the space for which membership list is to+-- be fetched, in the form \"spaces\/*\". Example: spaces\/AAAAMpdlehY+smlParent :: Lens' SpacesMembersList Text+smlParent+ = lens _smlParent (\ s a -> s{_smlParent = a})++-- | V1 error format.+smlXgafv :: Lens' SpacesMembersList (Maybe Xgafv)+smlXgafv = lens _smlXgafv (\ s a -> s{_smlXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+smlUploadProtocol :: Lens' SpacesMembersList (Maybe Text)+smlUploadProtocol+ = lens _smlUploadProtocol+ (\ s a -> s{_smlUploadProtocol = a})++-- | OAuth access token.+smlAccessToken :: Lens' SpacesMembersList (Maybe Text)+smlAccessToken+ = lens _smlAccessToken+ (\ s a -> s{_smlAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+smlUploadType :: Lens' SpacesMembersList (Maybe Text)+smlUploadType+ = lens _smlUploadType+ (\ s a -> s{_smlUploadType = a})++-- | A token identifying a page of results the server should return.+smlPageToken :: Lens' SpacesMembersList (Maybe Text)+smlPageToken+ = lens _smlPageToken (\ s a -> s{_smlPageToken = a})++-- | Requested page size. The value is capped at 1000. Server may return+-- fewer results than requested. If unspecified, server will default to+-- 100.+smlPageSize :: Lens' SpacesMembersList (Maybe Int32)+smlPageSize+ = lens _smlPageSize (\ s a -> s{_smlPageSize = a}) .+ mapping _Coerce++-- | JSONP+smlCallback :: Lens' SpacesMembersList (Maybe Text)+smlCallback+ = lens _smlCallback (\ s a -> s{_smlCallback = a})++instance GoogleRequest SpacesMembersList where+ type Rs SpacesMembersList = ListMembershipsResponse+ type Scopes SpacesMembersList = '[]+ requestClient SpacesMembersList'{..}+ = go _smlParent _smlXgafv _smlUploadProtocol+ _smlAccessToken+ _smlUploadType+ _smlPageToken+ _smlPageSize+ _smlCallback+ (Just AltJSON)+ chatService+ where go+ = buildClient+ (Proxy :: Proxy SpacesMembersListResource)+ mempty
+ gen/Network/Google/Resource/Chat/Spaces/Messages/Create.hs view
@@ -0,0 +1,178 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.Chat.Spaces.Messages.Create+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a message.+--+-- /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.messages.create@.+module Network.Google.Resource.Chat.Spaces.Messages.Create+ (+ -- * REST Resource+ SpacesMessagesCreateResource++ -- * Creating a Request+ , spacesMessagesCreate+ , SpacesMessagesCreate++ -- * Request Lenses+ , smcParent+ , smcXgafv+ , smcUploadProtocol+ , smcAccessToken+ , smcUploadType+ , smcPayload+ , smcCallback+ , smcThreadKey+ ) where++import Network.Google.Chat.Types+import Network.Google.Prelude++-- | A resource alias for @chat.spaces.messages.create@ method which the+-- 'SpacesMessagesCreate' request conforms to.+type SpacesMessagesCreateResource =+ "v1" :>+ Capture "parent" Text :>+ "messages" :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "callback" Text :>+ QueryParam "threadKey" Text :>+ QueryParam "alt" AltJSON :>+ ReqBody '[JSON] Message :> Post '[JSON] Message++-- | Creates a message.+--+-- /See:/ 'spacesMessagesCreate' smart constructor.+data SpacesMessagesCreate = SpacesMessagesCreate'+ { _smcParent :: !Text+ , _smcXgafv :: !(Maybe Xgafv)+ , _smcUploadProtocol :: !(Maybe Text)+ , _smcAccessToken :: !(Maybe Text)+ , _smcUploadType :: !(Maybe Text)+ , _smcPayload :: !Message+ , _smcCallback :: !(Maybe Text)+ , _smcThreadKey :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpacesMessagesCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'smcParent'+--+-- * 'smcXgafv'+--+-- * 'smcUploadProtocol'+--+-- * 'smcAccessToken'+--+-- * 'smcUploadType'+--+-- * 'smcPayload'+--+-- * 'smcCallback'+--+-- * 'smcThreadKey'+spacesMessagesCreate+ :: Text -- ^ 'smcParent'+ -> Message -- ^ 'smcPayload'+ -> SpacesMessagesCreate+spacesMessagesCreate pSmcParent_ pSmcPayload_ =+ SpacesMessagesCreate'+ { _smcParent = pSmcParent_+ , _smcXgafv = Nothing+ , _smcUploadProtocol = Nothing+ , _smcAccessToken = Nothing+ , _smcUploadType = Nothing+ , _smcPayload = pSmcPayload_+ , _smcCallback = Nothing+ , _smcThreadKey = Nothing+ }++-- | Required. Space resource name, in the form \"spaces\/*\". Example:+-- spaces\/AAAAMpdlehY+smcParent :: Lens' SpacesMessagesCreate Text+smcParent+ = lens _smcParent (\ s a -> s{_smcParent = a})++-- | V1 error format.+smcXgafv :: Lens' SpacesMessagesCreate (Maybe Xgafv)+smcXgafv = lens _smcXgafv (\ s a -> s{_smcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+smcUploadProtocol :: Lens' SpacesMessagesCreate (Maybe Text)+smcUploadProtocol+ = lens _smcUploadProtocol+ (\ s a -> s{_smcUploadProtocol = a})++-- | OAuth access token.+smcAccessToken :: Lens' SpacesMessagesCreate (Maybe Text)+smcAccessToken+ = lens _smcAccessToken+ (\ s a -> s{_smcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+smcUploadType :: Lens' SpacesMessagesCreate (Maybe Text)+smcUploadType+ = lens _smcUploadType+ (\ s a -> s{_smcUploadType = a})++-- | Multipart request metadata.+smcPayload :: Lens' SpacesMessagesCreate Message+smcPayload+ = lens _smcPayload (\ s a -> s{_smcPayload = a})++-- | JSONP+smcCallback :: Lens' SpacesMessagesCreate (Maybe Text)+smcCallback+ = lens _smcCallback (\ s a -> s{_smcCallback = a})++-- | Opaque thread identifier string that can be specified to group messages+-- into a single thread. If this is the first message with a given thread+-- identifier, a new thread is created. Subsequent messages with the same+-- thread identifier will be posted into the same thread. This relieves+-- bots and webhooks from having to store the Hangouts Chat thread ID of a+-- thread (created earlier by them) to post further updates to it. Has no+-- effect if thread field, corresponding to an existing thread, is set in+-- message.+smcThreadKey :: Lens' SpacesMessagesCreate (Maybe Text)+smcThreadKey+ = lens _smcThreadKey (\ s a -> s{_smcThreadKey = a})++instance GoogleRequest SpacesMessagesCreate where+ type Rs SpacesMessagesCreate = Message+ type Scopes SpacesMessagesCreate = '[]+ requestClient SpacesMessagesCreate'{..}+ = go _smcParent _smcXgafv _smcUploadProtocol+ _smcAccessToken+ _smcUploadType+ _smcCallback+ _smcThreadKey+ (Just AltJSON)+ _smcPayload+ chatService+ where go+ = buildClient+ (Proxy :: Proxy SpacesMessagesCreateResource)+ mempty
+ gen/Network/Google/Resource/Chat/Spaces/Messages/Delete.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.Chat.Spaces.Messages.Delete+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a message.+--+-- /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.messages.delete@.+module Network.Google.Resource.Chat.Spaces.Messages.Delete+ (+ -- * REST Resource+ SpacesMessagesDeleteResource++ -- * Creating a Request+ , spacesMessagesDelete+ , SpacesMessagesDelete++ -- * Request Lenses+ , smdXgafv+ , smdUploadProtocol+ , smdAccessToken+ , smdUploadType+ , smdName+ , smdCallback+ ) where++import Network.Google.Chat.Types+import Network.Google.Prelude++-- | A resource alias for @chat.spaces.messages.delete@ method which the+-- 'SpacesMessagesDelete' request conforms to.+type SpacesMessagesDeleteResource =+ "v1" :>+ Capture "name" Text :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :> Delete '[JSON] Empty++-- | Deletes a message.+--+-- /See:/ 'spacesMessagesDelete' smart constructor.+data SpacesMessagesDelete = SpacesMessagesDelete'+ { _smdXgafv :: !(Maybe Xgafv)+ , _smdUploadProtocol :: !(Maybe Text)+ , _smdAccessToken :: !(Maybe Text)+ , _smdUploadType :: !(Maybe Text)+ , _smdName :: !Text+ , _smdCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpacesMessagesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'smdXgafv'+--+-- * 'smdUploadProtocol'+--+-- * 'smdAccessToken'+--+-- * 'smdUploadType'+--+-- * 'smdName'+--+-- * 'smdCallback'+spacesMessagesDelete+ :: Text -- ^ 'smdName'+ -> SpacesMessagesDelete+spacesMessagesDelete pSmdName_ =+ SpacesMessagesDelete'+ { _smdXgafv = Nothing+ , _smdUploadProtocol = Nothing+ , _smdAccessToken = Nothing+ , _smdUploadType = Nothing+ , _smdName = pSmdName_+ , _smdCallback = Nothing+ }++-- | V1 error format.+smdXgafv :: Lens' SpacesMessagesDelete (Maybe Xgafv)+smdXgafv = lens _smdXgafv (\ s a -> s{_smdXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+smdUploadProtocol :: Lens' SpacesMessagesDelete (Maybe Text)+smdUploadProtocol+ = lens _smdUploadProtocol+ (\ s a -> s{_smdUploadProtocol = a})++-- | OAuth access token.+smdAccessToken :: Lens' SpacesMessagesDelete (Maybe Text)+smdAccessToken+ = lens _smdAccessToken+ (\ s a -> s{_smdAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+smdUploadType :: Lens' SpacesMessagesDelete (Maybe Text)+smdUploadType+ = lens _smdUploadType+ (\ s a -> s{_smdUploadType = a})++-- | Required. Resource name of the message to be deleted, in the form+-- \"spaces\/*\/messages\/*\" Example:+-- spaces\/AAAAMpdlehY\/messages\/UMxbHmzDlr4.UMxbHmzDlr4+smdName :: Lens' SpacesMessagesDelete Text+smdName = lens _smdName (\ s a -> s{_smdName = a})++-- | JSONP+smdCallback :: Lens' SpacesMessagesDelete (Maybe Text)+smdCallback+ = lens _smdCallback (\ s a -> s{_smdCallback = a})++instance GoogleRequest SpacesMessagesDelete where+ type Rs SpacesMessagesDelete = Empty+ type Scopes SpacesMessagesDelete = '[]+ requestClient SpacesMessagesDelete'{..}+ = go _smdName _smdXgafv _smdUploadProtocol+ _smdAccessToken+ _smdUploadType+ _smdCallback+ (Just AltJSON)+ chatService+ where go+ = buildClient+ (Proxy :: Proxy SpacesMessagesDeleteResource)+ mempty
+ gen/Network/Google/Resource/Chat/Spaces/Messages/Get.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.Chat.Spaces.Messages.Get+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a message.+--+-- /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.messages.get@.+module Network.Google.Resource.Chat.Spaces.Messages.Get+ (+ -- * REST Resource+ SpacesMessagesGetResource++ -- * Creating a Request+ , spacesMessagesGet+ , SpacesMessagesGet++ -- * Request Lenses+ , smgXgafv+ , smgUploadProtocol+ , smgAccessToken+ , smgUploadType+ , smgName+ , smgCallback+ ) where++import Network.Google.Chat.Types+import Network.Google.Prelude++-- | A resource alias for @chat.spaces.messages.get@ method which the+-- 'SpacesMessagesGet' request conforms to.+type SpacesMessagesGetResource =+ "v1" :>+ Capture "name" Text :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :> Get '[JSON] Message++-- | Returns a message.+--+-- /See:/ 'spacesMessagesGet' smart constructor.+data SpacesMessagesGet = SpacesMessagesGet'+ { _smgXgafv :: !(Maybe Xgafv)+ , _smgUploadProtocol :: !(Maybe Text)+ , _smgAccessToken :: !(Maybe Text)+ , _smgUploadType :: !(Maybe Text)+ , _smgName :: !Text+ , _smgCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpacesMessagesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'smgXgafv'+--+-- * 'smgUploadProtocol'+--+-- * 'smgAccessToken'+--+-- * 'smgUploadType'+--+-- * 'smgName'+--+-- * 'smgCallback'+spacesMessagesGet+ :: Text -- ^ 'smgName'+ -> SpacesMessagesGet+spacesMessagesGet pSmgName_ =+ SpacesMessagesGet'+ { _smgXgafv = Nothing+ , _smgUploadProtocol = Nothing+ , _smgAccessToken = Nothing+ , _smgUploadType = Nothing+ , _smgName = pSmgName_+ , _smgCallback = Nothing+ }++-- | V1 error format.+smgXgafv :: Lens' SpacesMessagesGet (Maybe Xgafv)+smgXgafv = lens _smgXgafv (\ s a -> s{_smgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+smgUploadProtocol :: Lens' SpacesMessagesGet (Maybe Text)+smgUploadProtocol+ = lens _smgUploadProtocol+ (\ s a -> s{_smgUploadProtocol = a})++-- | OAuth access token.+smgAccessToken :: Lens' SpacesMessagesGet (Maybe Text)+smgAccessToken+ = lens _smgAccessToken+ (\ s a -> s{_smgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+smgUploadType :: Lens' SpacesMessagesGet (Maybe Text)+smgUploadType+ = lens _smgUploadType+ (\ s a -> s{_smgUploadType = a})++-- | Required. Resource name of the message to be retrieved, in the form+-- \"spaces\/*\/messages\/*\". Example:+-- spaces\/AAAAMpdlehY\/messages\/UMxbHmzDlr4.UMxbHmzDlr4+smgName :: Lens' SpacesMessagesGet Text+smgName = lens _smgName (\ s a -> s{_smgName = a})++-- | JSONP+smgCallback :: Lens' SpacesMessagesGet (Maybe Text)+smgCallback+ = lens _smgCallback (\ s a -> s{_smgCallback = a})++instance GoogleRequest SpacesMessagesGet where+ type Rs SpacesMessagesGet = Message+ type Scopes SpacesMessagesGet = '[]+ requestClient SpacesMessagesGet'{..}+ = go _smgName _smgXgafv _smgUploadProtocol+ _smgAccessToken+ _smgUploadType+ _smgCallback+ (Just AltJSON)+ chatService+ where go+ = buildClient+ (Proxy :: Proxy SpacesMessagesGetResource)+ mempty
+ gen/Network/Google/Resource/Chat/Spaces/Messages/Update.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.Chat.Spaces.Messages.Update+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a message.+--+-- /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.messages.update@.+module Network.Google.Resource.Chat.Spaces.Messages.Update+ (+ -- * REST Resource+ SpacesMessagesUpdateResource++ -- * Creating a Request+ , spacesMessagesUpdate+ , SpacesMessagesUpdate++ -- * Request Lenses+ , smuXgafv+ , smuUploadProtocol+ , smuUpdateMask+ , smuAccessToken+ , smuUploadType+ , smuPayload+ , smuName+ , smuCallback+ ) where++import Network.Google.Chat.Types+import Network.Google.Prelude++-- | A resource alias for @chat.spaces.messages.update@ method which the+-- 'SpacesMessagesUpdate' request conforms to.+type SpacesMessagesUpdateResource =+ "v1" :>+ Capture "name" Text :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "updateMask" GFieldMask :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ ReqBody '[JSON] Message :> Put '[JSON] Message++-- | Updates a message.+--+-- /See:/ 'spacesMessagesUpdate' smart constructor.+data SpacesMessagesUpdate = SpacesMessagesUpdate'+ { _smuXgafv :: !(Maybe Xgafv)+ , _smuUploadProtocol :: !(Maybe Text)+ , _smuUpdateMask :: !(Maybe GFieldMask)+ , _smuAccessToken :: !(Maybe Text)+ , _smuUploadType :: !(Maybe Text)+ , _smuPayload :: !Message+ , _smuName :: !Text+ , _smuCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SpacesMessagesUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'smuXgafv'+--+-- * 'smuUploadProtocol'+--+-- * 'smuUpdateMask'+--+-- * 'smuAccessToken'+--+-- * 'smuUploadType'+--+-- * 'smuPayload'+--+-- * 'smuName'+--+-- * 'smuCallback'+spacesMessagesUpdate+ :: Message -- ^ 'smuPayload'+ -> Text -- ^ 'smuName'+ -> SpacesMessagesUpdate+spacesMessagesUpdate pSmuPayload_ pSmuName_ =+ SpacesMessagesUpdate'+ { _smuXgafv = Nothing+ , _smuUploadProtocol = Nothing+ , _smuUpdateMask = Nothing+ , _smuAccessToken = Nothing+ , _smuUploadType = Nothing+ , _smuPayload = pSmuPayload_+ , _smuName = pSmuName_+ , _smuCallback = Nothing+ }++-- | V1 error format.+smuXgafv :: Lens' SpacesMessagesUpdate (Maybe Xgafv)+smuXgafv = lens _smuXgafv (\ s a -> s{_smuXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+smuUploadProtocol :: Lens' SpacesMessagesUpdate (Maybe Text)+smuUploadProtocol+ = lens _smuUploadProtocol+ (\ s a -> s{_smuUploadProtocol = a})++-- | Required. The field paths to be updated. Currently supported field+-- paths: \"text\", \"cards\".+smuUpdateMask :: Lens' SpacesMessagesUpdate (Maybe GFieldMask)+smuUpdateMask+ = lens _smuUpdateMask+ (\ s a -> s{_smuUpdateMask = a})++-- | OAuth access token.+smuAccessToken :: Lens' SpacesMessagesUpdate (Maybe Text)+smuAccessToken+ = lens _smuAccessToken+ (\ s a -> s{_smuAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+smuUploadType :: Lens' SpacesMessagesUpdate (Maybe Text)+smuUploadType+ = lens _smuUploadType+ (\ s a -> s{_smuUploadType = a})++-- | Multipart request metadata.+smuPayload :: Lens' SpacesMessagesUpdate Message+smuPayload+ = lens _smuPayload (\ s a -> s{_smuPayload = a})++-- | Resource name, in the form \"spaces\/*\/messages\/*\". Example:+-- spaces\/AAAAMpdlehY\/messages\/UMxbHmzDlr4.UMxbHmzDlr4+smuName :: Lens' SpacesMessagesUpdate Text+smuName = lens _smuName (\ s a -> s{_smuName = a})++-- | JSONP+smuCallback :: Lens' SpacesMessagesUpdate (Maybe Text)+smuCallback+ = lens _smuCallback (\ s a -> s{_smuCallback = a})++instance GoogleRequest SpacesMessagesUpdate where+ type Rs SpacesMessagesUpdate = Message+ type Scopes SpacesMessagesUpdate = '[]+ requestClient SpacesMessagesUpdate'{..}+ = go _smuName _smuXgafv _smuUploadProtocol+ _smuUpdateMask+ _smuAccessToken+ _smuUploadType+ _smuCallback+ (Just AltJSON)+ _smuPayload+ chatService+ where go+ = buildClient+ (Proxy :: Proxy SpacesMessagesUpdateResource)+ mempty
+ gogol-chat.cabal view
@@ -0,0 +1,53 @@+name: gogol-chat+version: 0.4.0+synopsis: Google Hangouts Chat SDK.+homepage: https://github.com/brendanhay/gogol+bug-reports: https://github.com/brendanhay/gogol/issues+license: OtherLicense+license-file: LICENSE+author: Brendan Hay+maintainer: Brendan Hay <brendan.g.hay@gmail.com>+copyright: Copyright (c) 2015-2016 Brendan Hay+category: Network, Google, Cloud+build-type: Simple+cabal-version: >= 1.10+extra-source-files: README.md src/.gitkeep++description:+ Enables bots to fetch information and perform actions in Hangouts Chat.+ .+ /Warning:/ This is an experimental prototype/preview release which is still+ under exploratory development and not intended for public use, caveat emptor!+ .+ This library is compatible with version @v1@+ of the API.++source-repository head+ type: git+ location: git://github.com/brendanhay/gogol.git++library+ default-language: Haskell2010+ hs-source-dirs: src gen++ ghc-options: -Wall++ exposed-modules:+ Network.Google.Chat+ , Network.Google.Chat.Types+ , Network.Google.Resource.Chat.Spaces.Get+ , Network.Google.Resource.Chat.Spaces.List+ , Network.Google.Resource.Chat.Spaces.Members.Get+ , Network.Google.Resource.Chat.Spaces.Members.List+ , Network.Google.Resource.Chat.Spaces.Messages.Create+ , Network.Google.Resource.Chat.Spaces.Messages.Delete+ , Network.Google.Resource.Chat.Spaces.Messages.Get+ , Network.Google.Resource.Chat.Spaces.Messages.Update++ other-modules:+ Network.Google.Chat.Types.Product+ , Network.Google.Chat.Types.Sum++ build-depends:+ gogol-core == 0.4.0.*+ , base >= 4.7 && < 5
+ src/.gitkeep view