packages feed

gogol-apps-calendar (empty) → 0.0.1

raw patch · 45 files changed

+9750/−0 lines, 45 filesdep +basedep +gogol-coresetup-changed

Dependencies added: base, gogol-core

Files

+ 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-apps-calendar++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.0.1`+++## Description++A client library for the Google Calendar.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`gogol-apps-calendar` 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/AppsCalendar.hs view
@@ -0,0 +1,584 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.AppsCalendar+-- Copyright   : (c) 2015 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)+--+-- Lets you manipulate events and other calendar data.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference>+module Network.Google.AppsCalendar+    (+    -- * Service Configuration+      appsCalendarService++    -- * API Declaration+    , AppsCalendarAPI++    -- * Resources++    -- ** calendar.acl.delete+    , module Network.Google.Resource.Calendar.ACL.Delete++    -- ** calendar.acl.get+    , module Network.Google.Resource.Calendar.ACL.Get++    -- ** calendar.acl.insert+    , module Network.Google.Resource.Calendar.ACL.Insert++    -- ** calendar.acl.list+    , module Network.Google.Resource.Calendar.ACL.List++    -- ** calendar.acl.patch+    , module Network.Google.Resource.Calendar.ACL.Patch++    -- ** calendar.acl.update+    , module Network.Google.Resource.Calendar.ACL.Update++    -- ** calendar.acl.watch+    , module Network.Google.Resource.Calendar.ACL.Watch++    -- ** calendar.calendarList.delete+    , module Network.Google.Resource.Calendar.CalendarList.Delete++    -- ** calendar.calendarList.get+    , module Network.Google.Resource.Calendar.CalendarList.Get++    -- ** calendar.calendarList.insert+    , module Network.Google.Resource.Calendar.CalendarList.Insert++    -- ** calendar.calendarList.list+    , module Network.Google.Resource.Calendar.CalendarList.List++    -- ** calendar.calendarList.patch+    , module Network.Google.Resource.Calendar.CalendarList.Patch++    -- ** calendar.calendarList.update+    , module Network.Google.Resource.Calendar.CalendarList.Update++    -- ** calendar.calendarList.watch+    , module Network.Google.Resource.Calendar.CalendarList.Watch++    -- ** calendar.calendars.clear+    , module Network.Google.Resource.Calendar.Calendars.Clear++    -- ** calendar.calendars.delete+    , module Network.Google.Resource.Calendar.Calendars.Delete++    -- ** calendar.calendars.get+    , module Network.Google.Resource.Calendar.Calendars.Get++    -- ** calendar.calendars.insert+    , module Network.Google.Resource.Calendar.Calendars.Insert++    -- ** calendar.calendars.patch+    , module Network.Google.Resource.Calendar.Calendars.Patch++    -- ** calendar.calendars.update+    , module Network.Google.Resource.Calendar.Calendars.Update++    -- ** calendar.channels.stop+    , module Network.Google.Resource.Calendar.Channels.Stop++    -- ** calendar.colors.get+    , module Network.Google.Resource.Calendar.Colors.Get++    -- ** calendar.events.delete+    , module Network.Google.Resource.Calendar.Events.Delete++    -- ** calendar.events.get+    , module Network.Google.Resource.Calendar.Events.Get++    -- ** calendar.events.import+    , module Network.Google.Resource.Calendar.Events.Import++    -- ** calendar.events.insert+    , module Network.Google.Resource.Calendar.Events.Insert++    -- ** calendar.events.instances+    , module Network.Google.Resource.Calendar.Events.Instances++    -- ** calendar.events.list+    , module Network.Google.Resource.Calendar.Events.List++    -- ** calendar.events.move+    , module Network.Google.Resource.Calendar.Events.Move++    -- ** calendar.events.patch+    , module Network.Google.Resource.Calendar.Events.Patch++    -- ** calendar.events.quickAdd+    , module Network.Google.Resource.Calendar.Events.QuickAdd++    -- ** calendar.events.update+    , module Network.Google.Resource.Calendar.Events.Update++    -- ** calendar.events.watch+    , module Network.Google.Resource.Calendar.Events.Watch++    -- ** calendar.freebusy.query+    , module Network.Google.Resource.Calendar.FreeBusy.Query++    -- ** calendar.settings.get+    , module Network.Google.Resource.Calendar.Settings.Get++    -- ** calendar.settings.list+    , module Network.Google.Resource.Calendar.Settings.List++    -- ** calendar.settings.watch+    , module Network.Google.Resource.Calendar.Settings.Watch++    -- * Types++    -- ** CalendarListEntry+    , CalendarListEntry+    , calendarListEntry+    , cleSummary+    , cleEtag+    , cleLocation+    , cleKind+    , cleNotificationSettings+    , cleBackgRoundColor+    , cleForegRoundColor+    , cleDefaultReminders+    , cleSelected+    , clePrimary+    , cleHidden+    , cleId+    , cleDeleted+    , cleAccessRole+    , cleSummaryOverride+    , cleColorId+    , cleTimeZone+    , cleDescription++    -- ** Event+    , Event+    , event+    , eSummary+    , eOriginalStartTime+    , eCreator+    , eStatus+    , eGuestsCanModify+    , eEtag+    , eAttachments+    , eLocked+    , eLocation+    , eAttendees+    , eReminders+    , eKind+    , eCreated+    , eTransparency+    , eRecurringEventId+    , eStart+    , ePrivateCopy+    , eEndTimeUnspecified+    , eExtendedProperties+    , eVisibility+    , eGuestsCanInviteOthers+    , eRecurrence+    , eGadget+    , eSequence+    , eICalUId+    , eEnd+    , eAttendeesOmitted+    , eSource+    , eId+    , eHTMLLink+    , eUpdated+    , eColorId+    , eAnyoneCanAddSelf+    , eGuestsCanSeeOtherGuests+    , eHangoutLink+    , eDescription+    , eOrganizer++    -- ** CalendarListEntryNotificationSettings+    , CalendarListEntryNotificationSettings+    , calendarListEntryNotificationSettings+    , clensNotifications++    -- ** ACLRuleScope+    , ACLRuleScope+    , aclRuleScope+    , arsValue+    , arsType++    -- ** ColorsEvent+    , ColorsEvent+    , colorsEvent+    , ceAddtional++    -- ** Settings+    , Settings+    , settings+    , sEtag+    , sNextPageToken+    , sKind+    , sItems+    , sNextSyncToken++    -- ** FreeBusyRequestItem+    , FreeBusyRequestItem+    , freeBusyRequestItem+    , fbriId++    -- ** EventAttachment+    , EventAttachment+    , eventAttachment+    , eaFileURL+    , eaIconLink+    , eaMimeType+    , eaTitle+    , eaFileId++    -- ** TimePeriod+    , TimePeriod+    , timePeriod+    , tpStart+    , tpEnd++    -- ** EventCreator+    , EventCreator+    , eventCreator+    , ecEmail+    , ecSelf+    , ecDisplayName+    , ecId++    -- ** Error'+    , Error'+    , error'+    , eDomain+    , eReason++    -- ** ColorDefinition+    , ColorDefinition+    , colorDefinition+    , cdForegRound+    , cdBackgRound++    -- ** EventsListOrderBy+    , EventsListOrderBy (..)++    -- ** Channel+    , Channel+    , channel+    , cResourceURI+    , cResourceId+    , cKind+    , cExpiration+    , cToken+    , cAddress+    , cPayload+    , cParams+    , cId+    , cType++    -- ** FreeBusyCalendar+    , FreeBusyCalendar+    , freeBusyCalendar+    , fbcBusy+    , fbcErrors++    -- ** Setting+    , Setting+    , setting+    , setEtag+    , setKind+    , setValue+    , setId++    -- ** FreeBusyResponseGroups+    , FreeBusyResponseGroups+    , freeBusyResponseGroups+    , fbrgAddtional++    -- ** EventReminders+    , EventReminders+    , eventReminders+    , erOverrides+    , erUseDefault++    -- ** ColorsCalendar+    , ColorsCalendar+    , colorsCalendar+    , ccAddtional++    -- ** CalendarNotification+    , CalendarNotification+    , calendarNotification+    , cnMethod+    , cnType++    -- ** EventExtendedPropertiesPrivate+    , EventExtendedPropertiesPrivate+    , eventExtendedPropertiesPrivate+    , eeppAddtional++    -- ** ChannelParams+    , ChannelParams+    , channelParams+    , cpAddtional++    -- ** Events+    , Events+    , events+    , eveSummary+    , eveEtag+    , eveNextPageToken+    , eveKind+    , eveItems+    , eveDefaultReminders+    , eveUpdated+    , eveAccessRole+    , eveTimeZone+    , eveNextSyncToken+    , eveDescription++    -- ** EventAttendee+    , EventAttendee+    , eventAttendee+    , eaEmail+    , eaResponseStatus+    , eaSelf+    , eaResource+    , eaAdditionalGuests+    , eaDisplayName+    , eaId+    , eaComment+    , eaOptional+    , eaOrganizer++    -- ** Calendar+    , Calendar+    , calendar+    , calSummary+    , calEtag+    , calLocation+    , calKind+    , calId+    , calTimeZone+    , calDescription++    -- ** FreeBusyResponse+    , FreeBusyResponse+    , freeBusyResponse+    , fbrGroups+    , fbrTimeMin+    , fbrKind+    , fbrCalendars+    , fbrTimeMax++    -- ** EventReminder+    , EventReminder+    , eventReminder+    , erMethod+    , erMinutes++    -- ** EventExtendedProperties+    , EventExtendedProperties+    , eventExtendedProperties+    , eepPrivate+    , eepShared++    -- ** EventDateTime+    , EventDateTime+    , eventDateTime+    , edtDate+    , edtTimeZone+    , edtDateTime++    -- ** EventOrganizer+    , EventOrganizer+    , eventOrganizer+    , eoEmail+    , eoSelf+    , eoDisplayName+    , eoId++    -- ** CalendarList+    , CalendarList+    , calendarList+    , clEtag+    , clNextPageToken+    , clKind+    , clItems+    , clNextSyncToken++    -- ** CalendarListListMinAccessRole+    , CalendarListListMinAccessRole (..)++    -- ** EventGadget+    , EventGadget+    , eventGadget+    , egHeight+    , egDisplay+    , egPreferences+    , egLink+    , egIconLink+    , egWidth+    , egTitle+    , egType++    -- ** EventGadgetPreferences+    , EventGadgetPreferences+    , eventGadgetPreferences+    , egpAddtional++    -- ** FreeBusyRequest+    , FreeBusyRequest+    , freeBusyRequest+    , fCalendarExpansionMax+    , fTimeMin+    , fItems+    , fGroupExpansionMax+    , fTimeZone+    , fTimeMax++    -- ** ACLRule+    , ACLRule+    , aclRule+    , arEtag+    , arKind+    , arRole+    , arScope+    , arId++    -- ** EventsWatchOrderBy+    , EventsWatchOrderBy (..)++    -- ** EventExtendedPropertiesShared+    , EventExtendedPropertiesShared+    , eventExtendedPropertiesShared+    , eepsAddtional++    -- ** CalendarListWatchMinAccessRole+    , CalendarListWatchMinAccessRole (..)++    -- ** FreeBusyResponseCalendars+    , FreeBusyResponseCalendars+    , freeBusyResponseCalendars+    , fbrcAddtional++    -- ** ACL+    , ACL+    , acl+    , aEtag+    , aNextPageToken+    , aKind+    , aItems+    , aNextSyncToken++    -- ** Colors+    , Colors+    , colors+    , colEvent+    , colKind+    , colCalendar+    , colUpdated++    -- ** FreeBusyGroup+    , FreeBusyGroup+    , freeBusyGroup+    , fbgCalendars+    , fbgErrors++    -- ** EventSource+    , EventSource+    , eventSource+    , esURL+    , esTitle+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude+import           Network.Google.Resource.Calendar.ACL.Delete+import           Network.Google.Resource.Calendar.ACL.Get+import           Network.Google.Resource.Calendar.ACL.Insert+import           Network.Google.Resource.Calendar.ACL.List+import           Network.Google.Resource.Calendar.ACL.Patch+import           Network.Google.Resource.Calendar.ACL.Update+import           Network.Google.Resource.Calendar.ACL.Watch+import           Network.Google.Resource.Calendar.CalendarList.Delete+import           Network.Google.Resource.Calendar.CalendarList.Get+import           Network.Google.Resource.Calendar.CalendarList.Insert+import           Network.Google.Resource.Calendar.CalendarList.List+import           Network.Google.Resource.Calendar.CalendarList.Patch+import           Network.Google.Resource.Calendar.CalendarList.Update+import           Network.Google.Resource.Calendar.CalendarList.Watch+import           Network.Google.Resource.Calendar.Calendars.Clear+import           Network.Google.Resource.Calendar.Calendars.Delete+import           Network.Google.Resource.Calendar.Calendars.Get+import           Network.Google.Resource.Calendar.Calendars.Insert+import           Network.Google.Resource.Calendar.Calendars.Patch+import           Network.Google.Resource.Calendar.Calendars.Update+import           Network.Google.Resource.Calendar.Channels.Stop+import           Network.Google.Resource.Calendar.Colors.Get+import           Network.Google.Resource.Calendar.Events.Delete+import           Network.Google.Resource.Calendar.Events.Get+import           Network.Google.Resource.Calendar.Events.Import+import           Network.Google.Resource.Calendar.Events.Insert+import           Network.Google.Resource.Calendar.Events.Instances+import           Network.Google.Resource.Calendar.Events.List+import           Network.Google.Resource.Calendar.Events.Move+import           Network.Google.Resource.Calendar.Events.Patch+import           Network.Google.Resource.Calendar.Events.QuickAdd+import           Network.Google.Resource.Calendar.Events.Update+import           Network.Google.Resource.Calendar.Events.Watch+import           Network.Google.Resource.Calendar.FreeBusy.Query+import           Network.Google.Resource.Calendar.Settings.Get+import           Network.Google.Resource.Calendar.Settings.List+import           Network.Google.Resource.Calendar.Settings.Watch++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Calendar API service.+type AppsCalendarAPI =+     SettingsListResource :<|> SettingsGetResource :<|>+       SettingsWatchResource+       :<|> ChannelsStopResource+       :<|> CalendarsInsertResource+       :<|> CalendarsPatchResource+       :<|> CalendarsGetResource+       :<|> CalendarsClearResource+       :<|> CalendarsDeleteResource+       :<|> CalendarsUpdateResource+       :<|> EventsQuickAddResource+       :<|> EventsInsertResource+       :<|> EventsListResource+       :<|> EventsPatchResource+       :<|> EventsGetResource+       :<|> EventsInstancesResource+       :<|> EventsImportResource+       :<|> EventsDeleteResource+       :<|> EventsUpdateResource+       :<|> EventsMoveResource+       :<|> EventsWatchResource+       :<|> CalendarListInsertResource+       :<|> CalendarListListResource+       :<|> CalendarListPatchResource+       :<|> CalendarListGetResource+       :<|> CalendarListDeleteResource+       :<|> CalendarListUpdateResource+       :<|> CalendarListWatchResource+       :<|> ACLInsertResource+       :<|> ACLListResource+       :<|> ACLPatchResource+       :<|> ACLGetResource+       :<|> ACLDeleteResource+       :<|> ACLUpdateResource+       :<|> ACLWatchResource+       :<|> ColorsGetResource+       :<|> FreeBusyQueryResource
+ gen/Network/Google/AppsCalendar/Types.hs view
@@ -0,0 +1,402 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.AppsCalendar.Types+-- Copyright   : (c) 2015 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.AppsCalendar.Types+    (+    -- * Service Configuration+      appsCalendarService++    -- * OAuth Scopes+    , calendarScope+    , calendarReadonlyScope++    -- * CalendarListEntry+    , CalendarListEntry+    , calendarListEntry+    , cleSummary+    , cleEtag+    , cleLocation+    , cleKind+    , cleNotificationSettings+    , cleBackgRoundColor+    , cleForegRoundColor+    , cleDefaultReminders+    , cleSelected+    , clePrimary+    , cleHidden+    , cleId+    , cleDeleted+    , cleAccessRole+    , cleSummaryOverride+    , cleColorId+    , cleTimeZone+    , cleDescription++    -- * Event+    , Event+    , event+    , eSummary+    , eOriginalStartTime+    , eCreator+    , eStatus+    , eGuestsCanModify+    , eEtag+    , eAttachments+    , eLocked+    , eLocation+    , eAttendees+    , eReminders+    , eKind+    , eCreated+    , eTransparency+    , eRecurringEventId+    , eStart+    , ePrivateCopy+    , eEndTimeUnspecified+    , eExtendedProperties+    , eVisibility+    , eGuestsCanInviteOthers+    , eRecurrence+    , eGadget+    , eSequence+    , eICalUId+    , eEnd+    , eAttendeesOmitted+    , eSource+    , eId+    , eHTMLLink+    , eUpdated+    , eColorId+    , eAnyoneCanAddSelf+    , eGuestsCanSeeOtherGuests+    , eHangoutLink+    , eDescription+    , eOrganizer++    -- * CalendarListEntryNotificationSettings+    , CalendarListEntryNotificationSettings+    , calendarListEntryNotificationSettings+    , clensNotifications++    -- * ACLRuleScope+    , ACLRuleScope+    , aclRuleScope+    , arsValue+    , arsType++    -- * ColorsEvent+    , ColorsEvent+    , colorsEvent+    , ceAddtional++    -- * Settings+    , Settings+    , settings+    , sEtag+    , sNextPageToken+    , sKind+    , sItems+    , sNextSyncToken++    -- * FreeBusyRequestItem+    , FreeBusyRequestItem+    , freeBusyRequestItem+    , fbriId++    -- * EventAttachment+    , EventAttachment+    , eventAttachment+    , eaFileURL+    , eaIconLink+    , eaMimeType+    , eaTitle+    , eaFileId++    -- * TimePeriod+    , TimePeriod+    , timePeriod+    , tpStart+    , tpEnd++    -- * EventCreator+    , EventCreator+    , eventCreator+    , ecEmail+    , ecSelf+    , ecDisplayName+    , ecId++    -- * Error'+    , Error'+    , error'+    , eDomain+    , eReason++    -- * ColorDefinition+    , ColorDefinition+    , colorDefinition+    , cdForegRound+    , cdBackgRound++    -- * EventsListOrderBy+    , EventsListOrderBy (..)++    -- * Channel+    , Channel+    , channel+    , cResourceURI+    , cResourceId+    , cKind+    , cExpiration+    , cToken+    , cAddress+    , cPayload+    , cParams+    , cId+    , cType++    -- * FreeBusyCalendar+    , FreeBusyCalendar+    , freeBusyCalendar+    , fbcBusy+    , fbcErrors++    -- * Setting+    , Setting+    , setting+    , setEtag+    , setKind+    , setValue+    , setId++    -- * FreeBusyResponseGroups+    , FreeBusyResponseGroups+    , freeBusyResponseGroups+    , fbrgAddtional++    -- * EventReminders+    , EventReminders+    , eventReminders+    , erOverrides+    , erUseDefault++    -- * ColorsCalendar+    , ColorsCalendar+    , colorsCalendar+    , ccAddtional++    -- * CalendarNotification+    , CalendarNotification+    , calendarNotification+    , cnMethod+    , cnType++    -- * EventExtendedPropertiesPrivate+    , EventExtendedPropertiesPrivate+    , eventExtendedPropertiesPrivate+    , eeppAddtional++    -- * ChannelParams+    , ChannelParams+    , channelParams+    , cpAddtional++    -- * Events+    , Events+    , events+    , eveSummary+    , eveEtag+    , eveNextPageToken+    , eveKind+    , eveItems+    , eveDefaultReminders+    , eveUpdated+    , eveAccessRole+    , eveTimeZone+    , eveNextSyncToken+    , eveDescription++    -- * EventAttendee+    , EventAttendee+    , eventAttendee+    , eaEmail+    , eaResponseStatus+    , eaSelf+    , eaResource+    , eaAdditionalGuests+    , eaDisplayName+    , eaId+    , eaComment+    , eaOptional+    , eaOrganizer++    -- * Calendar+    , Calendar+    , calendar+    , calSummary+    , calEtag+    , calLocation+    , calKind+    , calId+    , calTimeZone+    , calDescription++    -- * FreeBusyResponse+    , FreeBusyResponse+    , freeBusyResponse+    , fbrGroups+    , fbrTimeMin+    , fbrKind+    , fbrCalendars+    , fbrTimeMax++    -- * EventReminder+    , EventReminder+    , eventReminder+    , erMethod+    , erMinutes++    -- * EventExtendedProperties+    , EventExtendedProperties+    , eventExtendedProperties+    , eepPrivate+    , eepShared++    -- * EventDateTime+    , EventDateTime+    , eventDateTime+    , edtDate+    , edtTimeZone+    , edtDateTime++    -- * EventOrganizer+    , EventOrganizer+    , eventOrganizer+    , eoEmail+    , eoSelf+    , eoDisplayName+    , eoId++    -- * CalendarList+    , CalendarList+    , calendarList+    , clEtag+    , clNextPageToken+    , clKind+    , clItems+    , clNextSyncToken++    -- * CalendarListListMinAccessRole+    , CalendarListListMinAccessRole (..)++    -- * EventGadget+    , EventGadget+    , eventGadget+    , egHeight+    , egDisplay+    , egPreferences+    , egLink+    , egIconLink+    , egWidth+    , egTitle+    , egType++    -- * EventGadgetPreferences+    , EventGadgetPreferences+    , eventGadgetPreferences+    , egpAddtional++    -- * FreeBusyRequest+    , FreeBusyRequest+    , freeBusyRequest+    , fCalendarExpansionMax+    , fTimeMin+    , fItems+    , fGroupExpansionMax+    , fTimeZone+    , fTimeMax++    -- * ACLRule+    , ACLRule+    , aclRule+    , arEtag+    , arKind+    , arRole+    , arScope+    , arId++    -- * EventsWatchOrderBy+    , EventsWatchOrderBy (..)++    -- * EventExtendedPropertiesShared+    , EventExtendedPropertiesShared+    , eventExtendedPropertiesShared+    , eepsAddtional++    -- * CalendarListWatchMinAccessRole+    , CalendarListWatchMinAccessRole (..)++    -- * FreeBusyResponseCalendars+    , FreeBusyResponseCalendars+    , freeBusyResponseCalendars+    , fbrcAddtional++    -- * ACL+    , ACL+    , acl+    , aEtag+    , aNextPageToken+    , aKind+    , aItems+    , aNextSyncToken++    -- * Colors+    , Colors+    , colors+    , colEvent+    , colKind+    , colCalendar+    , colUpdated++    -- * FreeBusyGroup+    , FreeBusyGroup+    , freeBusyGroup+    , fbgCalendars+    , fbgErrors++    -- * EventSource+    , EventSource+    , eventSource+    , esURL+    , esTitle+    ) where++import           Network.Google.AppsCalendar.Types.Product+import           Network.Google.AppsCalendar.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v3' of the Calendar API. This contains the host and root path used as a starting point for constructing service requests.+appsCalendarService :: Service+appsCalendarService+  = defaultService (ServiceId "calendar:v3")+      "www.googleapis.com"++-- | Manage your calendars+calendarScope :: OAuthScope+calendarScope = "https://www.googleapis.com/auth/calendar";++-- | View your calendars+calendarReadonlyScope :: OAuthScope+calendarReadonlyScope = "https://www.googleapis.com/auth/calendar.readonly";
+ gen/Network/Google/AppsCalendar/Types/Product.hs view
@@ -0,0 +1,3278 @@+{-# 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.AppsCalendar.Types.Product+-- Copyright   : (c) 2015 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.AppsCalendar.Types.Product where++import           Network.Google.AppsCalendar.Types.Sum+import           Network.Google.Prelude++--+-- /See:/ 'calendarListEntry' smart constructor.+data CalendarListEntry = CalendarListEntry+    { _cleSummary              :: !(Maybe Text)+    , _cleEtag                 :: !(Maybe Text)+    , _cleLocation             :: !(Maybe Text)+    , _cleKind                 :: !Text+    , _cleNotificationSettings :: !(Maybe CalendarListEntryNotificationSettings)+    , _cleBackgRoundColor      :: !(Maybe Text)+    , _cleForegRoundColor      :: !(Maybe Text)+    , _cleDefaultReminders     :: !(Maybe [EventReminder])+    , _cleSelected             :: !Bool+    , _clePrimary              :: !Bool+    , _cleHidden               :: !Bool+    , _cleId                   :: !(Maybe Text)+    , _cleDeleted              :: !Bool+    , _cleAccessRole           :: !(Maybe Text)+    , _cleSummaryOverride      :: !(Maybe Text)+    , _cleColorId              :: !(Maybe Text)+    , _cleTimeZone             :: !(Maybe Text)+    , _cleDescription          :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarListEntry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cleSummary'+--+-- * 'cleEtag'+--+-- * 'cleLocation'+--+-- * 'cleKind'+--+-- * 'cleNotificationSettings'+--+-- * 'cleBackgRoundColor'+--+-- * 'cleForegRoundColor'+--+-- * 'cleDefaultReminders'+--+-- * 'cleSelected'+--+-- * 'clePrimary'+--+-- * 'cleHidden'+--+-- * 'cleId'+--+-- * 'cleDeleted'+--+-- * 'cleAccessRole'+--+-- * 'cleSummaryOverride'+--+-- * 'cleColorId'+--+-- * 'cleTimeZone'+--+-- * 'cleDescription'+calendarListEntry+    :: CalendarListEntry+calendarListEntry =+    CalendarListEntry+    { _cleSummary = Nothing+    , _cleEtag = Nothing+    , _cleLocation = Nothing+    , _cleKind = "calendar#calendarListEntry"+    , _cleNotificationSettings = Nothing+    , _cleBackgRoundColor = Nothing+    , _cleForegRoundColor = Nothing+    , _cleDefaultReminders = Nothing+    , _cleSelected = False+    , _clePrimary = False+    , _cleHidden = False+    , _cleId = Nothing+    , _cleDeleted = False+    , _cleAccessRole = Nothing+    , _cleSummaryOverride = Nothing+    , _cleColorId = Nothing+    , _cleTimeZone = Nothing+    , _cleDescription = Nothing+    }++-- | Title of the calendar. Read-only.+cleSummary :: Lens' CalendarListEntry (Maybe Text)+cleSummary+  = lens _cleSummary (\ s a -> s{_cleSummary = a})++-- | ETag of the resource.+cleEtag :: Lens' CalendarListEntry (Maybe Text)+cleEtag = lens _cleEtag (\ s a -> s{_cleEtag = a})++-- | Geographic location of the calendar as free-form text. Optional.+-- Read-only.+cleLocation :: Lens' CalendarListEntry (Maybe Text)+cleLocation+  = lens _cleLocation (\ s a -> s{_cleLocation = a})++-- | Type of the resource (\"calendar#calendarListEntry\").+cleKind :: Lens' CalendarListEntry Text+cleKind = lens _cleKind (\ s a -> s{_cleKind = a})++-- | The notifications that the authenticated user is receiving for this+-- calendar.+cleNotificationSettings :: Lens' CalendarListEntry (Maybe CalendarListEntryNotificationSettings)+cleNotificationSettings+  = lens _cleNotificationSettings+      (\ s a -> s{_cleNotificationSettings = a})++-- | The main color of the calendar in the hexadecimal format \"#0088aa\".+-- This property supersedes the index-based colorId property. To set or+-- change this property, you need to specify colorRgbFormat=true in the+-- parameters of the insert, update and patch methods. Optional.+cleBackgRoundColor :: Lens' CalendarListEntry (Maybe Text)+cleBackgRoundColor+  = lens _cleBackgRoundColor+      (\ s a -> s{_cleBackgRoundColor = a})++-- | The foreground color of the calendar in the hexadecimal format+-- \"#ffffff\". This property supersedes the index-based colorId property.+-- To set or change this property, you need to specify colorRgbFormat=true+-- in the parameters of the insert, update and patch methods. Optional.+cleForegRoundColor :: Lens' CalendarListEntry (Maybe Text)+cleForegRoundColor+  = lens _cleForegRoundColor+      (\ s a -> s{_cleForegRoundColor = a})++-- | The default reminders that the authenticated user has for this calendar.+cleDefaultReminders :: Lens' CalendarListEntry [EventReminder]+cleDefaultReminders+  = lens _cleDefaultReminders+      (\ s a -> s{_cleDefaultReminders = a})+      . _Default+      . _Coerce++-- | Whether the calendar content shows up in the calendar UI. Optional. The+-- default is False.+cleSelected :: Lens' CalendarListEntry Bool+cleSelected+  = lens _cleSelected (\ s a -> s{_cleSelected = a})++-- | Whether the calendar is the primary calendar of the authenticated user.+-- Read-only. Optional. The default is False.+clePrimary :: Lens' CalendarListEntry Bool+clePrimary+  = lens _clePrimary (\ s a -> s{_clePrimary = a})++-- | Whether the calendar has been hidden from the list. Optional. The+-- default is False.+cleHidden :: Lens' CalendarListEntry Bool+cleHidden+  = lens _cleHidden (\ s a -> s{_cleHidden = a})++-- | Identifier of the calendar.+cleId :: Lens' CalendarListEntry (Maybe Text)+cleId = lens _cleId (\ s a -> s{_cleId = a})++-- | Whether this calendar list entry has been deleted from the calendar+-- list. Read-only. Optional. The default is False.+cleDeleted :: Lens' CalendarListEntry Bool+cleDeleted+  = lens _cleDeleted (\ s a -> s{_cleDeleted = a})++-- | The effective access role that the authenticated user has on the+-- calendar. Read-only. Possible values are: - \"freeBusyReader\" -+-- Provides read access to free\/busy information. - \"reader\" - Provides+-- read access to the calendar. Private events will appear to users with+-- reader access, but event details will be hidden. - \"writer\" - Provides+-- read and write access to the calendar. Private events will appear to+-- users with writer access, and event details will be visible. - \"owner\"+-- - Provides ownership of the calendar. This role has all of the+-- permissions of the writer role with the additional ability to see and+-- manipulate ACLs.+cleAccessRole :: Lens' CalendarListEntry (Maybe Text)+cleAccessRole+  = lens _cleAccessRole+      (\ s a -> s{_cleAccessRole = a})++-- | The summary that the authenticated user has set for this calendar.+-- Optional.+cleSummaryOverride :: Lens' CalendarListEntry (Maybe Text)+cleSummaryOverride+  = lens _cleSummaryOverride+      (\ s a -> s{_cleSummaryOverride = a})++-- | The color of the calendar. This is an ID referring to an entry in the+-- calendar section of the colors definition (see the colors endpoint).+-- This property is superseded by the backgroundColor and foregroundColor+-- properties and can be ignored when using these properties. Optional.+cleColorId :: Lens' CalendarListEntry (Maybe Text)+cleColorId+  = lens _cleColorId (\ s a -> s{_cleColorId = a})++-- | The time zone of the calendar. Optional. Read-only.+cleTimeZone :: Lens' CalendarListEntry (Maybe Text)+cleTimeZone+  = lens _cleTimeZone (\ s a -> s{_cleTimeZone = a})++-- | Description of the calendar. Optional. Read-only.+cleDescription :: Lens' CalendarListEntry (Maybe Text)+cleDescription+  = lens _cleDescription+      (\ s a -> s{_cleDescription = a})++instance FromJSON CalendarListEntry where+        parseJSON+          = withObject "CalendarListEntry"+              (\ o ->+                 CalendarListEntry <$>+                   (o .:? "summary") <*> (o .:? "etag") <*>+                     (o .:? "location")+                     <*> (o .:? "kind" .!= "calendar#calendarListEntry")+                     <*> (o .:? "notificationSettings")+                     <*> (o .:? "backgroundColor")+                     <*> (o .:? "foregroundColor")+                     <*> (o .:? "defaultReminders" .!= mempty)+                     <*> (o .:? "selected" .!= False)+                     <*> (o .:? "primary" .!= False)+                     <*> (o .:? "hidden" .!= False)+                     <*> (o .:? "id")+                     <*> (o .:? "deleted" .!= False)+                     <*> (o .:? "accessRole")+                     <*> (o .:? "summaryOverride")+                     <*> (o .:? "colorId")+                     <*> (o .:? "timeZone")+                     <*> (o .:? "description"))++instance ToJSON CalendarListEntry where+        toJSON CalendarListEntry{..}+          = object+              (catMaybes+                 [("summary" .=) <$> _cleSummary,+                  ("etag" .=) <$> _cleEtag,+                  ("location" .=) <$> _cleLocation,+                  Just ("kind" .= _cleKind),+                  ("notificationSettings" .=) <$>+                    _cleNotificationSettings,+                  ("backgroundColor" .=) <$> _cleBackgRoundColor,+                  ("foregroundColor" .=) <$> _cleForegRoundColor,+                  ("defaultReminders" .=) <$> _cleDefaultReminders,+                  Just ("selected" .= _cleSelected),+                  Just ("primary" .= _clePrimary),+                  Just ("hidden" .= _cleHidden), ("id" .=) <$> _cleId,+                  Just ("deleted" .= _cleDeleted),+                  ("accessRole" .=) <$> _cleAccessRole,+                  ("summaryOverride" .=) <$> _cleSummaryOverride,+                  ("colorId" .=) <$> _cleColorId,+                  ("timeZone" .=) <$> _cleTimeZone,+                  ("description" .=) <$> _cleDescription])++--+-- /See:/ 'event' smart constructor.+data Event = Event+    { _eSummary                 :: !(Maybe Text)+    , _eOriginalStartTime       :: !(Maybe EventDateTime)+    , _eCreator                 :: !(Maybe EventCreator)+    , _eStatus                  :: !(Maybe Text)+    , _eGuestsCanModify         :: !Bool+    , _eEtag                    :: !(Maybe Text)+    , _eAttachments             :: !(Maybe [EventAttachment])+    , _eLocked                  :: !Bool+    , _eLocation                :: !(Maybe Text)+    , _eAttendees               :: !(Maybe [EventAttendee])+    , _eReminders               :: !(Maybe EventReminders)+    , _eKind                    :: !Text+    , _eCreated                 :: !(Maybe DateTime')+    , _eTransparency            :: !Text+    , _eRecurringEventId        :: !(Maybe Text)+    , _eStart                   :: !(Maybe EventDateTime)+    , _ePrivateCopy             :: !Bool+    , _eEndTimeUnspecified      :: !Bool+    , _eExtendedProperties      :: !(Maybe EventExtendedProperties)+    , _eVisibility              :: !Text+    , _eGuestsCanInviteOthers   :: !Bool+    , _eRecurrence              :: !(Maybe [Text])+    , _eGadget                  :: !(Maybe EventGadget)+    , _eSequence                :: !(Maybe (Textual Int32))+    , _eICalUId                 :: !(Maybe Text)+    , _eEnd                     :: !(Maybe EventDateTime)+    , _eAttendeesOmitted        :: !Bool+    , _eSource                  :: !(Maybe EventSource)+    , _eId                      :: !(Maybe Text)+    , _eHTMLLink                :: !(Maybe Text)+    , _eUpdated                 :: !(Maybe DateTime')+    , _eColorId                 :: !(Maybe Text)+    , _eAnyoneCanAddSelf        :: !Bool+    , _eGuestsCanSeeOtherGuests :: !Bool+    , _eHangoutLink             :: !(Maybe Text)+    , _eDescription             :: !(Maybe Text)+    , _eOrganizer               :: !(Maybe EventOrganizer)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Event' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eSummary'+--+-- * 'eOriginalStartTime'+--+-- * 'eCreator'+--+-- * 'eStatus'+--+-- * 'eGuestsCanModify'+--+-- * 'eEtag'+--+-- * 'eAttachments'+--+-- * 'eLocked'+--+-- * 'eLocation'+--+-- * 'eAttendees'+--+-- * 'eReminders'+--+-- * 'eKind'+--+-- * 'eCreated'+--+-- * 'eTransparency'+--+-- * 'eRecurringEventId'+--+-- * 'eStart'+--+-- * 'ePrivateCopy'+--+-- * 'eEndTimeUnspecified'+--+-- * 'eExtendedProperties'+--+-- * 'eVisibility'+--+-- * 'eGuestsCanInviteOthers'+--+-- * 'eRecurrence'+--+-- * 'eGadget'+--+-- * 'eSequence'+--+-- * 'eICalUId'+--+-- * 'eEnd'+--+-- * 'eAttendeesOmitted'+--+-- * 'eSource'+--+-- * 'eId'+--+-- * 'eHTMLLink'+--+-- * 'eUpdated'+--+-- * 'eColorId'+--+-- * 'eAnyoneCanAddSelf'+--+-- * 'eGuestsCanSeeOtherGuests'+--+-- * 'eHangoutLink'+--+-- * 'eDescription'+--+-- * 'eOrganizer'+event+    :: Event+event =+    Event+    { _eSummary = Nothing+    , _eOriginalStartTime = Nothing+    , _eCreator = Nothing+    , _eStatus = Nothing+    , _eGuestsCanModify = False+    , _eEtag = Nothing+    , _eAttachments = Nothing+    , _eLocked = False+    , _eLocation = Nothing+    , _eAttendees = Nothing+    , _eReminders = Nothing+    , _eKind = "calendar#event"+    , _eCreated = Nothing+    , _eTransparency = "opaque"+    , _eRecurringEventId = Nothing+    , _eStart = Nothing+    , _ePrivateCopy = False+    , _eEndTimeUnspecified = False+    , _eExtendedProperties = Nothing+    , _eVisibility = "default"+    , _eGuestsCanInviteOthers = True+    , _eRecurrence = Nothing+    , _eGadget = Nothing+    , _eSequence = Nothing+    , _eICalUId = Nothing+    , _eEnd = Nothing+    , _eAttendeesOmitted = False+    , _eSource = Nothing+    , _eId = Nothing+    , _eHTMLLink = Nothing+    , _eUpdated = Nothing+    , _eColorId = Nothing+    , _eAnyoneCanAddSelf = False+    , _eGuestsCanSeeOtherGuests = True+    , _eHangoutLink = Nothing+    , _eDescription = Nothing+    , _eOrganizer = Nothing+    }++-- | Title of the event.+eSummary :: Lens' Event (Maybe Text)+eSummary = lens _eSummary (\ s a -> s{_eSummary = a})++-- | For an instance of a recurring event, this is the time at which this+-- event would start according to the recurrence data in the recurring+-- event identified by recurringEventId. Immutable.+eOriginalStartTime :: Lens' Event (Maybe EventDateTime)+eOriginalStartTime+  = lens _eOriginalStartTime+      (\ s a -> s{_eOriginalStartTime = a})++-- | The creator of the event. Read-only.+eCreator :: Lens' Event (Maybe EventCreator)+eCreator = lens _eCreator (\ s a -> s{_eCreator = a})++-- | Status of the event. Optional. Possible values are: - \"confirmed\" -+-- The event is confirmed. This is the default status. - \"tentative\" -+-- The event is tentatively confirmed. - \"cancelled\" - The event is+-- cancelled.+eStatus :: Lens' Event (Maybe Text)+eStatus = lens _eStatus (\ s a -> s{_eStatus = a})++-- | Whether attendees other than the organizer can modify the event.+-- Optional. The default is False.+eGuestsCanModify :: Lens' Event Bool+eGuestsCanModify+  = lens _eGuestsCanModify+      (\ s a -> s{_eGuestsCanModify = a})++-- | ETag of the resource.+eEtag :: Lens' Event (Maybe Text)+eEtag = lens _eEtag (\ s a -> s{_eEtag = a})++-- | File attachments for the event. Currently only Google Drive attachments+-- are supported. In order to modify attachments the supportsAttachments+-- request parameter should be set to true. There can be at most 25+-- attachments per event,+eAttachments :: Lens' Event [EventAttachment]+eAttachments+  = lens _eAttachments (\ s a -> s{_eAttachments = a})+      . _Default+      . _Coerce++-- | Whether this is a locked event copy where no changes can be made to the+-- main event fields \"summary\", \"description\", \"location\", \"start\",+-- \"end\" or \"recurrence\". The default is False. Read-Only.+eLocked :: Lens' Event Bool+eLocked = lens _eLocked (\ s a -> s{_eLocked = a})++-- | Geographic location of the event as free-form text. Optional.+eLocation :: Lens' Event (Maybe Text)+eLocation+  = lens _eLocation (\ s a -> s{_eLocation = a})++-- | The attendees of the event. See the Events with attendees guide for more+-- information on scheduling events with other calendar users.+eAttendees :: Lens' Event [EventAttendee]+eAttendees+  = lens _eAttendees (\ s a -> s{_eAttendees = a}) .+      _Default+      . _Coerce++-- | Information about the event\'s reminders for the authenticated user.+eReminders :: Lens' Event (Maybe EventReminders)+eReminders+  = lens _eReminders (\ s a -> s{_eReminders = a})++-- | Type of the resource (\"calendar#event\").+eKind :: Lens' Event Text+eKind = lens _eKind (\ s a -> s{_eKind = a})++-- | Creation time of the event (as a RFC3339 timestamp). Read-only.+eCreated :: Lens' Event (Maybe UTCTime)+eCreated+  = lens _eCreated (\ s a -> s{_eCreated = a}) .+      mapping _DateTime++-- | Whether the event blocks time on the calendar. Optional. Possible values+-- are: - \"opaque\" - The event blocks time on the calendar. This is the+-- default value. - \"transparent\" - The event does not block time on the+-- calendar.+eTransparency :: Lens' Event Text+eTransparency+  = lens _eTransparency+      (\ s a -> s{_eTransparency = a})++-- | For an instance of a recurring event, this is the id of the recurring+-- event to which this instance belongs. Immutable.+eRecurringEventId :: Lens' Event (Maybe Text)+eRecurringEventId+  = lens _eRecurringEventId+      (\ s a -> s{_eRecurringEventId = a})++-- | The (inclusive) start time of the event. For a recurring event, this is+-- the start time of the first instance.+eStart :: Lens' Event (Maybe EventDateTime)+eStart = lens _eStart (\ s a -> s{_eStart = a})++-- | Whether this is a private event copy where changes are not shared with+-- other copies on other calendars. Optional. Immutable. The default is+-- False.+ePrivateCopy :: Lens' Event Bool+ePrivateCopy+  = lens _ePrivateCopy (\ s a -> s{_ePrivateCopy = a})++-- | Whether the end time is actually unspecified. An end time is still+-- provided for compatibility reasons, even if this attribute is set to+-- True. The default is False.+eEndTimeUnspecified :: Lens' Event Bool+eEndTimeUnspecified+  = lens _eEndTimeUnspecified+      (\ s a -> s{_eEndTimeUnspecified = a})++-- | Extended properties of the event.+eExtendedProperties :: Lens' Event (Maybe EventExtendedProperties)+eExtendedProperties+  = lens _eExtendedProperties+      (\ s a -> s{_eExtendedProperties = a})++-- | Visibility of the event. Optional. Possible values are: - \"default\" -+-- Uses the default visibility for events on the calendar. This is the+-- default value. - \"public\" - The event is public and event details are+-- visible to all readers of the calendar. - \"private\" - The event is+-- private and only event attendees may view event details. -+-- \"confidential\" - The event is private. This value is provided for+-- compatibility reasons.+eVisibility :: Lens' Event Text+eVisibility+  = lens _eVisibility (\ s a -> s{_eVisibility = a})++-- | Whether attendees other than the organizer can invite others to the+-- event. Optional. The default is True.+eGuestsCanInviteOthers :: Lens' Event Bool+eGuestsCanInviteOthers+  = lens _eGuestsCanInviteOthers+      (\ s a -> s{_eGuestsCanInviteOthers = a})++-- | List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as+-- specified in RFC5545. Note that DTSTART and DTEND lines are not allowed+-- in this field; event start and end times are specified in the start and+-- end fields. This field is omitted for single events or instances of+-- recurring events.+eRecurrence :: Lens' Event [Text]+eRecurrence+  = lens _eRecurrence (\ s a -> s{_eRecurrence = a}) .+      _Default+      . _Coerce++-- | A gadget that extends this event.+eGadget :: Lens' Event (Maybe EventGadget)+eGadget = lens _eGadget (\ s a -> s{_eGadget = a})++-- | Sequence number as per iCalendar.+eSequence :: Lens' Event (Maybe Int32)+eSequence+  = lens _eSequence (\ s a -> s{_eSequence = a}) .+      mapping _Coerce++-- | Event unique identifier as defined in RFC5545. It is used to uniquely+-- identify events accross calendaring systems and must be supplied when+-- importing events via the import method. Note that the icalUID and the id+-- are not identical and only one of them should be supplied at event+-- creation time. One difference in their semantics is that in recurring+-- events, all occurrences of one event have different ids while they all+-- share the same icalUIDs.+eICalUId :: Lens' Event (Maybe Text)+eICalUId = lens _eICalUId (\ s a -> s{_eICalUId = a})++-- | The (exclusive) end time of the event. For a recurring event, this is+-- the end time of the first instance.+eEnd :: Lens' Event (Maybe EventDateTime)+eEnd = lens _eEnd (\ s a -> s{_eEnd = a})++-- | Whether attendees may have been omitted from the event\'s+-- representation. When retrieving an event, this may be due to a+-- restriction specified by the maxAttendee query parameter. When updating+-- an event, this can be used to only update the participant\'s response.+-- Optional. The default is False.+eAttendeesOmitted :: Lens' Event Bool+eAttendeesOmitted+  = lens _eAttendeesOmitted+      (\ s a -> s{_eAttendeesOmitted = a})++-- | Source from which the event was created. For example, a web page, an+-- email message or any document identifiable by an URL with HTTP or HTTPS+-- scheme. Can only be seen or modified by the creator of the event.+eSource :: Lens' Event (Maybe EventSource)+eSource = lens _eSource (\ s a -> s{_eSource = a})++-- | Opaque identifier of the event. When creating new single or recurring+-- events, you can specify their IDs. Provided IDs must follow these rules:+-- - characters allowed in the ID are those used in base32hex encoding,+-- i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938+-- - the length of the ID must be between 5 and 1024 characters - the ID+-- must be unique per calendar Due to the globally distributed nature of+-- the system, we cannot guarantee that ID collisions will be detected at+-- event creation time. To minimize the risk of collisions we recommend+-- using an established UUID algorithm such as one described in RFC4122. If+-- you do not specify an ID, it will be automatically generated by the+-- server. Note that the icalUID and the id are not identical and only one+-- of them should be supplied at event creation time. One difference in+-- their semantics is that in recurring events, all occurrences of one+-- event have different ids while they all share the same icalUIDs.+eId :: Lens' Event (Maybe Text)+eId = lens _eId (\ s a -> s{_eId = a})++-- | An absolute link to this event in the Google Calendar Web UI. Read-only.+eHTMLLink :: Lens' Event (Maybe Text)+eHTMLLink+  = lens _eHTMLLink (\ s a -> s{_eHTMLLink = a})++-- | Last modification time of the event (as a RFC3339 timestamp). Read-only.+eUpdated :: Lens' Event (Maybe UTCTime)+eUpdated+  = lens _eUpdated (\ s a -> s{_eUpdated = a}) .+      mapping _DateTime++-- | The color of the event. This is an ID referring to an entry in the event+-- section of the colors definition (see the colors endpoint). Optional.+eColorId :: Lens' Event (Maybe Text)+eColorId = lens _eColorId (\ s a -> s{_eColorId = a})++-- | Whether anyone can invite themselves to the event. Optional. The default+-- is False.+eAnyoneCanAddSelf :: Lens' Event Bool+eAnyoneCanAddSelf+  = lens _eAnyoneCanAddSelf+      (\ s a -> s{_eAnyoneCanAddSelf = a})++-- | Whether attendees other than the organizer can see who the event\'s+-- attendees are. Optional. The default is True.+eGuestsCanSeeOtherGuests :: Lens' Event Bool+eGuestsCanSeeOtherGuests+  = lens _eGuestsCanSeeOtherGuests+      (\ s a -> s{_eGuestsCanSeeOtherGuests = a})++-- | An absolute link to the Google+ hangout associated with this event.+-- Read-only.+eHangoutLink :: Lens' Event (Maybe Text)+eHangoutLink+  = lens _eHangoutLink (\ s a -> s{_eHangoutLink = a})++-- | Description of the event. Optional.+eDescription :: Lens' Event (Maybe Text)+eDescription+  = lens _eDescription (\ s a -> s{_eDescription = a})++-- | The organizer of the event. If the organizer is also an attendee, this+-- is indicated with a separate entry in attendees with the organizer field+-- set to True. To change the organizer, use the move operation. Read-only,+-- except when importing an event.+eOrganizer :: Lens' Event (Maybe EventOrganizer)+eOrganizer+  = lens _eOrganizer (\ s a -> s{_eOrganizer = a})++instance FromJSON Event where+        parseJSON+          = withObject "Event"+              (\ o ->+                 Event <$>+                   (o .:? "summary") <*> (o .:? "originalStartTime") <*>+                     (o .:? "creator")+                     <*> (o .:? "status")+                     <*> (o .:? "guestsCanModify" .!= False)+                     <*> (o .:? "etag")+                     <*> (o .:? "attachments" .!= mempty)+                     <*> (o .:? "locked" .!= False)+                     <*> (o .:? "location")+                     <*> (o .:? "attendees" .!= mempty)+                     <*> (o .:? "reminders")+                     <*> (o .:? "kind" .!= "calendar#event")+                     <*> (o .:? "created")+                     <*> (o .:? "transparency" .!= "opaque")+                     <*> (o .:? "recurringEventId")+                     <*> (o .:? "start")+                     <*> (o .:? "privateCopy" .!= False)+                     <*> (o .:? "endTimeUnspecified" .!= False)+                     <*> (o .:? "extendedProperties")+                     <*> (o .:? "visibility" .!= "default")+                     <*> (o .:? "guestsCanInviteOthers" .!= True)+                     <*> (o .:? "recurrence" .!= mempty)+                     <*> (o .:? "gadget")+                     <*> (o .:? "sequence")+                     <*> (o .:? "iCalUID")+                     <*> (o .:? "end")+                     <*> (o .:? "attendeesOmitted" .!= False)+                     <*> (o .:? "source")+                     <*> (o .:? "id")+                     <*> (o .:? "htmlLink")+                     <*> (o .:? "updated")+                     <*> (o .:? "colorId")+                     <*> (o .:? "anyoneCanAddSelf" .!= False)+                     <*> (o .:? "guestsCanSeeOtherGuests" .!= True)+                     <*> (o .:? "hangoutLink")+                     <*> (o .:? "description")+                     <*> (o .:? "organizer"))++instance ToJSON Event where+        toJSON Event{..}+          = object+              (catMaybes+                 [("summary" .=) <$> _eSummary,+                  ("originalStartTime" .=) <$> _eOriginalStartTime,+                  ("creator" .=) <$> _eCreator,+                  ("status" .=) <$> _eStatus,+                  Just ("guestsCanModify" .= _eGuestsCanModify),+                  ("etag" .=) <$> _eEtag,+                  ("attachments" .=) <$> _eAttachments,+                  Just ("locked" .= _eLocked),+                  ("location" .=) <$> _eLocation,+                  ("attendees" .=) <$> _eAttendees,+                  ("reminders" .=) <$> _eReminders,+                  Just ("kind" .= _eKind),+                  ("created" .=) <$> _eCreated,+                  Just ("transparency" .= _eTransparency),+                  ("recurringEventId" .=) <$> _eRecurringEventId,+                  ("start" .=) <$> _eStart,+                  Just ("privateCopy" .= _ePrivateCopy),+                  Just ("endTimeUnspecified" .= _eEndTimeUnspecified),+                  ("extendedProperties" .=) <$> _eExtendedProperties,+                  Just ("visibility" .= _eVisibility),+                  Just+                    ("guestsCanInviteOthers" .= _eGuestsCanInviteOthers),+                  ("recurrence" .=) <$> _eRecurrence,+                  ("gadget" .=) <$> _eGadget,+                  ("sequence" .=) <$> _eSequence,+                  ("iCalUID" .=) <$> _eICalUId, ("end" .=) <$> _eEnd,+                  Just ("attendeesOmitted" .= _eAttendeesOmitted),+                  ("source" .=) <$> _eSource, ("id" .=) <$> _eId,+                  ("htmlLink" .=) <$> _eHTMLLink,+                  ("updated" .=) <$> _eUpdated,+                  ("colorId" .=) <$> _eColorId,+                  Just ("anyoneCanAddSelf" .= _eAnyoneCanAddSelf),+                  Just+                    ("guestsCanSeeOtherGuests" .=+                       _eGuestsCanSeeOtherGuests),+                  ("hangoutLink" .=) <$> _eHangoutLink,+                  ("description" .=) <$> _eDescription,+                  ("organizer" .=) <$> _eOrganizer])++-- | The notifications that the authenticated user is receiving for this+-- calendar.+--+-- /See:/ 'calendarListEntryNotificationSettings' smart constructor.+newtype CalendarListEntryNotificationSettings = CalendarListEntryNotificationSettings+    { _clensNotifications :: Maybe [CalendarNotification]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarListEntryNotificationSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clensNotifications'+calendarListEntryNotificationSettings+    :: CalendarListEntryNotificationSettings+calendarListEntryNotificationSettings =+    CalendarListEntryNotificationSettings+    { _clensNotifications = Nothing+    }++-- | The list of notifications set for this calendar.+clensNotifications :: Lens' CalendarListEntryNotificationSettings [CalendarNotification]+clensNotifications+  = lens _clensNotifications+      (\ s a -> s{_clensNotifications = a})+      . _Default+      . _Coerce++instance FromJSON+         CalendarListEntryNotificationSettings where+        parseJSON+          = withObject "CalendarListEntryNotificationSettings"+              (\ o ->+                 CalendarListEntryNotificationSettings <$>+                   (o .:? "notifications" .!= mempty))++instance ToJSON CalendarListEntryNotificationSettings+         where+        toJSON CalendarListEntryNotificationSettings{..}+          = object+              (catMaybes+                 [("notifications" .=) <$> _clensNotifications])++-- | The scope of the rule.+--+-- /See:/ 'aclRuleScope' smart constructor.+data ACLRuleScope = ACLRuleScope+    { _arsValue :: !(Maybe Text)+    , _arsType  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ACLRuleScope' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'arsValue'+--+-- * 'arsType'+aclRuleScope+    :: ACLRuleScope+aclRuleScope =+    ACLRuleScope+    { _arsValue = Nothing+    , _arsType = Nothing+    }++-- | The email address of a user or group, or the name of a domain, depending+-- on the scope type. Omitted for type \"default\".+arsValue :: Lens' ACLRuleScope (Maybe Text)+arsValue = lens _arsValue (\ s a -> s{_arsValue = a})++-- | The type of the scope. Possible values are: - \"default\" - The public+-- scope. This is the default value. - \"user\" - Limits the scope to a+-- single user. - \"group\" - Limits the scope to a group. - \"domain\" -+-- Limits the scope to a domain. Note: The permissions granted to the+-- \"default\", or public, scope apply to any user, authenticated or not.+arsType :: Lens' ACLRuleScope (Maybe Text)+arsType = lens _arsType (\ s a -> s{_arsType = a})++instance FromJSON ACLRuleScope where+        parseJSON+          = withObject "ACLRuleScope"+              (\ o ->+                 ACLRuleScope <$> (o .:? "value") <*> (o .:? "type"))++instance ToJSON ACLRuleScope where+        toJSON ACLRuleScope{..}+          = object+              (catMaybes+                 [("value" .=) <$> _arsValue,+                  ("type" .=) <$> _arsType])++-- | A global palette of event colors, mapping from the color ID to its+-- definition. An event resource may refer to one of these color IDs in its+-- color field. Read-only.+--+-- /See:/ 'colorsEvent' smart constructor.+newtype ColorsEvent = ColorsEvent+    { _ceAddtional :: HashMap Text ColorDefinition+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ColorsEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ceAddtional'+colorsEvent+    :: HashMap Text ColorDefinition -- ^ 'ceAddtional'+    -> ColorsEvent+colorsEvent pCeAddtional_ =+    ColorsEvent+    { _ceAddtional = _Coerce # pCeAddtional_+    }++-- | An event color definition.+ceAddtional :: Lens' ColorsEvent (HashMap Text ColorDefinition)+ceAddtional+  = lens _ceAddtional (\ s a -> s{_ceAddtional = a}) .+      _Coerce++instance FromJSON ColorsEvent where+        parseJSON+          = withObject "ColorsEvent"+              (\ o -> ColorsEvent <$> (parseJSONObject o))++instance ToJSON ColorsEvent where+        toJSON = toJSON . _ceAddtional++--+-- /See:/ 'settings' smart constructor.+data Settings = Settings+    { _sEtag          :: !(Maybe Text)+    , _sNextPageToken :: !(Maybe Text)+    , _sKind          :: !Text+    , _sItems         :: !(Maybe [Setting])+    , _sNextSyncToken :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Settings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sEtag'+--+-- * 'sNextPageToken'+--+-- * 'sKind'+--+-- * 'sItems'+--+-- * 'sNextSyncToken'+settings+    :: Settings+settings =+    Settings+    { _sEtag = Nothing+    , _sNextPageToken = Nothing+    , _sKind = "calendar#settings"+    , _sItems = Nothing+    , _sNextSyncToken = Nothing+    }++-- | Etag of the collection.+sEtag :: Lens' Settings (Maybe Text)+sEtag = lens _sEtag (\ s a -> s{_sEtag = a})++-- | Token used to access the next page of this result. Omitted if no further+-- results are available, in which case nextSyncToken is provided.+sNextPageToken :: Lens' Settings (Maybe Text)+sNextPageToken+  = lens _sNextPageToken+      (\ s a -> s{_sNextPageToken = a})++-- | Type of the collection (\"calendar#settings\").+sKind :: Lens' Settings Text+sKind = lens _sKind (\ s a -> s{_sKind = a})++-- | List of user settings.+sItems :: Lens' Settings [Setting]+sItems+  = lens _sItems (\ s a -> s{_sItems = a}) . _Default .+      _Coerce++-- | Token used at a later point in time to retrieve only the entries that+-- have changed since this result was returned. Omitted if further results+-- are available, in which case nextPageToken is provided.+sNextSyncToken :: Lens' Settings (Maybe Text)+sNextSyncToken+  = lens _sNextSyncToken+      (\ s a -> s{_sNextSyncToken = a})++instance FromJSON Settings where+        parseJSON+          = withObject "Settings"+              (\ o ->+                 Settings <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "calendar#settings")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "nextSyncToken"))++instance ToJSON Settings where+        toJSON Settings{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _sEtag,+                  ("nextPageToken" .=) <$> _sNextPageToken,+                  Just ("kind" .= _sKind), ("items" .=) <$> _sItems,+                  ("nextSyncToken" .=) <$> _sNextSyncToken])++--+-- /See:/ 'freeBusyRequestItem' smart constructor.+newtype FreeBusyRequestItem = FreeBusyRequestItem+    { _fbriId :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FreeBusyRequestItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fbriId'+freeBusyRequestItem+    :: FreeBusyRequestItem+freeBusyRequestItem =+    FreeBusyRequestItem+    { _fbriId = Nothing+    }++-- | The identifier of a calendar or a group.+fbriId :: Lens' FreeBusyRequestItem (Maybe Text)+fbriId = lens _fbriId (\ s a -> s{_fbriId = a})++instance FromJSON FreeBusyRequestItem where+        parseJSON+          = withObject "FreeBusyRequestItem"+              (\ o -> FreeBusyRequestItem <$> (o .:? "id"))++instance ToJSON FreeBusyRequestItem where+        toJSON FreeBusyRequestItem{..}+          = object (catMaybes [("id" .=) <$> _fbriId])++--+-- /See:/ 'eventAttachment' smart constructor.+data EventAttachment = EventAttachment+    { _eaFileURL  :: !(Maybe Text)+    , _eaIconLink :: !(Maybe Text)+    , _eaMimeType :: !(Maybe Text)+    , _eaTitle    :: !(Maybe Text)+    , _eaFileId   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventAttachment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eaFileURL'+--+-- * 'eaIconLink'+--+-- * 'eaMimeType'+--+-- * 'eaTitle'+--+-- * 'eaFileId'+eventAttachment+    :: EventAttachment+eventAttachment =+    EventAttachment+    { _eaFileURL = Nothing+    , _eaIconLink = Nothing+    , _eaMimeType = Nothing+    , _eaTitle = Nothing+    , _eaFileId = Nothing+    }++-- | URL link to the attachment. For adding Google Drive file attachments use+-- the same format as in alternateLink property of the Files resource in+-- the Drive API.+eaFileURL :: Lens' EventAttachment (Maybe Text)+eaFileURL+  = lens _eaFileURL (\ s a -> s{_eaFileURL = a})++-- | URL link to the attachment\'s icon. Read-only.+eaIconLink :: Lens' EventAttachment (Maybe Text)+eaIconLink+  = lens _eaIconLink (\ s a -> s{_eaIconLink = a})++-- | Internet media type (MIME type) of the attachment.+eaMimeType :: Lens' EventAttachment (Maybe Text)+eaMimeType+  = lens _eaMimeType (\ s a -> s{_eaMimeType = a})++-- | Attachment title.+eaTitle :: Lens' EventAttachment (Maybe Text)+eaTitle = lens _eaTitle (\ s a -> s{_eaTitle = a})++-- | ID of the attached file. Read-only. For Google Drive files, this is the+-- ID of the corresponding Files resource entry in the Drive API.+eaFileId :: Lens' EventAttachment (Maybe Text)+eaFileId = lens _eaFileId (\ s a -> s{_eaFileId = a})++instance FromJSON EventAttachment where+        parseJSON+          = withObject "EventAttachment"+              (\ o ->+                 EventAttachment <$>+                   (o .:? "fileUrl") <*> (o .:? "iconLink") <*>+                     (o .:? "mimeType")+                     <*> (o .:? "title")+                     <*> (o .:? "fileId"))++instance ToJSON EventAttachment where+        toJSON EventAttachment{..}+          = object+              (catMaybes+                 [("fileUrl" .=) <$> _eaFileURL,+                  ("iconLink" .=) <$> _eaIconLink,+                  ("mimeType" .=) <$> _eaMimeType,+                  ("title" .=) <$> _eaTitle,+                  ("fileId" .=) <$> _eaFileId])++--+-- /See:/ 'timePeriod' smart constructor.+data TimePeriod = TimePeriod+    { _tpStart :: !(Maybe DateTime')+    , _tpEnd   :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TimePeriod' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpStart'+--+-- * 'tpEnd'+timePeriod+    :: TimePeriod+timePeriod =+    TimePeriod+    { _tpStart = Nothing+    , _tpEnd = Nothing+    }++-- | The (inclusive) start of the time period.+tpStart :: Lens' TimePeriod (Maybe UTCTime)+tpStart+  = lens _tpStart (\ s a -> s{_tpStart = a}) .+      mapping _DateTime++-- | The (exclusive) end of the time period.+tpEnd :: Lens' TimePeriod (Maybe UTCTime)+tpEnd+  = lens _tpEnd (\ s a -> s{_tpEnd = a}) .+      mapping _DateTime++instance FromJSON TimePeriod where+        parseJSON+          = withObject "TimePeriod"+              (\ o ->+                 TimePeriod <$> (o .:? "start") <*> (o .:? "end"))++instance ToJSON TimePeriod where+        toJSON TimePeriod{..}+          = object+              (catMaybes+                 [("start" .=) <$> _tpStart, ("end" .=) <$> _tpEnd])++-- | The creator of the event. Read-only.+--+-- /See:/ 'eventCreator' smart constructor.+data EventCreator = EventCreator+    { _ecEmail       :: !(Maybe Text)+    , _ecSelf        :: !Bool+    , _ecDisplayName :: !(Maybe Text)+    , _ecId          :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventCreator' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ecEmail'+--+-- * 'ecSelf'+--+-- * 'ecDisplayName'+--+-- * 'ecId'+eventCreator+    :: EventCreator+eventCreator =+    EventCreator+    { _ecEmail = Nothing+    , _ecSelf = False+    , _ecDisplayName = Nothing+    , _ecId = Nothing+    }++-- | The creator\'s email address, if available.+ecEmail :: Lens' EventCreator (Maybe Text)+ecEmail = lens _ecEmail (\ s a -> s{_ecEmail = a})++-- | Whether the creator corresponds to the calendar on which this copy of+-- the event appears. Read-only. The default is False.+ecSelf :: Lens' EventCreator Bool+ecSelf = lens _ecSelf (\ s a -> s{_ecSelf = a})++-- | The creator\'s name, if available.+ecDisplayName :: Lens' EventCreator (Maybe Text)+ecDisplayName+  = lens _ecDisplayName+      (\ s a -> s{_ecDisplayName = a})++-- | The creator\'s Profile ID, if available. It corresponds to theid field+-- in the People collection of the Google+ API+ecId :: Lens' EventCreator (Maybe Text)+ecId = lens _ecId (\ s a -> s{_ecId = a})++instance FromJSON EventCreator where+        parseJSON+          = withObject "EventCreator"+              (\ o ->+                 EventCreator <$>+                   (o .:? "email") <*> (o .:? "self" .!= False) <*>+                     (o .:? "displayName")+                     <*> (o .:? "id"))++instance ToJSON EventCreator where+        toJSON EventCreator{..}+          = object+              (catMaybes+                 [("email" .=) <$> _ecEmail, Just ("self" .= _ecSelf),+                  ("displayName" .=) <$> _ecDisplayName,+                  ("id" .=) <$> _ecId])++--+-- /See:/ 'error'' smart constructor.+data Error' = Error'+    { _eDomain :: !(Maybe Text)+    , _eReason :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Error' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eDomain'+--+-- * 'eReason'+error'+    :: Error'+error' =+    Error'+    { _eDomain = Nothing+    , _eReason = Nothing+    }++-- | Domain, or broad category, of the error.+eDomain :: Lens' Error' (Maybe Text)+eDomain = lens _eDomain (\ s a -> s{_eDomain = a})++-- | Specific reason for the error. Some of the possible values are: -+-- \"groupTooBig\" - The group of users requested is too large for a single+-- query. - \"tooManyCalendarsRequested\" - The number of calendars+-- requested is too large for a single query. - \"notFound\" - The+-- requested resource was not found. - \"internalError\" - The API service+-- has encountered an internal error. Additional error types may be added+-- in the future, so clients should gracefully handle additional error+-- statuses not included in this list.+eReason :: Lens' Error' (Maybe Text)+eReason = lens _eReason (\ s a -> s{_eReason = a})++instance FromJSON Error' where+        parseJSON+          = withObject "Error"+              (\ o ->+                 Error' <$> (o .:? "domain") <*> (o .:? "reason"))++instance ToJSON Error' where+        toJSON Error'{..}+          = object+              (catMaybes+                 [("domain" .=) <$> _eDomain,+                  ("reason" .=) <$> _eReason])++--+-- /See:/ 'colorDefinition' smart constructor.+data ColorDefinition = ColorDefinition+    { _cdForegRound :: !(Maybe Text)+    , _cdBackgRound :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ColorDefinition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdForegRound'+--+-- * 'cdBackgRound'+colorDefinition+    :: ColorDefinition+colorDefinition =+    ColorDefinition+    { _cdForegRound = Nothing+    , _cdBackgRound = Nothing+    }++-- | The foreground color that can be used to write on top of a background+-- with \'background\' color.+cdForegRound :: Lens' ColorDefinition (Maybe Text)+cdForegRound+  = lens _cdForegRound (\ s a -> s{_cdForegRound = a})++-- | The background color associated with this color definition.+cdBackgRound :: Lens' ColorDefinition (Maybe Text)+cdBackgRound+  = lens _cdBackgRound (\ s a -> s{_cdBackgRound = a})++instance FromJSON ColorDefinition where+        parseJSON+          = withObject "ColorDefinition"+              (\ o ->+                 ColorDefinition <$>+                   (o .:? "foreground") <*> (o .:? "background"))++instance ToJSON ColorDefinition where+        toJSON ColorDefinition{..}+          = object+              (catMaybes+                 [("foreground" .=) <$> _cdForegRound,+                  ("background" .=) <$> _cdBackgRound])++--+-- /See:/ 'channel' smart constructor.+data Channel = Channel+    { _cResourceURI :: !(Maybe Text)+    , _cResourceId  :: !(Maybe Text)+    , _cKind        :: !Text+    , _cExpiration  :: !(Maybe (Textual Int64))+    , _cToken       :: !(Maybe Text)+    , _cAddress     :: !(Maybe Text)+    , _cPayload     :: !(Maybe Bool)+    , _cParams      :: !(Maybe ChannelParams)+    , _cId          :: !(Maybe Text)+    , _cType        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Channel' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cResourceURI'+--+-- * 'cResourceId'+--+-- * 'cKind'+--+-- * 'cExpiration'+--+-- * 'cToken'+--+-- * 'cAddress'+--+-- * 'cPayload'+--+-- * 'cParams'+--+-- * 'cId'+--+-- * 'cType'+channel+    :: Channel+channel =+    Channel+    { _cResourceURI = Nothing+    , _cResourceId = Nothing+    , _cKind = "api#channel"+    , _cExpiration = Nothing+    , _cToken = Nothing+    , _cAddress = Nothing+    , _cPayload = Nothing+    , _cParams = Nothing+    , _cId = Nothing+    , _cType = Nothing+    }++-- | A version-specific identifier for the watched resource.+cResourceURI :: Lens' Channel (Maybe Text)+cResourceURI+  = lens _cResourceURI (\ s a -> s{_cResourceURI = a})++-- | An opaque ID that identifies the resource being watched on this channel.+-- Stable across different API versions.+cResourceId :: Lens' Channel (Maybe Text)+cResourceId+  = lens _cResourceId (\ s a -> s{_cResourceId = a})++-- | Identifies this as a notification channel used to watch for changes to a+-- resource. Value: the fixed string \"api#channel\".+cKind :: Lens' Channel Text+cKind = lens _cKind (\ s a -> s{_cKind = a})++-- | Date and time of notification channel expiration, expressed as a Unix+-- timestamp, in milliseconds. Optional.+cExpiration :: Lens' Channel (Maybe Int64)+cExpiration+  = lens _cExpiration (\ s a -> s{_cExpiration = a}) .+      mapping _Coerce++-- | An arbitrary string delivered to the target address with each+-- notification delivered over this channel. Optional.+cToken :: Lens' Channel (Maybe Text)+cToken = lens _cToken (\ s a -> s{_cToken = a})++-- | The address where notifications are delivered for this channel.+cAddress :: Lens' Channel (Maybe Text)+cAddress = lens _cAddress (\ s a -> s{_cAddress = a})++-- | A Boolean value to indicate whether payload is wanted. Optional.+cPayload :: Lens' Channel (Maybe Bool)+cPayload = lens _cPayload (\ s a -> s{_cPayload = a})++-- | Additional parameters controlling delivery channel behavior. Optional.+cParams :: Lens' Channel (Maybe ChannelParams)+cParams = lens _cParams (\ s a -> s{_cParams = a})++-- | A UUID or similar unique string that identifies this channel.+cId :: Lens' Channel (Maybe Text)+cId = lens _cId (\ s a -> s{_cId = a})++-- | The type of delivery mechanism used for this channel.+cType :: Lens' Channel (Maybe Text)+cType = lens _cType (\ s a -> s{_cType = a})++instance FromJSON Channel where+        parseJSON+          = withObject "Channel"+              (\ o ->+                 Channel <$>+                   (o .:? "resourceUri") <*> (o .:? "resourceId") <*>+                     (o .:? "kind" .!= "api#channel")+                     <*> (o .:? "expiration")+                     <*> (o .:? "token")+                     <*> (o .:? "address")+                     <*> (o .:? "payload")+                     <*> (o .:? "params")+                     <*> (o .:? "id")+                     <*> (o .:? "type"))++instance ToJSON Channel where+        toJSON Channel{..}+          = object+              (catMaybes+                 [("resourceUri" .=) <$> _cResourceURI,+                  ("resourceId" .=) <$> _cResourceId,+                  Just ("kind" .= _cKind),+                  ("expiration" .=) <$> _cExpiration,+                  ("token" .=) <$> _cToken,+                  ("address" .=) <$> _cAddress,+                  ("payload" .=) <$> _cPayload,+                  ("params" .=) <$> _cParams, ("id" .=) <$> _cId,+                  ("type" .=) <$> _cType])++--+-- /See:/ 'freeBusyCalendar' smart constructor.+data FreeBusyCalendar = FreeBusyCalendar+    { _fbcBusy   :: !(Maybe [TimePeriod])+    , _fbcErrors :: !(Maybe [Error'])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FreeBusyCalendar' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fbcBusy'+--+-- * 'fbcErrors'+freeBusyCalendar+    :: FreeBusyCalendar+freeBusyCalendar =+    FreeBusyCalendar+    { _fbcBusy = Nothing+    , _fbcErrors = Nothing+    }++-- | List of time ranges during which this calendar should be regarded as+-- busy.+fbcBusy :: Lens' FreeBusyCalendar [TimePeriod]+fbcBusy+  = lens _fbcBusy (\ s a -> s{_fbcBusy = a}) . _Default+      . _Coerce++-- | Optional error(s) (if computation for the calendar failed).+fbcErrors :: Lens' FreeBusyCalendar [Error']+fbcErrors+  = lens _fbcErrors (\ s a -> s{_fbcErrors = a}) .+      _Default+      . _Coerce++instance FromJSON FreeBusyCalendar where+        parseJSON+          = withObject "FreeBusyCalendar"+              (\ o ->+                 FreeBusyCalendar <$>+                   (o .:? "busy" .!= mempty) <*>+                     (o .:? "errors" .!= mempty))++instance ToJSON FreeBusyCalendar where+        toJSON FreeBusyCalendar{..}+          = object+              (catMaybes+                 [("busy" .=) <$> _fbcBusy,+                  ("errors" .=) <$> _fbcErrors])++--+-- /See:/ 'setting' smart constructor.+data Setting = Setting+    { _setEtag  :: !(Maybe Text)+    , _setKind  :: !Text+    , _setValue :: !(Maybe Text)+    , _setId    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Setting' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'setEtag'+--+-- * 'setKind'+--+-- * 'setValue'+--+-- * 'setId'+setting+    :: Setting+setting =+    Setting+    { _setEtag = Nothing+    , _setKind = "calendar#setting"+    , _setValue = Nothing+    , _setId = Nothing+    }++-- | ETag of the resource.+setEtag :: Lens' Setting (Maybe Text)+setEtag = lens _setEtag (\ s a -> s{_setEtag = a})++-- | Type of the resource (\"calendar#setting\").+setKind :: Lens' Setting Text+setKind = lens _setKind (\ s a -> s{_setKind = a})++-- | Value of the user setting. The format of the value depends on the ID of+-- the setting. It must always be a UTF-8 string of length up to 1024+-- characters.+setValue :: Lens' Setting (Maybe Text)+setValue = lens _setValue (\ s a -> s{_setValue = a})++-- | The id of the user setting.+setId :: Lens' Setting (Maybe Text)+setId = lens _setId (\ s a -> s{_setId = a})++instance FromJSON Setting where+        parseJSON+          = withObject "Setting"+              (\ o ->+                 Setting <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "calendar#setting")+                     <*> (o .:? "value")+                     <*> (o .:? "id"))++instance ToJSON Setting where+        toJSON Setting{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _setEtag, Just ("kind" .= _setKind),+                  ("value" .=) <$> _setValue, ("id" .=) <$> _setId])++-- | Expansion of groups.+--+-- /See:/ 'freeBusyResponseGroups' smart constructor.+newtype FreeBusyResponseGroups = FreeBusyResponseGroups+    { _fbrgAddtional :: HashMap Text FreeBusyGroup+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FreeBusyResponseGroups' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fbrgAddtional'+freeBusyResponseGroups+    :: HashMap Text FreeBusyGroup -- ^ 'fbrgAddtional'+    -> FreeBusyResponseGroups+freeBusyResponseGroups pFbrgAddtional_ =+    FreeBusyResponseGroups+    { _fbrgAddtional = _Coerce # pFbrgAddtional_+    }++-- | List of calendars that are members of this group.+fbrgAddtional :: Lens' FreeBusyResponseGroups (HashMap Text FreeBusyGroup)+fbrgAddtional+  = lens _fbrgAddtional+      (\ s a -> s{_fbrgAddtional = a})+      . _Coerce++instance FromJSON FreeBusyResponseGroups where+        parseJSON+          = withObject "FreeBusyResponseGroups"+              (\ o ->+                 FreeBusyResponseGroups <$> (parseJSONObject o))++instance ToJSON FreeBusyResponseGroups where+        toJSON = toJSON . _fbrgAddtional++-- | Information about the event\'s reminders for the authenticated user.+--+-- /See:/ 'eventReminders' smart constructor.+data EventReminders = EventReminders+    { _erOverrides  :: !(Maybe [EventReminder])+    , _erUseDefault :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventReminders' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'erOverrides'+--+-- * 'erUseDefault'+eventReminders+    :: EventReminders+eventReminders =+    EventReminders+    { _erOverrides = Nothing+    , _erUseDefault = Nothing+    }++-- | If the event doesn\'t use the default reminders, this lists the+-- reminders specific to the event, or, if not set, indicates that no+-- reminders are set for this event. The maximum number of override+-- reminders is 5.+erOverrides :: Lens' EventReminders [EventReminder]+erOverrides+  = lens _erOverrides (\ s a -> s{_erOverrides = a}) .+      _Default+      . _Coerce++-- | Whether the default reminders of the calendar apply to the event.+erUseDefault :: Lens' EventReminders (Maybe Bool)+erUseDefault+  = lens _erUseDefault (\ s a -> s{_erUseDefault = a})++instance FromJSON EventReminders where+        parseJSON+          = withObject "EventReminders"+              (\ o ->+                 EventReminders <$>+                   (o .:? "overrides" .!= mempty) <*>+                     (o .:? "useDefault"))++instance ToJSON EventReminders where+        toJSON EventReminders{..}+          = object+              (catMaybes+                 [("overrides" .=) <$> _erOverrides,+                  ("useDefault" .=) <$> _erUseDefault])++-- | A global palette of calendar colors, mapping from the color ID to its+-- definition. A calendarListEntry resource refers to one of these color+-- IDs in its color field. Read-only.+--+-- /See:/ 'colorsCalendar' smart constructor.+newtype ColorsCalendar = ColorsCalendar+    { _ccAddtional :: HashMap Text ColorDefinition+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ColorsCalendar' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ccAddtional'+colorsCalendar+    :: HashMap Text ColorDefinition -- ^ 'ccAddtional'+    -> ColorsCalendar+colorsCalendar pCcAddtional_ =+    ColorsCalendar+    { _ccAddtional = _Coerce # pCcAddtional_+    }++-- | A calendar color defintion.+ccAddtional :: Lens' ColorsCalendar (HashMap Text ColorDefinition)+ccAddtional+  = lens _ccAddtional (\ s a -> s{_ccAddtional = a}) .+      _Coerce++instance FromJSON ColorsCalendar where+        parseJSON+          = withObject "ColorsCalendar"+              (\ o -> ColorsCalendar <$> (parseJSONObject o))++instance ToJSON ColorsCalendar where+        toJSON = toJSON . _ccAddtional++--+-- /See:/ 'calendarNotification' smart constructor.+data CalendarNotification = CalendarNotification+    { _cnMethod :: !(Maybe Text)+    , _cnType   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarNotification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cnMethod'+--+-- * 'cnType'+calendarNotification+    :: CalendarNotification+calendarNotification =+    CalendarNotification+    { _cnMethod = Nothing+    , _cnType = Nothing+    }++-- | The method used to deliver the notification. Possible values are: -+-- \"email\" - Reminders are sent via email. - \"sms\" - Reminders are sent+-- via SMS. This value is read-only and is ignored on inserts and updates.+-- SMS reminders are only available for Google Apps for Work, Education,+-- and Government customers.+cnMethod :: Lens' CalendarNotification (Maybe Text)+cnMethod = lens _cnMethod (\ s a -> s{_cnMethod = a})++-- | The type of notification. Possible values are: - \"eventCreation\" -+-- Notification sent when a new event is put on the calendar. -+-- \"eventChange\" - Notification sent when an event is changed. -+-- \"eventCancellation\" - Notification sent when an event is cancelled. -+-- \"eventResponse\" - Notification sent when an event is changed. -+-- \"agenda\" - An agenda with the events of the day (sent out in the+-- morning).+cnType :: Lens' CalendarNotification (Maybe Text)+cnType = lens _cnType (\ s a -> s{_cnType = a})++instance FromJSON CalendarNotification where+        parseJSON+          = withObject "CalendarNotification"+              (\ o ->+                 CalendarNotification <$>+                   (o .:? "method") <*> (o .:? "type"))++instance ToJSON CalendarNotification where+        toJSON CalendarNotification{..}+          = object+              (catMaybes+                 [("method" .=) <$> _cnMethod,+                  ("type" .=) <$> _cnType])++-- | Properties that are private to the copy of the event that appears on+-- this calendar.+--+-- /See:/ 'eventExtendedPropertiesPrivate' smart constructor.+newtype EventExtendedPropertiesPrivate = EventExtendedPropertiesPrivate+    { _eeppAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventExtendedPropertiesPrivate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eeppAddtional'+eventExtendedPropertiesPrivate+    :: HashMap Text Text -- ^ 'eeppAddtional'+    -> EventExtendedPropertiesPrivate+eventExtendedPropertiesPrivate pEeppAddtional_ =+    EventExtendedPropertiesPrivate+    { _eeppAddtional = _Coerce # pEeppAddtional_+    }++-- | The name of the private property and the corresponding value.+eeppAddtional :: Lens' EventExtendedPropertiesPrivate (HashMap Text Text)+eeppAddtional+  = lens _eeppAddtional+      (\ s a -> s{_eeppAddtional = a})+      . _Coerce++instance FromJSON EventExtendedPropertiesPrivate+         where+        parseJSON+          = withObject "EventExtendedPropertiesPrivate"+              (\ o ->+                 EventExtendedPropertiesPrivate <$>+                   (parseJSONObject o))++instance ToJSON EventExtendedPropertiesPrivate where+        toJSON = toJSON . _eeppAddtional++-- | Additional parameters controlling delivery channel behavior. Optional.+--+-- /See:/ 'channelParams' smart constructor.+newtype ChannelParams = ChannelParams+    { _cpAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChannelParams' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpAddtional'+channelParams+    :: HashMap Text Text -- ^ 'cpAddtional'+    -> ChannelParams+channelParams pCpAddtional_ =+    ChannelParams+    { _cpAddtional = _Coerce # pCpAddtional_+    }++-- | Declares a new parameter by name.+cpAddtional :: Lens' ChannelParams (HashMap Text Text)+cpAddtional+  = lens _cpAddtional (\ s a -> s{_cpAddtional = a}) .+      _Coerce++instance FromJSON ChannelParams where+        parseJSON+          = withObject "ChannelParams"+              (\ o -> ChannelParams <$> (parseJSONObject o))++instance ToJSON ChannelParams where+        toJSON = toJSON . _cpAddtional++--+-- /See:/ 'events' smart constructor.+data Events = Events+    { _eveSummary          :: !(Maybe Text)+    , _eveEtag             :: !(Maybe Text)+    , _eveNextPageToken    :: !(Maybe Text)+    , _eveKind             :: !Text+    , _eveItems            :: !(Maybe [Event])+    , _eveDefaultReminders :: !(Maybe [EventReminder])+    , _eveUpdated          :: !(Maybe DateTime')+    , _eveAccessRole       :: !(Maybe Text)+    , _eveTimeZone         :: !(Maybe Text)+    , _eveNextSyncToken    :: !(Maybe Text)+    , _eveDescription      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Events' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eveSummary'+--+-- * 'eveEtag'+--+-- * 'eveNextPageToken'+--+-- * 'eveKind'+--+-- * 'eveItems'+--+-- * 'eveDefaultReminders'+--+-- * 'eveUpdated'+--+-- * 'eveAccessRole'+--+-- * 'eveTimeZone'+--+-- * 'eveNextSyncToken'+--+-- * 'eveDescription'+events+    :: Events+events =+    Events+    { _eveSummary = Nothing+    , _eveEtag = Nothing+    , _eveNextPageToken = Nothing+    , _eveKind = "calendar#events"+    , _eveItems = Nothing+    , _eveDefaultReminders = Nothing+    , _eveUpdated = Nothing+    , _eveAccessRole = Nothing+    , _eveTimeZone = Nothing+    , _eveNextSyncToken = Nothing+    , _eveDescription = Nothing+    }++-- | Title of the calendar. Read-only.+eveSummary :: Lens' Events (Maybe Text)+eveSummary+  = lens _eveSummary (\ s a -> s{_eveSummary = a})++-- | ETag of the collection.+eveEtag :: Lens' Events (Maybe Text)+eveEtag = lens _eveEtag (\ s a -> s{_eveEtag = a})++-- | Token used to access the next page of this result. Omitted if no further+-- results are available, in which case nextSyncToken is provided.+eveNextPageToken :: Lens' Events (Maybe Text)+eveNextPageToken+  = lens _eveNextPageToken+      (\ s a -> s{_eveNextPageToken = a})++-- | Type of the collection (\"calendar#events\").+eveKind :: Lens' Events Text+eveKind = lens _eveKind (\ s a -> s{_eveKind = a})++-- | List of events on the calendar.+eveItems :: Lens' Events [Event]+eveItems+  = lens _eveItems (\ s a -> s{_eveItems = a}) .+      _Default+      . _Coerce++-- | The default reminders on the calendar for the authenticated user. These+-- reminders apply to all events on this calendar that do not explicitly+-- override them (i.e. do not have reminders.useDefault set to True).+eveDefaultReminders :: Lens' Events [EventReminder]+eveDefaultReminders+  = lens _eveDefaultReminders+      (\ s a -> s{_eveDefaultReminders = a})+      . _Default+      . _Coerce++-- | Last modification time of the calendar (as a RFC3339 timestamp).+-- Read-only.+eveUpdated :: Lens' Events (Maybe UTCTime)+eveUpdated+  = lens _eveUpdated (\ s a -> s{_eveUpdated = a}) .+      mapping _DateTime++-- | The user\'s access role for this calendar. Read-only. Possible values+-- are: - \"none\" - The user has no access. - \"freeBusyReader\" - The+-- user has read access to free\/busy information. - \"reader\" - The user+-- has read access to the calendar. Private events will appear to users+-- with reader access, but event details will be hidden. - \"writer\" - The+-- user has read and write access to the calendar. Private events will+-- appear to users with writer access, and event details will be visible. -+-- \"owner\" - The user has ownership of the calendar. This role has all of+-- the permissions of the writer role with the additional ability to see+-- and manipulate ACLs.+eveAccessRole :: Lens' Events (Maybe Text)+eveAccessRole+  = lens _eveAccessRole+      (\ s a -> s{_eveAccessRole = a})++-- | The time zone of the calendar. Read-only.+eveTimeZone :: Lens' Events (Maybe Text)+eveTimeZone+  = lens _eveTimeZone (\ s a -> s{_eveTimeZone = a})++-- | Token used at a later point in time to retrieve only the entries that+-- have changed since this result was returned. Omitted if further results+-- are available, in which case nextPageToken is provided.+eveNextSyncToken :: Lens' Events (Maybe Text)+eveNextSyncToken+  = lens _eveNextSyncToken+      (\ s a -> s{_eveNextSyncToken = a})++-- | Description of the calendar. Read-only.+eveDescription :: Lens' Events (Maybe Text)+eveDescription+  = lens _eveDescription+      (\ s a -> s{_eveDescription = a})++instance FromJSON Events where+        parseJSON+          = withObject "Events"+              (\ o ->+                 Events <$>+                   (o .:? "summary") <*> (o .:? "etag") <*>+                     (o .:? "nextPageToken")+                     <*> (o .:? "kind" .!= "calendar#events")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "defaultReminders" .!= mempty)+                     <*> (o .:? "updated")+                     <*> (o .:? "accessRole")+                     <*> (o .:? "timeZone")+                     <*> (o .:? "nextSyncToken")+                     <*> (o .:? "description"))++instance ToJSON Events where+        toJSON Events{..}+          = object+              (catMaybes+                 [("summary" .=) <$> _eveSummary,+                  ("etag" .=) <$> _eveEtag,+                  ("nextPageToken" .=) <$> _eveNextPageToken,+                  Just ("kind" .= _eveKind),+                  ("items" .=) <$> _eveItems,+                  ("defaultReminders" .=) <$> _eveDefaultReminders,+                  ("updated" .=) <$> _eveUpdated,+                  ("accessRole" .=) <$> _eveAccessRole,+                  ("timeZone" .=) <$> _eveTimeZone,+                  ("nextSyncToken" .=) <$> _eveNextSyncToken,+                  ("description" .=) <$> _eveDescription])++--+-- /See:/ 'eventAttendee' smart constructor.+data EventAttendee = EventAttendee+    { _eaEmail            :: !(Maybe Text)+    , _eaResponseStatus   :: !(Maybe Text)+    , _eaSelf             :: !Bool+    , _eaResource         :: !Bool+    , _eaAdditionalGuests :: !(Textual Int32)+    , _eaDisplayName      :: !(Maybe Text)+    , _eaId               :: !(Maybe Text)+    , _eaComment          :: !(Maybe Text)+    , _eaOptional         :: !Bool+    , _eaOrganizer        :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventAttendee' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eaEmail'+--+-- * 'eaResponseStatus'+--+-- * 'eaSelf'+--+-- * 'eaResource'+--+-- * 'eaAdditionalGuests'+--+-- * 'eaDisplayName'+--+-- * 'eaId'+--+-- * 'eaComment'+--+-- * 'eaOptional'+--+-- * 'eaOrganizer'+eventAttendee+    :: EventAttendee+eventAttendee =+    EventAttendee+    { _eaEmail = Nothing+    , _eaResponseStatus = Nothing+    , _eaSelf = False+    , _eaResource = False+    , _eaAdditionalGuests = 0+    , _eaDisplayName = Nothing+    , _eaId = Nothing+    , _eaComment = Nothing+    , _eaOptional = False+    , _eaOrganizer = Nothing+    }++-- | The attendee\'s email address, if available. This field must be present+-- when adding an attendee. It must be a valid email address as per+-- RFC5322.+eaEmail :: Lens' EventAttendee (Maybe Text)+eaEmail = lens _eaEmail (\ s a -> s{_eaEmail = a})++-- | The attendee\'s response status. Possible values are: - \"needsAction\"+-- - The attendee has not responded to the invitation. - \"declined\" - The+-- attendee has declined the invitation. - \"tentative\" - The attendee has+-- tentatively accepted the invitation. - \"accepted\" - The attendee has+-- accepted the invitation.+eaResponseStatus :: Lens' EventAttendee (Maybe Text)+eaResponseStatus+  = lens _eaResponseStatus+      (\ s a -> s{_eaResponseStatus = a})++-- | Whether this entry represents the calendar on which this copy of the+-- event appears. Read-only. The default is False.+eaSelf :: Lens' EventAttendee Bool+eaSelf = lens _eaSelf (\ s a -> s{_eaSelf = a})++-- | Whether the attendee is a resource. Read-only. The default is False.+eaResource :: Lens' EventAttendee Bool+eaResource+  = lens _eaResource (\ s a -> s{_eaResource = a})++-- | Number of additional guests. Optional. The default is 0.+eaAdditionalGuests :: Lens' EventAttendee Int32+eaAdditionalGuests+  = lens _eaAdditionalGuests+      (\ s a -> s{_eaAdditionalGuests = a})+      . _Coerce++-- | The attendee\'s name, if available. Optional.+eaDisplayName :: Lens' EventAttendee (Maybe Text)+eaDisplayName+  = lens _eaDisplayName+      (\ s a -> s{_eaDisplayName = a})++-- | The attendee\'s Profile ID, if available. It corresponds to theid field+-- in the People collection of the Google+ API+eaId :: Lens' EventAttendee (Maybe Text)+eaId = lens _eaId (\ s a -> s{_eaId = a})++-- | The attendee\'s response comment. Optional.+eaComment :: Lens' EventAttendee (Maybe Text)+eaComment+  = lens _eaComment (\ s a -> s{_eaComment = a})++-- | Whether this is an optional attendee. Optional. The default is False.+eaOptional :: Lens' EventAttendee Bool+eaOptional+  = lens _eaOptional (\ s a -> s{_eaOptional = a})++-- | Whether the attendee is the organizer of the event. Read-only. The+-- default is False.+eaOrganizer :: Lens' EventAttendee (Maybe Bool)+eaOrganizer+  = lens _eaOrganizer (\ s a -> s{_eaOrganizer = a})++instance FromJSON EventAttendee where+        parseJSON+          = withObject "EventAttendee"+              (\ o ->+                 EventAttendee <$>+                   (o .:? "email") <*> (o .:? "responseStatus") <*>+                     (o .:? "self" .!= False)+                     <*> (o .:? "resource" .!= False)+                     <*> (o .:? "additionalGuests" .!= 0)+                     <*> (o .:? "displayName")+                     <*> (o .:? "id")+                     <*> (o .:? "comment")+                     <*> (o .:? "optional" .!= False)+                     <*> (o .:? "organizer"))++instance ToJSON EventAttendee where+        toJSON EventAttendee{..}+          = object+              (catMaybes+                 [("email" .=) <$> _eaEmail,+                  ("responseStatus" .=) <$> _eaResponseStatus,+                  Just ("self" .= _eaSelf),+                  Just ("resource" .= _eaResource),+                  Just ("additionalGuests" .= _eaAdditionalGuests),+                  ("displayName" .=) <$> _eaDisplayName,+                  ("id" .=) <$> _eaId, ("comment" .=) <$> _eaComment,+                  Just ("optional" .= _eaOptional),+                  ("organizer" .=) <$> _eaOrganizer])++--+-- /See:/ 'calendar' smart constructor.+data Calendar = Calendar+    { _calSummary     :: !(Maybe Text)+    , _calEtag        :: !(Maybe Text)+    , _calLocation    :: !(Maybe Text)+    , _calKind        :: !Text+    , _calId          :: !(Maybe Text)+    , _calTimeZone    :: !(Maybe Text)+    , _calDescription :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Calendar' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'calSummary'+--+-- * 'calEtag'+--+-- * 'calLocation'+--+-- * 'calKind'+--+-- * 'calId'+--+-- * 'calTimeZone'+--+-- * 'calDescription'+calendar+    :: Calendar+calendar =+    Calendar+    { _calSummary = Nothing+    , _calEtag = Nothing+    , _calLocation = Nothing+    , _calKind = "calendar#calendar"+    , _calId = Nothing+    , _calTimeZone = Nothing+    , _calDescription = Nothing+    }++-- | Title of the calendar.+calSummary :: Lens' Calendar (Maybe Text)+calSummary+  = lens _calSummary (\ s a -> s{_calSummary = a})++-- | ETag of the resource.+calEtag :: Lens' Calendar (Maybe Text)+calEtag = lens _calEtag (\ s a -> s{_calEtag = a})++-- | Geographic location of the calendar as free-form text. Optional.+calLocation :: Lens' Calendar (Maybe Text)+calLocation+  = lens _calLocation (\ s a -> s{_calLocation = a})++-- | Type of the resource (\"calendar#calendar\").+calKind :: Lens' Calendar Text+calKind = lens _calKind (\ s a -> s{_calKind = a})++-- | Identifier of the calendar. To retrieve IDs call the calendarList.list()+-- method.+calId :: Lens' Calendar (Maybe Text)+calId = lens _calId (\ s a -> s{_calId = a})++-- | The time zone of the calendar. (Formatted as an IANA Time Zone Database+-- name, e.g. \"Europe\/Zurich\".) Optional.+calTimeZone :: Lens' Calendar (Maybe Text)+calTimeZone+  = lens _calTimeZone (\ s a -> s{_calTimeZone = a})++-- | Description of the calendar. Optional.+calDescription :: Lens' Calendar (Maybe Text)+calDescription+  = lens _calDescription+      (\ s a -> s{_calDescription = a})++instance FromJSON Calendar where+        parseJSON+          = withObject "Calendar"+              (\ o ->+                 Calendar <$>+                   (o .:? "summary") <*> (o .:? "etag") <*>+                     (o .:? "location")+                     <*> (o .:? "kind" .!= "calendar#calendar")+                     <*> (o .:? "id")+                     <*> (o .:? "timeZone")+                     <*> (o .:? "description"))++instance ToJSON Calendar where+        toJSON Calendar{..}+          = object+              (catMaybes+                 [("summary" .=) <$> _calSummary,+                  ("etag" .=) <$> _calEtag,+                  ("location" .=) <$> _calLocation,+                  Just ("kind" .= _calKind), ("id" .=) <$> _calId,+                  ("timeZone" .=) <$> _calTimeZone,+                  ("description" .=) <$> _calDescription])++--+-- /See:/ 'freeBusyResponse' smart constructor.+data FreeBusyResponse = FreeBusyResponse+    { _fbrGroups    :: !(Maybe FreeBusyResponseGroups)+    , _fbrTimeMin   :: !(Maybe DateTime')+    , _fbrKind      :: !Text+    , _fbrCalendars :: !(Maybe FreeBusyResponseCalendars)+    , _fbrTimeMax   :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FreeBusyResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fbrGroups'+--+-- * 'fbrTimeMin'+--+-- * 'fbrKind'+--+-- * 'fbrCalendars'+--+-- * 'fbrTimeMax'+freeBusyResponse+    :: FreeBusyResponse+freeBusyResponse =+    FreeBusyResponse+    { _fbrGroups = Nothing+    , _fbrTimeMin = Nothing+    , _fbrKind = "calendar#freeBusy"+    , _fbrCalendars = Nothing+    , _fbrTimeMax = Nothing+    }++-- | Expansion of groups.+fbrGroups :: Lens' FreeBusyResponse (Maybe FreeBusyResponseGroups)+fbrGroups+  = lens _fbrGroups (\ s a -> s{_fbrGroups = a})++-- | The start of the interval.+fbrTimeMin :: Lens' FreeBusyResponse (Maybe UTCTime)+fbrTimeMin+  = lens _fbrTimeMin (\ s a -> s{_fbrTimeMin = a}) .+      mapping _DateTime++-- | Type of the resource (\"calendar#freeBusy\").+fbrKind :: Lens' FreeBusyResponse Text+fbrKind = lens _fbrKind (\ s a -> s{_fbrKind = a})++-- | List of free\/busy information for calendars.+fbrCalendars :: Lens' FreeBusyResponse (Maybe FreeBusyResponseCalendars)+fbrCalendars+  = lens _fbrCalendars (\ s a -> s{_fbrCalendars = a})++-- | The end of the interval.+fbrTimeMax :: Lens' FreeBusyResponse (Maybe UTCTime)+fbrTimeMax+  = lens _fbrTimeMax (\ s a -> s{_fbrTimeMax = a}) .+      mapping _DateTime++instance FromJSON FreeBusyResponse where+        parseJSON+          = withObject "FreeBusyResponse"+              (\ o ->+                 FreeBusyResponse <$>+                   (o .:? "groups") <*> (o .:? "timeMin") <*>+                     (o .:? "kind" .!= "calendar#freeBusy")+                     <*> (o .:? "calendars")+                     <*> (o .:? "timeMax"))++instance ToJSON FreeBusyResponse where+        toJSON FreeBusyResponse{..}+          = object+              (catMaybes+                 [("groups" .=) <$> _fbrGroups,+                  ("timeMin" .=) <$> _fbrTimeMin,+                  Just ("kind" .= _fbrKind),+                  ("calendars" .=) <$> _fbrCalendars,+                  ("timeMax" .=) <$> _fbrTimeMax])++--+-- /See:/ 'eventReminder' smart constructor.+data EventReminder = EventReminder+    { _erMethod  :: !(Maybe Text)+    , _erMinutes :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventReminder' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'erMethod'+--+-- * 'erMinutes'+eventReminder+    :: EventReminder+eventReminder =+    EventReminder+    { _erMethod = Nothing+    , _erMinutes = Nothing+    }++-- | The method used by this reminder. Possible values are: - \"email\" -+-- Reminders are sent via email. - \"sms\" - Reminders are sent via SMS.+-- These are only available for Google Apps for Work, Education, and+-- Government customers. Requests to set SMS reminders for other account+-- types are ignored. - \"popup\" - Reminders are sent via a UI popup.+erMethod :: Lens' EventReminder (Maybe Text)+erMethod = lens _erMethod (\ s a -> s{_erMethod = a})++-- | Number of minutes before the start of the event when the reminder should+-- trigger. Valid values are between 0 and 40320 (4 weeks in minutes).+erMinutes :: Lens' EventReminder (Maybe Int32)+erMinutes+  = lens _erMinutes (\ s a -> s{_erMinutes = a}) .+      mapping _Coerce++instance FromJSON EventReminder where+        parseJSON+          = withObject "EventReminder"+              (\ o ->+                 EventReminder <$>+                   (o .:? "method") <*> (o .:? "minutes"))++instance ToJSON EventReminder where+        toJSON EventReminder{..}+          = object+              (catMaybes+                 [("method" .=) <$> _erMethod,+                  ("minutes" .=) <$> _erMinutes])++-- | Extended properties of the event.+--+-- /See:/ 'eventExtendedProperties' smart constructor.+data EventExtendedProperties = EventExtendedProperties+    { _eepPrivate :: !(Maybe EventExtendedPropertiesPrivate)+    , _eepShared  :: !(Maybe EventExtendedPropertiesShared)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventExtendedProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eepPrivate'+--+-- * 'eepShared'+eventExtendedProperties+    :: EventExtendedProperties+eventExtendedProperties =+    EventExtendedProperties+    { _eepPrivate = Nothing+    , _eepShared = Nothing+    }++-- | Properties that are private to the copy of the event that appears on+-- this calendar.+eepPrivate :: Lens' EventExtendedProperties (Maybe EventExtendedPropertiesPrivate)+eepPrivate+  = lens _eepPrivate (\ s a -> s{_eepPrivate = a})++-- | Properties that are shared between copies of the event on other+-- attendees\' calendars.+eepShared :: Lens' EventExtendedProperties (Maybe EventExtendedPropertiesShared)+eepShared+  = lens _eepShared (\ s a -> s{_eepShared = a})++instance FromJSON EventExtendedProperties where+        parseJSON+          = withObject "EventExtendedProperties"+              (\ o ->+                 EventExtendedProperties <$>+                   (o .:? "private") <*> (o .:? "shared"))++instance ToJSON EventExtendedProperties where+        toJSON EventExtendedProperties{..}+          = object+              (catMaybes+                 [("private" .=) <$> _eepPrivate,+                  ("shared" .=) <$> _eepShared])++--+-- /See:/ 'eventDateTime' smart constructor.+data EventDateTime = EventDateTime+    { _edtDate     :: !(Maybe Date')+    , _edtTimeZone :: !(Maybe Text)+    , _edtDateTime :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventDateTime' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edtDate'+--+-- * 'edtTimeZone'+--+-- * 'edtDateTime'+eventDateTime+    :: EventDateTime+eventDateTime =+    EventDateTime+    { _edtDate = Nothing+    , _edtTimeZone = Nothing+    , _edtDateTime = Nothing+    }++-- | The date, in the format \"yyyy-mm-dd\", if this is an all-day event.+edtDate :: Lens' EventDateTime (Maybe Day)+edtDate+  = lens _edtDate (\ s a -> s{_edtDate = a}) .+      mapping _Date++-- | The time zone in which the time is specified. (Formatted as an IANA Time+-- Zone Database name, e.g. \"Europe\/Zurich\".) For recurring events this+-- field is required and specifies the time zone in which the recurrence is+-- expanded. For single events this field is optional and indicates a+-- custom time zone for the event start\/end.+edtTimeZone :: Lens' EventDateTime (Maybe Text)+edtTimeZone+  = lens _edtTimeZone (\ s a -> s{_edtTimeZone = a})++-- | The time, as a combined date-time value (formatted according to+-- RFC3339). A time zone offset is required unless a time zone is+-- explicitly specified in timeZone.+edtDateTime :: Lens' EventDateTime (Maybe UTCTime)+edtDateTime+  = lens _edtDateTime (\ s a -> s{_edtDateTime = a}) .+      mapping _DateTime++instance FromJSON EventDateTime where+        parseJSON+          = withObject "EventDateTime"+              (\ o ->+                 EventDateTime <$>+                   (o .:? "date") <*> (o .:? "timeZone") <*>+                     (o .:? "dateTime"))++instance ToJSON EventDateTime where+        toJSON EventDateTime{..}+          = object+              (catMaybes+                 [("date" .=) <$> _edtDate,+                  ("timeZone" .=) <$> _edtTimeZone,+                  ("dateTime" .=) <$> _edtDateTime])++-- | The organizer of the event. If the organizer is also an attendee, this+-- is indicated with a separate entry in attendees with the organizer field+-- set to True. To change the organizer, use the move operation. Read-only,+-- except when importing an event.+--+-- /See:/ 'eventOrganizer' smart constructor.+data EventOrganizer = EventOrganizer+    { _eoEmail       :: !(Maybe Text)+    , _eoSelf        :: !Bool+    , _eoDisplayName :: !(Maybe Text)+    , _eoId          :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventOrganizer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eoEmail'+--+-- * 'eoSelf'+--+-- * 'eoDisplayName'+--+-- * 'eoId'+eventOrganizer+    :: EventOrganizer+eventOrganizer =+    EventOrganizer+    { _eoEmail = Nothing+    , _eoSelf = False+    , _eoDisplayName = Nothing+    , _eoId = Nothing+    }++-- | The organizer\'s email address, if available. It must be a valid email+-- address as per RFC5322.+eoEmail :: Lens' EventOrganizer (Maybe Text)+eoEmail = lens _eoEmail (\ s a -> s{_eoEmail = a})++-- | Whether the organizer corresponds to the calendar on which this copy of+-- the event appears. Read-only. The default is False.+eoSelf :: Lens' EventOrganizer Bool+eoSelf = lens _eoSelf (\ s a -> s{_eoSelf = a})++-- | The organizer\'s name, if available.+eoDisplayName :: Lens' EventOrganizer (Maybe Text)+eoDisplayName+  = lens _eoDisplayName+      (\ s a -> s{_eoDisplayName = a})++-- | The organizer\'s Profile ID, if available. It corresponds to theid field+-- in the People collection of the Google+ API+eoId :: Lens' EventOrganizer (Maybe Text)+eoId = lens _eoId (\ s a -> s{_eoId = a})++instance FromJSON EventOrganizer where+        parseJSON+          = withObject "EventOrganizer"+              (\ o ->+                 EventOrganizer <$>+                   (o .:? "email") <*> (o .:? "self" .!= False) <*>+                     (o .:? "displayName")+                     <*> (o .:? "id"))++instance ToJSON EventOrganizer where+        toJSON EventOrganizer{..}+          = object+              (catMaybes+                 [("email" .=) <$> _eoEmail, Just ("self" .= _eoSelf),+                  ("displayName" .=) <$> _eoDisplayName,+                  ("id" .=) <$> _eoId])++--+-- /See:/ 'calendarList' smart constructor.+data CalendarList = CalendarList+    { _clEtag          :: !(Maybe Text)+    , _clNextPageToken :: !(Maybe Text)+    , _clKind          :: !Text+    , _clItems         :: !(Maybe [CalendarListEntry])+    , _clNextSyncToken :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clEtag'+--+-- * 'clNextPageToken'+--+-- * 'clKind'+--+-- * 'clItems'+--+-- * 'clNextSyncToken'+calendarList+    :: CalendarList+calendarList =+    CalendarList+    { _clEtag = Nothing+    , _clNextPageToken = Nothing+    , _clKind = "calendar#calendarList"+    , _clItems = Nothing+    , _clNextSyncToken = Nothing+    }++-- | ETag of the collection.+clEtag :: Lens' CalendarList (Maybe Text)+clEtag = lens _clEtag (\ s a -> s{_clEtag = a})++-- | Token used to access the next page of this result. Omitted if no further+-- results are available, in which case nextSyncToken is provided.+clNextPageToken :: Lens' CalendarList (Maybe Text)+clNextPageToken+  = lens _clNextPageToken+      (\ s a -> s{_clNextPageToken = a})++-- | Type of the collection (\"calendar#calendarList\").+clKind :: Lens' CalendarList Text+clKind = lens _clKind (\ s a -> s{_clKind = a})++-- | Calendars that are present on the user\'s calendar list.+clItems :: Lens' CalendarList [CalendarListEntry]+clItems+  = lens _clItems (\ s a -> s{_clItems = a}) . _Default+      . _Coerce++-- | Token used at a later point in time to retrieve only the entries that+-- have changed since this result was returned. Omitted if further results+-- are available, in which case nextPageToken is provided.+clNextSyncToken :: Lens' CalendarList (Maybe Text)+clNextSyncToken+  = lens _clNextSyncToken+      (\ s a -> s{_clNextSyncToken = a})++instance FromJSON CalendarList where+        parseJSON+          = withObject "CalendarList"+              (\ o ->+                 CalendarList <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "calendar#calendarList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "nextSyncToken"))++instance ToJSON CalendarList where+        toJSON CalendarList{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _clEtag,+                  ("nextPageToken" .=) <$> _clNextPageToken,+                  Just ("kind" .= _clKind), ("items" .=) <$> _clItems,+                  ("nextSyncToken" .=) <$> _clNextSyncToken])++-- | A gadget that extends this event.+--+-- /See:/ 'eventGadget' smart constructor.+data EventGadget = EventGadget+    { _egHeight      :: !(Maybe (Textual Int32))+    , _egDisplay     :: !(Maybe Text)+    , _egPreferences :: !(Maybe EventGadgetPreferences)+    , _egLink        :: !(Maybe Text)+    , _egIconLink    :: !(Maybe Text)+    , _egWidth       :: !(Maybe (Textual Int32))+    , _egTitle       :: !(Maybe Text)+    , _egType        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventGadget' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'egHeight'+--+-- * 'egDisplay'+--+-- * 'egPreferences'+--+-- * 'egLink'+--+-- * 'egIconLink'+--+-- * 'egWidth'+--+-- * 'egTitle'+--+-- * 'egType'+eventGadget+    :: EventGadget+eventGadget =+    EventGadget+    { _egHeight = Nothing+    , _egDisplay = Nothing+    , _egPreferences = Nothing+    , _egLink = Nothing+    , _egIconLink = Nothing+    , _egWidth = Nothing+    , _egTitle = Nothing+    , _egType = Nothing+    }++-- | The gadget\'s height in pixels. The height must be an integer greater+-- than 0. Optional.+egHeight :: Lens' EventGadget (Maybe Int32)+egHeight+  = lens _egHeight (\ s a -> s{_egHeight = a}) .+      mapping _Coerce++-- | The gadget\'s display mode. Optional. Possible values are: - \"icon\" -+-- The gadget displays next to the event\'s title in the calendar view. -+-- \"chip\" - The gadget displays when the event is clicked.+egDisplay :: Lens' EventGadget (Maybe Text)+egDisplay+  = lens _egDisplay (\ s a -> s{_egDisplay = a})++-- | Preferences.+egPreferences :: Lens' EventGadget (Maybe EventGadgetPreferences)+egPreferences+  = lens _egPreferences+      (\ s a -> s{_egPreferences = a})++-- | The gadget\'s URL. The URL scheme must be HTTPS.+egLink :: Lens' EventGadget (Maybe Text)+egLink = lens _egLink (\ s a -> s{_egLink = a})++-- | The gadget\'s icon URL. The URL scheme must be HTTPS.+egIconLink :: Lens' EventGadget (Maybe Text)+egIconLink+  = lens _egIconLink (\ s a -> s{_egIconLink = a})++-- | The gadget\'s width in pixels. The width must be an integer greater than+-- 0. Optional.+egWidth :: Lens' EventGadget (Maybe Int32)+egWidth+  = lens _egWidth (\ s a -> s{_egWidth = a}) .+      mapping _Coerce++-- | The gadget\'s title.+egTitle :: Lens' EventGadget (Maybe Text)+egTitle = lens _egTitle (\ s a -> s{_egTitle = a})++-- | The gadget\'s type.+egType :: Lens' EventGadget (Maybe Text)+egType = lens _egType (\ s a -> s{_egType = a})++instance FromJSON EventGadget where+        parseJSON+          = withObject "EventGadget"+              (\ o ->+                 EventGadget <$>+                   (o .:? "height") <*> (o .:? "display") <*>+                     (o .:? "preferences")+                     <*> (o .:? "link")+                     <*> (o .:? "iconLink")+                     <*> (o .:? "width")+                     <*> (o .:? "title")+                     <*> (o .:? "type"))++instance ToJSON EventGadget where+        toJSON EventGadget{..}+          = object+              (catMaybes+                 [("height" .=) <$> _egHeight,+                  ("display" .=) <$> _egDisplay,+                  ("preferences" .=) <$> _egPreferences,+                  ("link" .=) <$> _egLink,+                  ("iconLink" .=) <$> _egIconLink,+                  ("width" .=) <$> _egWidth, ("title" .=) <$> _egTitle,+                  ("type" .=) <$> _egType])++-- | Preferences.+--+-- /See:/ 'eventGadgetPreferences' smart constructor.+newtype EventGadgetPreferences = EventGadgetPreferences+    { _egpAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventGadgetPreferences' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'egpAddtional'+eventGadgetPreferences+    :: HashMap Text Text -- ^ 'egpAddtional'+    -> EventGadgetPreferences+eventGadgetPreferences pEgpAddtional_ =+    EventGadgetPreferences+    { _egpAddtional = _Coerce # pEgpAddtional_+    }++-- | The preference name and corresponding value.+egpAddtional :: Lens' EventGadgetPreferences (HashMap Text Text)+egpAddtional+  = lens _egpAddtional (\ s a -> s{_egpAddtional = a})+      . _Coerce++instance FromJSON EventGadgetPreferences where+        parseJSON+          = withObject "EventGadgetPreferences"+              (\ o ->+                 EventGadgetPreferences <$> (parseJSONObject o))++instance ToJSON EventGadgetPreferences where+        toJSON = toJSON . _egpAddtional++--+-- /See:/ 'freeBusyRequest' smart constructor.+data FreeBusyRequest = FreeBusyRequest+    { _fCalendarExpansionMax :: !(Maybe (Textual Int32))+    , _fTimeMin              :: !(Maybe DateTime')+    , _fItems                :: !(Maybe [FreeBusyRequestItem])+    , _fGroupExpansionMax    :: !(Maybe (Textual Int32))+    , _fTimeZone             :: !Text+    , _fTimeMax              :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FreeBusyRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fCalendarExpansionMax'+--+-- * 'fTimeMin'+--+-- * 'fItems'+--+-- * 'fGroupExpansionMax'+--+-- * 'fTimeZone'+--+-- * 'fTimeMax'+freeBusyRequest+    :: FreeBusyRequest+freeBusyRequest =+    FreeBusyRequest+    { _fCalendarExpansionMax = Nothing+    , _fTimeMin = Nothing+    , _fItems = Nothing+    , _fGroupExpansionMax = Nothing+    , _fTimeZone = "UTC"+    , _fTimeMax = Nothing+    }++-- | Maximal number of calendars for which FreeBusy information is to be+-- provided. Optional.+fCalendarExpansionMax :: Lens' FreeBusyRequest (Maybe Int32)+fCalendarExpansionMax+  = lens _fCalendarExpansionMax+      (\ s a -> s{_fCalendarExpansionMax = a})+      . mapping _Coerce++-- | The start of the interval for the query.+fTimeMin :: Lens' FreeBusyRequest (Maybe UTCTime)+fTimeMin+  = lens _fTimeMin (\ s a -> s{_fTimeMin = a}) .+      mapping _DateTime++-- | List of calendars and\/or groups to query.+fItems :: Lens' FreeBusyRequest [FreeBusyRequestItem]+fItems+  = lens _fItems (\ s a -> s{_fItems = a}) . _Default .+      _Coerce++-- | Maximal number of calendar identifiers to be provided for a single+-- group. Optional. An error will be returned for a group with more members+-- than this value.+fGroupExpansionMax :: Lens' FreeBusyRequest (Maybe Int32)+fGroupExpansionMax+  = lens _fGroupExpansionMax+      (\ s a -> s{_fGroupExpansionMax = a})+      . mapping _Coerce++-- | Time zone used in the response. Optional. The default is UTC.+fTimeZone :: Lens' FreeBusyRequest Text+fTimeZone+  = lens _fTimeZone (\ s a -> s{_fTimeZone = a})++-- | The end of the interval for the query.+fTimeMax :: Lens' FreeBusyRequest (Maybe UTCTime)+fTimeMax+  = lens _fTimeMax (\ s a -> s{_fTimeMax = a}) .+      mapping _DateTime++instance FromJSON FreeBusyRequest where+        parseJSON+          = withObject "FreeBusyRequest"+              (\ o ->+                 FreeBusyRequest <$>+                   (o .:? "calendarExpansionMax") <*> (o .:? "timeMin")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "groupExpansionMax")+                     <*> (o .:? "timeZone" .!= "UTC")+                     <*> (o .:? "timeMax"))++instance ToJSON FreeBusyRequest where+        toJSON FreeBusyRequest{..}+          = object+              (catMaybes+                 [("calendarExpansionMax" .=) <$>+                    _fCalendarExpansionMax,+                  ("timeMin" .=) <$> _fTimeMin,+                  ("items" .=) <$> _fItems,+                  ("groupExpansionMax" .=) <$> _fGroupExpansionMax,+                  Just ("timeZone" .= _fTimeZone),+                  ("timeMax" .=) <$> _fTimeMax])++--+-- /See:/ 'aclRule' smart constructor.+data ACLRule = ACLRule+    { _arEtag  :: !(Maybe Text)+    , _arKind  :: !Text+    , _arRole  :: !(Maybe Text)+    , _arScope :: !(Maybe ACLRuleScope)+    , _arId    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ACLRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'arEtag'+--+-- * 'arKind'+--+-- * 'arRole'+--+-- * 'arScope'+--+-- * 'arId'+aclRule+    :: ACLRule+aclRule =+    ACLRule+    { _arEtag = Nothing+    , _arKind = "calendar#aclRule"+    , _arRole = Nothing+    , _arScope = Nothing+    , _arId = Nothing+    }++-- | ETag of the resource.+arEtag :: Lens' ACLRule (Maybe Text)+arEtag = lens _arEtag (\ s a -> s{_arEtag = a})++-- | Type of the resource (\"calendar#aclRule\").+arKind :: Lens' ACLRule Text+arKind = lens _arKind (\ s a -> s{_arKind = a})++-- | The role assigned to the scope. Possible values are: - \"none\" -+-- Provides no access. - \"freeBusyReader\" - Provides read access to+-- free\/busy information. - \"reader\" - Provides read access to the+-- calendar. Private events will appear to users with reader access, but+-- event details will be hidden. - \"writer\" - Provides read and write+-- access to the calendar. Private events will appear to users with writer+-- access, and event details will be visible. - \"owner\" - Provides+-- ownership of the calendar. This role has all of the permissions of the+-- writer role with the additional ability to see and manipulate ACLs.+arRole :: Lens' ACLRule (Maybe Text)+arRole = lens _arRole (\ s a -> s{_arRole = a})++-- | The scope of the rule.+arScope :: Lens' ACLRule (Maybe ACLRuleScope)+arScope = lens _arScope (\ s a -> s{_arScope = a})++-- | Identifier of the ACL rule.+arId :: Lens' ACLRule (Maybe Text)+arId = lens _arId (\ s a -> s{_arId = a})++instance FromJSON ACLRule where+        parseJSON+          = withObject "ACLRule"+              (\ o ->+                 ACLRule <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "calendar#aclRule")+                     <*> (o .:? "role")+                     <*> (o .:? "scope")+                     <*> (o .:? "id"))++instance ToJSON ACLRule where+        toJSON ACLRule{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _arEtag, Just ("kind" .= _arKind),+                  ("role" .=) <$> _arRole, ("scope" .=) <$> _arScope,+                  ("id" .=) <$> _arId])++-- | Properties that are shared between copies of the event on other+-- attendees\' calendars.+--+-- /See:/ 'eventExtendedPropertiesShared' smart constructor.+newtype EventExtendedPropertiesShared = EventExtendedPropertiesShared+    { _eepsAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventExtendedPropertiesShared' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eepsAddtional'+eventExtendedPropertiesShared+    :: HashMap Text Text -- ^ 'eepsAddtional'+    -> EventExtendedPropertiesShared+eventExtendedPropertiesShared pEepsAddtional_ =+    EventExtendedPropertiesShared+    { _eepsAddtional = _Coerce # pEepsAddtional_+    }++-- | The name of the shared property and the corresponding value.+eepsAddtional :: Lens' EventExtendedPropertiesShared (HashMap Text Text)+eepsAddtional+  = lens _eepsAddtional+      (\ s a -> s{_eepsAddtional = a})+      . _Coerce++instance FromJSON EventExtendedPropertiesShared where+        parseJSON+          = withObject "EventExtendedPropertiesShared"+              (\ o ->+                 EventExtendedPropertiesShared <$>+                   (parseJSONObject o))++instance ToJSON EventExtendedPropertiesShared where+        toJSON = toJSON . _eepsAddtional++-- | List of free\/busy information for calendars.+--+-- /See:/ 'freeBusyResponseCalendars' smart constructor.+newtype FreeBusyResponseCalendars = FreeBusyResponseCalendars+    { _fbrcAddtional :: HashMap Text FreeBusyCalendar+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FreeBusyResponseCalendars' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fbrcAddtional'+freeBusyResponseCalendars+    :: HashMap Text FreeBusyCalendar -- ^ 'fbrcAddtional'+    -> FreeBusyResponseCalendars+freeBusyResponseCalendars pFbrcAddtional_ =+    FreeBusyResponseCalendars+    { _fbrcAddtional = _Coerce # pFbrcAddtional_+    }++-- | Free\/busy expansions for a single calendar.+fbrcAddtional :: Lens' FreeBusyResponseCalendars (HashMap Text FreeBusyCalendar)+fbrcAddtional+  = lens _fbrcAddtional+      (\ s a -> s{_fbrcAddtional = a})+      . _Coerce++instance FromJSON FreeBusyResponseCalendars where+        parseJSON+          = withObject "FreeBusyResponseCalendars"+              (\ o ->+                 FreeBusyResponseCalendars <$> (parseJSONObject o))++instance ToJSON FreeBusyResponseCalendars where+        toJSON = toJSON . _fbrcAddtional++--+-- /See:/ 'acl' smart constructor.+data ACL = ACL+    { _aEtag          :: !(Maybe Text)+    , _aNextPageToken :: !(Maybe Text)+    , _aKind          :: !Text+    , _aItems         :: !(Maybe [ACLRule])+    , _aNextSyncToken :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ACL' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aEtag'+--+-- * 'aNextPageToken'+--+-- * 'aKind'+--+-- * 'aItems'+--+-- * 'aNextSyncToken'+acl+    :: ACL+acl =+    ACL+    { _aEtag = Nothing+    , _aNextPageToken = Nothing+    , _aKind = "calendar#acl"+    , _aItems = Nothing+    , _aNextSyncToken = Nothing+    }++-- | ETag of the collection.+aEtag :: Lens' ACL (Maybe Text)+aEtag = lens _aEtag (\ s a -> s{_aEtag = a})++-- | Token used to access the next page of this result. Omitted if no further+-- results are available, in which case nextSyncToken is provided.+aNextPageToken :: Lens' ACL (Maybe Text)+aNextPageToken+  = lens _aNextPageToken+      (\ s a -> s{_aNextPageToken = a})++-- | Type of the collection (\"calendar#acl\").+aKind :: Lens' ACL Text+aKind = lens _aKind (\ s a -> s{_aKind = a})++-- | List of rules on the access control list.+aItems :: Lens' ACL [ACLRule]+aItems+  = lens _aItems (\ s a -> s{_aItems = a}) . _Default .+      _Coerce++-- | Token used at a later point in time to retrieve only the entries that+-- have changed since this result was returned. Omitted if further results+-- are available, in which case nextPageToken is provided.+aNextSyncToken :: Lens' ACL (Maybe Text)+aNextSyncToken+  = lens _aNextSyncToken+      (\ s a -> s{_aNextSyncToken = a})++instance FromJSON ACL where+        parseJSON+          = withObject "ACL"+              (\ o ->+                 ACL <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "calendar#acl")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "nextSyncToken"))++instance ToJSON ACL where+        toJSON ACL{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _aEtag,+                  ("nextPageToken" .=) <$> _aNextPageToken,+                  Just ("kind" .= _aKind), ("items" .=) <$> _aItems,+                  ("nextSyncToken" .=) <$> _aNextSyncToken])++--+-- /See:/ 'colors' smart constructor.+data Colors = Colors+    { _colEvent    :: !(Maybe ColorsEvent)+    , _colKind     :: !Text+    , _colCalendar :: !(Maybe ColorsCalendar)+    , _colUpdated  :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Colors' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'colEvent'+--+-- * 'colKind'+--+-- * 'colCalendar'+--+-- * 'colUpdated'+colors+    :: Colors+colors =+    Colors+    { _colEvent = Nothing+    , _colKind = "calendar#colors"+    , _colCalendar = Nothing+    , _colUpdated = Nothing+    }++-- | A global palette of event colors, mapping from the color ID to its+-- definition. An event resource may refer to one of these color IDs in its+-- color field. Read-only.+colEvent :: Lens' Colors (Maybe ColorsEvent)+colEvent = lens _colEvent (\ s a -> s{_colEvent = a})++-- | Type of the resource (\"calendar#colors\").+colKind :: Lens' Colors Text+colKind = lens _colKind (\ s a -> s{_colKind = a})++-- | A global palette of calendar colors, mapping from the color ID to its+-- definition. A calendarListEntry resource refers to one of these color+-- IDs in its color field. Read-only.+colCalendar :: Lens' Colors (Maybe ColorsCalendar)+colCalendar+  = lens _colCalendar (\ s a -> s{_colCalendar = a})++-- | Last modification time of the color palette (as a RFC3339 timestamp).+-- Read-only.+colUpdated :: Lens' Colors (Maybe UTCTime)+colUpdated+  = lens _colUpdated (\ s a -> s{_colUpdated = a}) .+      mapping _DateTime++instance FromJSON Colors where+        parseJSON+          = withObject "Colors"+              (\ o ->+                 Colors <$>+                   (o .:? "event") <*>+                     (o .:? "kind" .!= "calendar#colors")+                     <*> (o .:? "calendar")+                     <*> (o .:? "updated"))++instance ToJSON Colors where+        toJSON Colors{..}+          = object+              (catMaybes+                 [("event" .=) <$> _colEvent,+                  Just ("kind" .= _colKind),+                  ("calendar" .=) <$> _colCalendar,+                  ("updated" .=) <$> _colUpdated])++--+-- /See:/ 'freeBusyGroup' smart constructor.+data FreeBusyGroup = FreeBusyGroup+    { _fbgCalendars :: !(Maybe [Text])+    , _fbgErrors    :: !(Maybe [Error'])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FreeBusyGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fbgCalendars'+--+-- * 'fbgErrors'+freeBusyGroup+    :: FreeBusyGroup+freeBusyGroup =+    FreeBusyGroup+    { _fbgCalendars = Nothing+    , _fbgErrors = Nothing+    }++-- | List of calendars\' identifiers within a group.+fbgCalendars :: Lens' FreeBusyGroup [Text]+fbgCalendars+  = lens _fbgCalendars (\ s a -> s{_fbgCalendars = a})+      . _Default+      . _Coerce++-- | Optional error(s) (if computation for the group failed).+fbgErrors :: Lens' FreeBusyGroup [Error']+fbgErrors+  = lens _fbgErrors (\ s a -> s{_fbgErrors = a}) .+      _Default+      . _Coerce++instance FromJSON FreeBusyGroup where+        parseJSON+          = withObject "FreeBusyGroup"+              (\ o ->+                 FreeBusyGroup <$>+                   (o .:? "calendars" .!= mempty) <*>+                     (o .:? "errors" .!= mempty))++instance ToJSON FreeBusyGroup where+        toJSON FreeBusyGroup{..}+          = object+              (catMaybes+                 [("calendars" .=) <$> _fbgCalendars,+                  ("errors" .=) <$> _fbgErrors])++-- | Source from which the event was created. For example, a web page, an+-- email message or any document identifiable by an URL with HTTP or HTTPS+-- scheme. Can only be seen or modified by the creator of the event.+--+-- /See:/ 'eventSource' smart constructor.+data EventSource = EventSource+    { _esURL   :: !(Maybe Text)+    , _esTitle :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'esURL'+--+-- * 'esTitle'+eventSource+    :: EventSource+eventSource =+    EventSource+    { _esURL = Nothing+    , _esTitle = Nothing+    }++-- | URL of the source pointing to a resource. The URL scheme must be HTTP or+-- HTTPS.+esURL :: Lens' EventSource (Maybe Text)+esURL = lens _esURL (\ s a -> s{_esURL = a})++-- | Title of the source; for example a title of a web page or an email+-- subject.+esTitle :: Lens' EventSource (Maybe Text)+esTitle = lens _esTitle (\ s a -> s{_esTitle = a})++instance FromJSON EventSource where+        parseJSON+          = withObject "EventSource"+              (\ o ->+                 EventSource <$> (o .:? "url") <*> (o .:? "title"))++instance ToJSON EventSource where+        toJSON EventSource{..}+          = object+              (catMaybes+                 [("url" .=) <$> _esURL, ("title" .=) <$> _esTitle])
+ gen/Network/Google/AppsCalendar/Types/Sum.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.AppsCalendar.Types.Sum+-- Copyright   : (c) 2015 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.AppsCalendar.Types.Sum where++import           Network.Google.Prelude++-- | The order of the events returned in the result. Optional. The default is+-- an unspecified, stable order.+data EventsListOrderBy+    = StartTime+      -- ^ @startTime@+      -- Order by the start date\/time (ascending). This is only available when+      -- querying single events (i.e. the parameter singleEvents is True)+    | Updated+      -- ^ @updated@+      -- Order by last modification time (ascending).+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable EventsListOrderBy++instance FromText EventsListOrderBy where+    fromText = \case+        "startTime" -> Just StartTime+        "updated" -> Just Updated+        _ -> Nothing++instance ToText EventsListOrderBy where+    toText = \case+        StartTime -> "startTime"+        Updated -> "updated"++instance FromJSON EventsListOrderBy where+    parseJSON = parseJSONText "EventsListOrderBy"++instance ToJSON EventsListOrderBy where+    toJSON = toJSONText++-- | The minimum access role for the user in the returned entries. Optional.+-- The default is no restriction.+data CalendarListListMinAccessRole+    = FreeBusyReader+      -- ^ @freeBusyReader@+      -- The user can read free\/busy information.+    | Owner+      -- ^ @owner@+      -- The user can read and modify events and access control lists.+    | Reader+      -- ^ @reader@+      -- The user can read events that are not private.+    | Writer+      -- ^ @writer@+      -- The user can read and modify events.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable CalendarListListMinAccessRole++instance FromText CalendarListListMinAccessRole where+    fromText = \case+        "freeBusyReader" -> Just FreeBusyReader+        "owner" -> Just Owner+        "reader" -> Just Reader+        "writer" -> Just Writer+        _ -> Nothing++instance ToText CalendarListListMinAccessRole where+    toText = \case+        FreeBusyReader -> "freeBusyReader"+        Owner -> "owner"+        Reader -> "reader"+        Writer -> "writer"++instance FromJSON CalendarListListMinAccessRole where+    parseJSON = parseJSONText "CalendarListListMinAccessRole"++instance ToJSON CalendarListListMinAccessRole where+    toJSON = toJSONText++-- | The order of the events returned in the result. Optional. The default is+-- an unspecified, stable order.+data EventsWatchOrderBy+    = EWOBStartTime+      -- ^ @startTime@+      -- Order by the start date\/time (ascending). This is only available when+      -- querying single events (i.e. the parameter singleEvents is True)+    | EWOBUpdated+      -- ^ @updated@+      -- Order by last modification time (ascending).+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable EventsWatchOrderBy++instance FromText EventsWatchOrderBy where+    fromText = \case+        "startTime" -> Just EWOBStartTime+        "updated" -> Just EWOBUpdated+        _ -> Nothing++instance ToText EventsWatchOrderBy where+    toText = \case+        EWOBStartTime -> "startTime"+        EWOBUpdated -> "updated"++instance FromJSON EventsWatchOrderBy where+    parseJSON = parseJSONText "EventsWatchOrderBy"++instance ToJSON EventsWatchOrderBy where+    toJSON = toJSONText++-- | The minimum access role for the user in the returned entries. Optional.+-- The default is no restriction.+data CalendarListWatchMinAccessRole+    = CLWMARFreeBusyReader+      -- ^ @freeBusyReader@+      -- The user can read free\/busy information.+    | CLWMAROwner+      -- ^ @owner@+      -- The user can read and modify events and access control lists.+    | CLWMARReader+      -- ^ @reader@+      -- The user can read events that are not private.+    | CLWMARWriter+      -- ^ @writer@+      -- The user can read and modify events.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable CalendarListWatchMinAccessRole++instance FromText CalendarListWatchMinAccessRole where+    fromText = \case+        "freeBusyReader" -> Just CLWMARFreeBusyReader+        "owner" -> Just CLWMAROwner+        "reader" -> Just CLWMARReader+        "writer" -> Just CLWMARWriter+        _ -> Nothing++instance ToText CalendarListWatchMinAccessRole where+    toText = \case+        CLWMARFreeBusyReader -> "freeBusyReader"+        CLWMAROwner -> "owner"+        CLWMARReader -> "reader"+        CLWMARWriter -> "writer"++instance FromJSON CalendarListWatchMinAccessRole where+    parseJSON = parseJSONText "CalendarListWatchMinAccessRole"++instance ToJSON CalendarListWatchMinAccessRole where+    toJSON = toJSONText
+ gen/Network/Google/Resource/Calendar/ACL/Delete.hs view
@@ -0,0 +1,97 @@+{-# 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.Calendar.ACL.Delete+-- Copyright   : (c) 2015 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 an access control rule.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.delete@.+module Network.Google.Resource.Calendar.ACL.Delete+    (+    -- * REST Resource+      ACLDeleteResource++    -- * Creating a Request+    , aclDelete+    , ACLDelete++    -- * Request Lenses+    , adCalendarId+    , adRuleId+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.acl.delete@ method which the+-- 'ACLDelete' request conforms to.+type ACLDeleteResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "acl" :>+               Capture "ruleId" Text :>+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes an access control rule.+--+-- /See:/ 'aclDelete' smart constructor.+data ACLDelete = ACLDelete+    { _adCalendarId :: !Text+    , _adRuleId     :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ACLDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'adCalendarId'+--+-- * 'adRuleId'+aclDelete+    :: Text -- ^ 'adCalendarId'+    -> Text -- ^ 'adRuleId'+    -> ACLDelete+aclDelete pAdCalendarId_ pAdRuleId_ =+    ACLDelete+    { _adCalendarId = pAdCalendarId_+    , _adRuleId = pAdRuleId_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+adCalendarId :: Lens' ACLDelete Text+adCalendarId+  = lens _adCalendarId (\ s a -> s{_adCalendarId = a})++-- | ACL rule identifier.+adRuleId :: Lens' ACLDelete Text+adRuleId = lens _adRuleId (\ s a -> s{_adRuleId = a})++instance GoogleRequest ACLDelete where+        type Rs ACLDelete = ()+        requestClient ACLDelete{..}+          = go _adCalendarId _adRuleId (Just AltJSON)+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy ACLDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/ACL/Get.hs view
@@ -0,0 +1,96 @@+{-# 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.Calendar.ACL.Get+-- Copyright   : (c) 2015 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 an access control rule.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.get@.+module Network.Google.Resource.Calendar.ACL.Get+    (+    -- * REST Resource+      ACLGetResource++    -- * Creating a Request+    , aclGet+    , ACLGet++    -- * Request Lenses+    , agCalendarId+    , agRuleId+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.acl.get@ method which the+-- 'ACLGet' request conforms to.+type ACLGetResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "acl" :>+               Capture "ruleId" Text :>+                 QueryParam "alt" AltJSON :> Get '[JSON] ACLRule++-- | Returns an access control rule.+--+-- /See:/ 'aclGet' smart constructor.+data ACLGet = ACLGet+    { _agCalendarId :: !Text+    , _agRuleId     :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ACLGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'agCalendarId'+--+-- * 'agRuleId'+aclGet+    :: Text -- ^ 'agCalendarId'+    -> Text -- ^ 'agRuleId'+    -> ACLGet+aclGet pAgCalendarId_ pAgRuleId_ =+    ACLGet+    { _agCalendarId = pAgCalendarId_+    , _agRuleId = pAgRuleId_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+agCalendarId :: Lens' ACLGet Text+agCalendarId+  = lens _agCalendarId (\ s a -> s{_agCalendarId = a})++-- | ACL rule identifier.+agRuleId :: Lens' ACLGet Text+agRuleId = lens _agRuleId (\ s a -> s{_agRuleId = a})++instance GoogleRequest ACLGet where+        type Rs ACLGet = ACLRule+        requestClient ACLGet{..}+          = go _agCalendarId _agRuleId (Just AltJSON)+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy ACLGetResource) mempty
+ gen/Network/Google/Resource/Calendar/ACL/Insert.hs view
@@ -0,0 +1,98 @@+{-# 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.Calendar.ACL.Insert+-- Copyright   : (c) 2015 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 an access control rule.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.insert@.+module Network.Google.Resource.Calendar.ACL.Insert+    (+    -- * REST Resource+      ACLInsertResource++    -- * Creating a Request+    , aclInsert+    , ACLInsert++    -- * Request Lenses+    , aiCalendarId+    , aiPayload+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.acl.insert@ method which the+-- 'ACLInsert' request conforms to.+type ACLInsertResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "acl" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] ACLRule :> Post '[JSON] ACLRule++-- | Creates an access control rule.+--+-- /See:/ 'aclInsert' smart constructor.+data ACLInsert = ACLInsert+    { _aiCalendarId :: !Text+    , _aiPayload    :: !ACLRule+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ACLInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aiCalendarId'+--+-- * 'aiPayload'+aclInsert+    :: Text -- ^ 'aiCalendarId'+    -> ACLRule -- ^ 'aiPayload'+    -> ACLInsert+aclInsert pAiCalendarId_ pAiPayload_ =+    ACLInsert+    { _aiCalendarId = pAiCalendarId_+    , _aiPayload = pAiPayload_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+aiCalendarId :: Lens' ACLInsert Text+aiCalendarId+  = lens _aiCalendarId (\ s a -> s{_aiCalendarId = a})++-- | Multipart request metadata.+aiPayload :: Lens' ACLInsert ACLRule+aiPayload+  = lens _aiPayload (\ s a -> s{_aiPayload = a})++instance GoogleRequest ACLInsert where+        type Rs ACLInsert = ACLRule+        requestClient ACLInsert{..}+          = go _aiCalendarId (Just AltJSON) _aiPayload+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy ACLInsertResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/ACL/List.hs view
@@ -0,0 +1,146 @@+{-# 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.Calendar.ACL.List+-- Copyright   : (c) 2015 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 the rules in the access control list for the calendar.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.list@.+module Network.Google.Resource.Calendar.ACL.List+    (+    -- * REST Resource+      ACLListResource++    -- * Creating a Request+    , aclList+    , ACLList++    -- * Request Lenses+    , alSyncToken+    , alCalendarId+    , alShowDeleted+    , alPageToken+    , alMaxResults+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.acl.list@ method which the+-- 'ACLList' request conforms to.+type ACLListResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "acl" :>+               QueryParam "syncToken" Text :>+                 QueryParam "showDeleted" Bool :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Int32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] ACL++-- | Returns the rules in the access control list for the calendar.+--+-- /See:/ 'aclList' smart constructor.+data ACLList = ACLList+    { _alSyncToken   :: !(Maybe Text)+    , _alCalendarId  :: !Text+    , _alShowDeleted :: !(Maybe Bool)+    , _alPageToken   :: !(Maybe Text)+    , _alMaxResults  :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ACLList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'alSyncToken'+--+-- * 'alCalendarId'+--+-- * 'alShowDeleted'+--+-- * 'alPageToken'+--+-- * 'alMaxResults'+aclList+    :: Text -- ^ 'alCalendarId'+    -> ACLList+aclList pAlCalendarId_ =+    ACLList+    { _alSyncToken = Nothing+    , _alCalendarId = pAlCalendarId_+    , _alShowDeleted = Nothing+    , _alPageToken = Nothing+    , _alMaxResults = Nothing+    }++-- | Token obtained from the nextSyncToken field returned on the last page of+-- results from the previous list request. It makes the result of this list+-- request contain only entries that have changed since then. All entries+-- deleted since the previous list request will always be in the result set+-- and it is not allowed to set showDeleted to False. If the syncToken+-- expires, the server will respond with a 410 GONE response code and the+-- client should clear its storage and perform a full synchronization+-- without any syncToken. Learn more about incremental synchronization.+-- Optional. The default is to return all entries.+alSyncToken :: Lens' ACLList (Maybe Text)+alSyncToken+  = lens _alSyncToken (\ s a -> s{_alSyncToken = a})++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+alCalendarId :: Lens' ACLList Text+alCalendarId+  = lens _alCalendarId (\ s a -> s{_alCalendarId = a})++-- | Whether to include deleted ACLs in the result. Deleted ACLs are+-- represented by role equal to \"none\". Deleted ACLs will always be+-- included if syncToken is provided. Optional. The default is False.+alShowDeleted :: Lens' ACLList (Maybe Bool)+alShowDeleted+  = lens _alShowDeleted+      (\ s a -> s{_alShowDeleted = a})++-- | Token specifying which result page to return. Optional.+alPageToken :: Lens' ACLList (Maybe Text)+alPageToken+  = lens _alPageToken (\ s a -> s{_alPageToken = a})++-- | Maximum number of entries returned on one result page. By default the+-- value is 100 entries. The page size can never be larger than 250+-- entries. Optional.+alMaxResults :: Lens' ACLList (Maybe Int32)+alMaxResults+  = lens _alMaxResults (\ s a -> s{_alMaxResults = a})+      . mapping _Coerce++instance GoogleRequest ACLList where+        type Rs ACLList = ACL+        requestClient ACLList{..}+          = go _alCalendarId _alSyncToken _alShowDeleted+              _alPageToken+              _alMaxResults+              (Just AltJSON)+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy ACLListResource) mempty
+ gen/Network/Google/Resource/Calendar/ACL/Patch.hs view
@@ -0,0 +1,110 @@+{-# 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.Calendar.ACL.Patch+-- Copyright   : (c) 2015 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 an access control rule. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.patch@.+module Network.Google.Resource.Calendar.ACL.Patch+    (+    -- * REST Resource+      ACLPatchResource++    -- * Creating a Request+    , aclPatch+    , ACLPatch++    -- * Request Lenses+    , apCalendarId+    , apRuleId+    , apPayload+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.acl.patch@ method which the+-- 'ACLPatch' request conforms to.+type ACLPatchResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "acl" :>+               Capture "ruleId" Text :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] ACLRule :> Patch '[JSON] ACLRule++-- | Updates an access control rule. This method supports patch semantics.+--+-- /See:/ 'aclPatch' smart constructor.+data ACLPatch = ACLPatch+    { _apCalendarId :: !Text+    , _apRuleId     :: !Text+    , _apPayload    :: !ACLRule+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ACLPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'apCalendarId'+--+-- * 'apRuleId'+--+-- * 'apPayload'+aclPatch+    :: Text -- ^ 'apCalendarId'+    -> Text -- ^ 'apRuleId'+    -> ACLRule -- ^ 'apPayload'+    -> ACLPatch+aclPatch pApCalendarId_ pApRuleId_ pApPayload_ =+    ACLPatch+    { _apCalendarId = pApCalendarId_+    , _apRuleId = pApRuleId_+    , _apPayload = pApPayload_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+apCalendarId :: Lens' ACLPatch Text+apCalendarId+  = lens _apCalendarId (\ s a -> s{_apCalendarId = a})++-- | ACL rule identifier.+apRuleId :: Lens' ACLPatch Text+apRuleId = lens _apRuleId (\ s a -> s{_apRuleId = a})++-- | Multipart request metadata.+apPayload :: Lens' ACLPatch ACLRule+apPayload+  = lens _apPayload (\ s a -> s{_apPayload = a})++instance GoogleRequest ACLPatch where+        type Rs ACLPatch = ACLRule+        requestClient ACLPatch{..}+          = go _apCalendarId _apRuleId (Just AltJSON)+              _apPayload+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy ACLPatchResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/ACL/Update.hs view
@@ -0,0 +1,110 @@+{-# 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.Calendar.ACL.Update+-- Copyright   : (c) 2015 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 an access control rule.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.update@.+module Network.Google.Resource.Calendar.ACL.Update+    (+    -- * REST Resource+      ACLUpdateResource++    -- * Creating a Request+    , aclUpdate+    , ACLUpdate++    -- * Request Lenses+    , auCalendarId+    , auRuleId+    , auPayload+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.acl.update@ method which the+-- 'ACLUpdate' request conforms to.+type ACLUpdateResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "acl" :>+               Capture "ruleId" Text :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] ACLRule :> Put '[JSON] ACLRule++-- | Updates an access control rule.+--+-- /See:/ 'aclUpdate' smart constructor.+data ACLUpdate = ACLUpdate+    { _auCalendarId :: !Text+    , _auRuleId     :: !Text+    , _auPayload    :: !ACLRule+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ACLUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'auCalendarId'+--+-- * 'auRuleId'+--+-- * 'auPayload'+aclUpdate+    :: Text -- ^ 'auCalendarId'+    -> Text -- ^ 'auRuleId'+    -> ACLRule -- ^ 'auPayload'+    -> ACLUpdate+aclUpdate pAuCalendarId_ pAuRuleId_ pAuPayload_ =+    ACLUpdate+    { _auCalendarId = pAuCalendarId_+    , _auRuleId = pAuRuleId_+    , _auPayload = pAuPayload_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+auCalendarId :: Lens' ACLUpdate Text+auCalendarId+  = lens _auCalendarId (\ s a -> s{_auCalendarId = a})++-- | ACL rule identifier.+auRuleId :: Lens' ACLUpdate Text+auRuleId = lens _auRuleId (\ s a -> s{_auRuleId = a})++-- | Multipart request metadata.+auPayload :: Lens' ACLUpdate ACLRule+auPayload+  = lens _auPayload (\ s a -> s{_auPayload = a})++instance GoogleRequest ACLUpdate where+        type Rs ACLUpdate = ACLRule+        requestClient ACLUpdate{..}+          = go _auCalendarId _auRuleId (Just AltJSON)+              _auPayload+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy ACLUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/ACL/Watch.hs view
@@ -0,0 +1,161 @@+{-# 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.Calendar.ACL.Watch+-- Copyright   : (c) 2015 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)+--+-- Watch for changes to ACL resources.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.watch@.+module Network.Google.Resource.Calendar.ACL.Watch+    (+    -- * REST Resource+      ACLWatchResource++    -- * Creating a Request+    , aclWatch+    , ACLWatch++    -- * Request Lenses+    , awSyncToken+    , awCalendarId+    , awShowDeleted+    , awPayload+    , awPageToken+    , awMaxResults+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.acl.watch@ method which the+-- 'ACLWatch' request conforms to.+type ACLWatchResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "acl" :>+               "watch" :>+                 QueryParam "syncToken" Text :>+                   QueryParam "showDeleted" Bool :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Int32) :>+                         QueryParam "alt" AltJSON :>+                           ReqBody '[JSON] Channel :> Post '[JSON] Channel++-- | Watch for changes to ACL resources.+--+-- /See:/ 'aclWatch' smart constructor.+data ACLWatch = ACLWatch+    { _awSyncToken   :: !(Maybe Text)+    , _awCalendarId  :: !Text+    , _awShowDeleted :: !(Maybe Bool)+    , _awPayload     :: !Channel+    , _awPageToken   :: !(Maybe Text)+    , _awMaxResults  :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ACLWatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'awSyncToken'+--+-- * 'awCalendarId'+--+-- * 'awShowDeleted'+--+-- * 'awPayload'+--+-- * 'awPageToken'+--+-- * 'awMaxResults'+aclWatch+    :: Text -- ^ 'awCalendarId'+    -> Channel -- ^ 'awPayload'+    -> ACLWatch+aclWatch pAwCalendarId_ pAwPayload_ =+    ACLWatch+    { _awSyncToken = Nothing+    , _awCalendarId = pAwCalendarId_+    , _awShowDeleted = Nothing+    , _awPayload = pAwPayload_+    , _awPageToken = Nothing+    , _awMaxResults = Nothing+    }++-- | Token obtained from the nextSyncToken field returned on the last page of+-- results from the previous list request. It makes the result of this list+-- request contain only entries that have changed since then. All entries+-- deleted since the previous list request will always be in the result set+-- and it is not allowed to set showDeleted to False. If the syncToken+-- expires, the server will respond with a 410 GONE response code and the+-- client should clear its storage and perform a full synchronization+-- without any syncToken. Learn more about incremental synchronization.+-- Optional. The default is to return all entries.+awSyncToken :: Lens' ACLWatch (Maybe Text)+awSyncToken+  = lens _awSyncToken (\ s a -> s{_awSyncToken = a})++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+awCalendarId :: Lens' ACLWatch Text+awCalendarId+  = lens _awCalendarId (\ s a -> s{_awCalendarId = a})++-- | Whether to include deleted ACLs in the result. Deleted ACLs are+-- represented by role equal to \"none\". Deleted ACLs will always be+-- included if syncToken is provided. Optional. The default is False.+awShowDeleted :: Lens' ACLWatch (Maybe Bool)+awShowDeleted+  = lens _awShowDeleted+      (\ s a -> s{_awShowDeleted = a})++-- | Multipart request metadata.+awPayload :: Lens' ACLWatch Channel+awPayload+  = lens _awPayload (\ s a -> s{_awPayload = a})++-- | Token specifying which result page to return. Optional.+awPageToken :: Lens' ACLWatch (Maybe Text)+awPageToken+  = lens _awPageToken (\ s a -> s{_awPageToken = a})++-- | Maximum number of entries returned on one result page. By default the+-- value is 100 entries. The page size can never be larger than 250+-- entries. Optional.+awMaxResults :: Lens' ACLWatch (Maybe Int32)+awMaxResults+  = lens _awMaxResults (\ s a -> s{_awMaxResults = a})+      . mapping _Coerce++instance GoogleRequest ACLWatch where+        type Rs ACLWatch = Channel+        requestClient ACLWatch{..}+          = go _awCalendarId _awSyncToken _awShowDeleted+              _awPageToken+              _awMaxResults+              (Just AltJSON)+              _awPayload+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy ACLWatchResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/CalendarList/Delete.hs view
@@ -0,0 +1,89 @@+{-# 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.Calendar.CalendarList.Delete+-- Copyright   : (c) 2015 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 an entry on the user\'s calendar list.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.delete@.+module Network.Google.Resource.Calendar.CalendarList.Delete+    (+    -- * REST Resource+      CalendarListDeleteResource++    -- * Creating a Request+    , calendarListDelete+    , CalendarListDelete++    -- * Request Lenses+    , cldCalendarId+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.calendarList.delete@ method which the+-- 'CalendarListDelete' request conforms to.+type CalendarListDeleteResource =+     "calendar" :>+       "v3" :>+         "users" :>+           "me" :>+             "calendarList" :>+               Capture "calendarId" Text :>+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes an entry on the user\'s calendar list.+--+-- /See:/ 'calendarListDelete' smart constructor.+newtype CalendarListDelete = CalendarListDelete+    { _cldCalendarId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarListDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cldCalendarId'+calendarListDelete+    :: Text -- ^ 'cldCalendarId'+    -> CalendarListDelete+calendarListDelete pCldCalendarId_ =+    CalendarListDelete+    { _cldCalendarId = pCldCalendarId_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+cldCalendarId :: Lens' CalendarListDelete Text+cldCalendarId+  = lens _cldCalendarId+      (\ s a -> s{_cldCalendarId = a})++instance GoogleRequest CalendarListDelete where+        type Rs CalendarListDelete = ()+        requestClient CalendarListDelete{..}+          = go _cldCalendarId (Just AltJSON)+              appsCalendarService+          where go+                  = buildClient+                      (Proxy :: Proxy CalendarListDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/CalendarList/Get.hs view
@@ -0,0 +1,90 @@+{-# 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.Calendar.CalendarList.Get+-- Copyright   : (c) 2015 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 an entry on the user\'s calendar list.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.get@.+module Network.Google.Resource.Calendar.CalendarList.Get+    (+    -- * REST Resource+      CalendarListGetResource++    -- * Creating a Request+    , calendarListGet+    , CalendarListGet++    -- * Request Lenses+    , clgCalendarId+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.calendarList.get@ method which the+-- 'CalendarListGet' request conforms to.+type CalendarListGetResource =+     "calendar" :>+       "v3" :>+         "users" :>+           "me" :>+             "calendarList" :>+               Capture "calendarId" Text :>+                 QueryParam "alt" AltJSON :>+                   Get '[JSON] CalendarListEntry++-- | Returns an entry on the user\'s calendar list.+--+-- /See:/ 'calendarListGet' smart constructor.+newtype CalendarListGet = CalendarListGet+    { _clgCalendarId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarListGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clgCalendarId'+calendarListGet+    :: Text -- ^ 'clgCalendarId'+    -> CalendarListGet+calendarListGet pClgCalendarId_ =+    CalendarListGet+    { _clgCalendarId = pClgCalendarId_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+clgCalendarId :: Lens' CalendarListGet Text+clgCalendarId+  = lens _clgCalendarId+      (\ s a -> s{_clgCalendarId = a})++instance GoogleRequest CalendarListGet where+        type Rs CalendarListGet = CalendarListEntry+        requestClient CalendarListGet{..}+          = go _clgCalendarId (Just AltJSON)+              appsCalendarService+          where go+                  = buildClient+                      (Proxy :: Proxy CalendarListGetResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/CalendarList/Insert.hs view
@@ -0,0 +1,102 @@+{-# 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.Calendar.CalendarList.Insert+-- Copyright   : (c) 2015 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)+--+-- Adds an entry to the user\'s calendar list.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.insert@.+module Network.Google.Resource.Calendar.CalendarList.Insert+    (+    -- * REST Resource+      CalendarListInsertResource++    -- * Creating a Request+    , calendarListInsert+    , CalendarListInsert++    -- * Request Lenses+    , cliPayload+    , cliColorRgbFormat+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.calendarList.insert@ method which the+-- 'CalendarListInsert' request conforms to.+type CalendarListInsertResource =+     "calendar" :>+       "v3" :>+         "users" :>+           "me" :>+             "calendarList" :>+               QueryParam "colorRgbFormat" Bool :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] CalendarListEntry :>+                     Post '[JSON] CalendarListEntry++-- | Adds an entry to the user\'s calendar list.+--+-- /See:/ 'calendarListInsert' smart constructor.+data CalendarListInsert = CalendarListInsert+    { _cliPayload        :: !CalendarListEntry+    , _cliColorRgbFormat :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarListInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cliPayload'+--+-- * 'cliColorRgbFormat'+calendarListInsert+    :: CalendarListEntry -- ^ 'cliPayload'+    -> CalendarListInsert+calendarListInsert pCliPayload_ =+    CalendarListInsert+    { _cliPayload = pCliPayload_+    , _cliColorRgbFormat = Nothing+    }++-- | Multipart request metadata.+cliPayload :: Lens' CalendarListInsert CalendarListEntry+cliPayload+  = lens _cliPayload (\ s a -> s{_cliPayload = a})++-- | Whether to use the foregroundColor and backgroundColor fields to write+-- the calendar colors (RGB). If this feature is used, the index-based+-- colorId field will be set to the best matching option automatically.+-- Optional. The default is False.+cliColorRgbFormat :: Lens' CalendarListInsert (Maybe Bool)+cliColorRgbFormat+  = lens _cliColorRgbFormat+      (\ s a -> s{_cliColorRgbFormat = a})++instance GoogleRequest CalendarListInsert where+        type Rs CalendarListInsert = CalendarListEntry+        requestClient CalendarListInsert{..}+          = go _cliColorRgbFormat (Just AltJSON) _cliPayload+              appsCalendarService+          where go+                  = buildClient+                      (Proxy :: Proxy CalendarListInsertResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/CalendarList/List.hs view
@@ -0,0 +1,167 @@+{-# 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.Calendar.CalendarList.List+-- Copyright   : (c) 2015 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 entries on the user\'s calendar list.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.list@.+module Network.Google.Resource.Calendar.CalendarList.List+    (+    -- * REST Resource+      CalendarListListResource++    -- * Creating a Request+    , calendarListList+    , CalendarListList++    -- * Request Lenses+    , cllSyncToken+    , cllMinAccessRole+    , cllShowDeleted+    , cllShowHidden+    , cllPageToken+    , cllMaxResults+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.calendarList.list@ method which the+-- 'CalendarListList' request conforms to.+type CalendarListListResource =+     "calendar" :>+       "v3" :>+         "users" :>+           "me" :>+             "calendarList" :>+               QueryParam "syncToken" Text :>+                 QueryParam "minAccessRole"+                   CalendarListListMinAccessRole+                   :>+                   QueryParam "showDeleted" Bool :>+                     QueryParam "showHidden" Bool :>+                       QueryParam "pageToken" Text :>+                         QueryParam "maxResults" (Textual Int32) :>+                           QueryParam "alt" AltJSON :> Get '[JSON] CalendarList++-- | Returns entries on the user\'s calendar list.+--+-- /See:/ 'calendarListList' smart constructor.+data CalendarListList = CalendarListList+    { _cllSyncToken     :: !(Maybe Text)+    , _cllMinAccessRole :: !(Maybe CalendarListListMinAccessRole)+    , _cllShowDeleted   :: !(Maybe Bool)+    , _cllShowHidden    :: !(Maybe Bool)+    , _cllPageToken     :: !(Maybe Text)+    , _cllMaxResults    :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarListList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cllSyncToken'+--+-- * 'cllMinAccessRole'+--+-- * 'cllShowDeleted'+--+-- * 'cllShowHidden'+--+-- * 'cllPageToken'+--+-- * 'cllMaxResults'+calendarListList+    :: CalendarListList+calendarListList =+    CalendarListList+    { _cllSyncToken = Nothing+    , _cllMinAccessRole = Nothing+    , _cllShowDeleted = Nothing+    , _cllShowHidden = Nothing+    , _cllPageToken = Nothing+    , _cllMaxResults = Nothing+    }++-- | Token obtained from the nextSyncToken field returned on the last page of+-- results from the previous list request. It makes the result of this list+-- request contain only entries that have changed since then. If only+-- read-only fields such as calendar properties or ACLs have changed, the+-- entry won\'t be returned. All entries deleted and hidden since the+-- previous list request will always be in the result set and it is not+-- allowed to set showDeleted neither showHidden to False. To ensure client+-- state consistency minAccessRole query parameter cannot be specified+-- together with nextSyncToken. If the syncToken expires, the server will+-- respond with a 410 GONE response code and the client should clear its+-- storage and perform a full synchronization without any syncToken. Learn+-- more about incremental synchronization. Optional. The default is to+-- return all entries.+cllSyncToken :: Lens' CalendarListList (Maybe Text)+cllSyncToken+  = lens _cllSyncToken (\ s a -> s{_cllSyncToken = a})++-- | The minimum access role for the user in the returned entries. Optional.+-- The default is no restriction.+cllMinAccessRole :: Lens' CalendarListList (Maybe CalendarListListMinAccessRole)+cllMinAccessRole+  = lens _cllMinAccessRole+      (\ s a -> s{_cllMinAccessRole = a})++-- | Whether to include deleted calendar list entries in the result.+-- Optional. The default is False.+cllShowDeleted :: Lens' CalendarListList (Maybe Bool)+cllShowDeleted+  = lens _cllShowDeleted+      (\ s a -> s{_cllShowDeleted = a})++-- | Whether to show hidden entries. Optional. The default is False.+cllShowHidden :: Lens' CalendarListList (Maybe Bool)+cllShowHidden+  = lens _cllShowHidden+      (\ s a -> s{_cllShowHidden = a})++-- | Token specifying which result page to return. Optional.+cllPageToken :: Lens' CalendarListList (Maybe Text)+cllPageToken+  = lens _cllPageToken (\ s a -> s{_cllPageToken = a})++-- | Maximum number of entries returned on one result page. By default the+-- value is 100 entries. The page size can never be larger than 250+-- entries. Optional.+cllMaxResults :: Lens' CalendarListList (Maybe Int32)+cllMaxResults+  = lens _cllMaxResults+      (\ s a -> s{_cllMaxResults = a})+      . mapping _Coerce++instance GoogleRequest CalendarListList where+        type Rs CalendarListList = CalendarList+        requestClient CalendarListList{..}+          = go _cllSyncToken _cllMinAccessRole _cllShowDeleted+              _cllShowHidden+              _cllPageToken+              _cllMaxResults+              (Just AltJSON)+              appsCalendarService+          where go+                  = buildClient+                      (Proxy :: Proxy CalendarListListResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/CalendarList/Patch.hs view
@@ -0,0 +1,120 @@+{-# 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.Calendar.CalendarList.Patch+-- Copyright   : (c) 2015 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 an entry on the user\'s calendar list. This method supports+-- patch semantics.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.patch@.+module Network.Google.Resource.Calendar.CalendarList.Patch+    (+    -- * REST Resource+      CalendarListPatchResource++    -- * Creating a Request+    , calendarListPatch+    , CalendarListPatch++    -- * Request Lenses+    , clpCalendarId+    , clpPayload+    , clpColorRgbFormat+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.calendarList.patch@ method which the+-- 'CalendarListPatch' request conforms to.+type CalendarListPatchResource =+     "calendar" :>+       "v3" :>+         "users" :>+           "me" :>+             "calendarList" :>+               Capture "calendarId" Text :>+                 QueryParam "colorRgbFormat" Bool :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] CalendarListEntry :>+                       Patch '[JSON] CalendarListEntry++-- | Updates an entry on the user\'s calendar list. This method supports+-- patch semantics.+--+-- /See:/ 'calendarListPatch' smart constructor.+data CalendarListPatch = CalendarListPatch+    { _clpCalendarId     :: !Text+    , _clpPayload        :: !CalendarListEntry+    , _clpColorRgbFormat :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarListPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clpCalendarId'+--+-- * 'clpPayload'+--+-- * 'clpColorRgbFormat'+calendarListPatch+    :: Text -- ^ 'clpCalendarId'+    -> CalendarListEntry -- ^ 'clpPayload'+    -> CalendarListPatch+calendarListPatch pClpCalendarId_ pClpPayload_ =+    CalendarListPatch+    { _clpCalendarId = pClpCalendarId_+    , _clpPayload = pClpPayload_+    , _clpColorRgbFormat = Nothing+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+clpCalendarId :: Lens' CalendarListPatch Text+clpCalendarId+  = lens _clpCalendarId+      (\ s a -> s{_clpCalendarId = a})++-- | Multipart request metadata.+clpPayload :: Lens' CalendarListPatch CalendarListEntry+clpPayload+  = lens _clpPayload (\ s a -> s{_clpPayload = a})++-- | Whether to use the foregroundColor and backgroundColor fields to write+-- the calendar colors (RGB). If this feature is used, the index-based+-- colorId field will be set to the best matching option automatically.+-- Optional. The default is False.+clpColorRgbFormat :: Lens' CalendarListPatch (Maybe Bool)+clpColorRgbFormat+  = lens _clpColorRgbFormat+      (\ s a -> s{_clpColorRgbFormat = a})++instance GoogleRequest CalendarListPatch where+        type Rs CalendarListPatch = CalendarListEntry+        requestClient CalendarListPatch{..}+          = go _clpCalendarId _clpColorRgbFormat (Just AltJSON)+              _clpPayload+              appsCalendarService+          where go+                  = buildClient+                      (Proxy :: Proxy CalendarListPatchResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/CalendarList/Update.hs view
@@ -0,0 +1,118 @@+{-# 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.Calendar.CalendarList.Update+-- Copyright   : (c) 2015 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 an entry on the user\'s calendar list.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.update@.+module Network.Google.Resource.Calendar.CalendarList.Update+    (+    -- * REST Resource+      CalendarListUpdateResource++    -- * Creating a Request+    , calendarListUpdate+    , CalendarListUpdate++    -- * Request Lenses+    , cluCalendarId+    , cluPayload+    , cluColorRgbFormat+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.calendarList.update@ method which the+-- 'CalendarListUpdate' request conforms to.+type CalendarListUpdateResource =+     "calendar" :>+       "v3" :>+         "users" :>+           "me" :>+             "calendarList" :>+               Capture "calendarId" Text :>+                 QueryParam "colorRgbFormat" Bool :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] CalendarListEntry :>+                       Put '[JSON] CalendarListEntry++-- | Updates an entry on the user\'s calendar list.+--+-- /See:/ 'calendarListUpdate' smart constructor.+data CalendarListUpdate = CalendarListUpdate+    { _cluCalendarId     :: !Text+    , _cluPayload        :: !CalendarListEntry+    , _cluColorRgbFormat :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarListUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cluCalendarId'+--+-- * 'cluPayload'+--+-- * 'cluColorRgbFormat'+calendarListUpdate+    :: Text -- ^ 'cluCalendarId'+    -> CalendarListEntry -- ^ 'cluPayload'+    -> CalendarListUpdate+calendarListUpdate pCluCalendarId_ pCluPayload_ =+    CalendarListUpdate+    { _cluCalendarId = pCluCalendarId_+    , _cluPayload = pCluPayload_+    , _cluColorRgbFormat = Nothing+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+cluCalendarId :: Lens' CalendarListUpdate Text+cluCalendarId+  = lens _cluCalendarId+      (\ s a -> s{_cluCalendarId = a})++-- | Multipart request metadata.+cluPayload :: Lens' CalendarListUpdate CalendarListEntry+cluPayload+  = lens _cluPayload (\ s a -> s{_cluPayload = a})++-- | Whether to use the foregroundColor and backgroundColor fields to write+-- the calendar colors (RGB). If this feature is used, the index-based+-- colorId field will be set to the best matching option automatically.+-- Optional. The default is False.+cluColorRgbFormat :: Lens' CalendarListUpdate (Maybe Bool)+cluColorRgbFormat+  = lens _cluColorRgbFormat+      (\ s a -> s{_cluColorRgbFormat = a})++instance GoogleRequest CalendarListUpdate where+        type Rs CalendarListUpdate = CalendarListEntry+        requestClient CalendarListUpdate{..}+          = go _cluCalendarId _cluColorRgbFormat (Just AltJSON)+              _cluPayload+              appsCalendarService+          where go+                  = buildClient+                      (Proxy :: Proxy CalendarListUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/CalendarList/Watch.hs view
@@ -0,0 +1,181 @@+{-# 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.Calendar.CalendarList.Watch+-- Copyright   : (c) 2015 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)+--+-- Watch for changes to CalendarList resources.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.watch@.+module Network.Google.Resource.Calendar.CalendarList.Watch+    (+    -- * REST Resource+      CalendarListWatchResource++    -- * Creating a Request+    , calendarListWatch+    , CalendarListWatch++    -- * Request Lenses+    , clwSyncToken+    , clwMinAccessRole+    , clwShowDeleted+    , clwPayload+    , clwShowHidden+    , clwPageToken+    , clwMaxResults+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.calendarList.watch@ method which the+-- 'CalendarListWatch' request conforms to.+type CalendarListWatchResource =+     "calendar" :>+       "v3" :>+         "users" :>+           "me" :>+             "calendarList" :>+               "watch" :>+                 QueryParam "syncToken" Text :>+                   QueryParam "minAccessRole"+                     CalendarListWatchMinAccessRole+                     :>+                     QueryParam "showDeleted" Bool :>+                       QueryParam "showHidden" Bool :>+                         QueryParam "pageToken" Text :>+                           QueryParam "maxResults" (Textual Int32) :>+                             QueryParam "alt" AltJSON :>+                               ReqBody '[JSON] Channel :> Post '[JSON] Channel++-- | Watch for changes to CalendarList resources.+--+-- /See:/ 'calendarListWatch' smart constructor.+data CalendarListWatch = CalendarListWatch+    { _clwSyncToken     :: !(Maybe Text)+    , _clwMinAccessRole :: !(Maybe CalendarListWatchMinAccessRole)+    , _clwShowDeleted   :: !(Maybe Bool)+    , _clwPayload       :: !Channel+    , _clwShowHidden    :: !(Maybe Bool)+    , _clwPageToken     :: !(Maybe Text)+    , _clwMaxResults    :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarListWatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clwSyncToken'+--+-- * 'clwMinAccessRole'+--+-- * 'clwShowDeleted'+--+-- * 'clwPayload'+--+-- * 'clwShowHidden'+--+-- * 'clwPageToken'+--+-- * 'clwMaxResults'+calendarListWatch+    :: Channel -- ^ 'clwPayload'+    -> CalendarListWatch+calendarListWatch pClwPayload_ =+    CalendarListWatch+    { _clwSyncToken = Nothing+    , _clwMinAccessRole = Nothing+    , _clwShowDeleted = Nothing+    , _clwPayload = pClwPayload_+    , _clwShowHidden = Nothing+    , _clwPageToken = Nothing+    , _clwMaxResults = Nothing+    }++-- | Token obtained from the nextSyncToken field returned on the last page of+-- results from the previous list request. It makes the result of this list+-- request contain only entries that have changed since then. If only+-- read-only fields such as calendar properties or ACLs have changed, the+-- entry won\'t be returned. All entries deleted and hidden since the+-- previous list request will always be in the result set and it is not+-- allowed to set showDeleted neither showHidden to False. To ensure client+-- state consistency minAccessRole query parameter cannot be specified+-- together with nextSyncToken. If the syncToken expires, the server will+-- respond with a 410 GONE response code and the client should clear its+-- storage and perform a full synchronization without any syncToken. Learn+-- more about incremental synchronization. Optional. The default is to+-- return all entries.+clwSyncToken :: Lens' CalendarListWatch (Maybe Text)+clwSyncToken+  = lens _clwSyncToken (\ s a -> s{_clwSyncToken = a})++-- | The minimum access role for the user in the returned entries. Optional.+-- The default is no restriction.+clwMinAccessRole :: Lens' CalendarListWatch (Maybe CalendarListWatchMinAccessRole)+clwMinAccessRole+  = lens _clwMinAccessRole+      (\ s a -> s{_clwMinAccessRole = a})++-- | Whether to include deleted calendar list entries in the result.+-- Optional. The default is False.+clwShowDeleted :: Lens' CalendarListWatch (Maybe Bool)+clwShowDeleted+  = lens _clwShowDeleted+      (\ s a -> s{_clwShowDeleted = a})++-- | Multipart request metadata.+clwPayload :: Lens' CalendarListWatch Channel+clwPayload+  = lens _clwPayload (\ s a -> s{_clwPayload = a})++-- | Whether to show hidden entries. Optional. The default is False.+clwShowHidden :: Lens' CalendarListWatch (Maybe Bool)+clwShowHidden+  = lens _clwShowHidden+      (\ s a -> s{_clwShowHidden = a})++-- | Token specifying which result page to return. Optional.+clwPageToken :: Lens' CalendarListWatch (Maybe Text)+clwPageToken+  = lens _clwPageToken (\ s a -> s{_clwPageToken = a})++-- | Maximum number of entries returned on one result page. By default the+-- value is 100 entries. The page size can never be larger than 250+-- entries. Optional.+clwMaxResults :: Lens' CalendarListWatch (Maybe Int32)+clwMaxResults+  = lens _clwMaxResults+      (\ s a -> s{_clwMaxResults = a})+      . mapping _Coerce++instance GoogleRequest CalendarListWatch where+        type Rs CalendarListWatch = Channel+        requestClient CalendarListWatch{..}+          = go _clwSyncToken _clwMinAccessRole _clwShowDeleted+              _clwShowHidden+              _clwPageToken+              _clwMaxResults+              (Just AltJSON)+              _clwPayload+              appsCalendarService+          where go+                  = buildClient+                      (Proxy :: Proxy CalendarListWatchResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Calendars/Clear.hs view
@@ -0,0 +1,87 @@+{-# 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.Calendar.Calendars.Clear+-- Copyright   : (c) 2015 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)+--+-- Clears a primary calendar. This operation deletes all events associated+-- with the primary calendar of an account.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.clear@.+module Network.Google.Resource.Calendar.Calendars.Clear+    (+    -- * REST Resource+      CalendarsClearResource++    -- * Creating a Request+    , calendarsClear+    , CalendarsClear++    -- * Request Lenses+    , ccCalendarId+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.calendars.clear@ method which the+-- 'CalendarsClear' request conforms to.+type CalendarsClearResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "clear" :>+               QueryParam "alt" AltJSON :> Post '[JSON] ()++-- | Clears a primary calendar. This operation deletes all events associated+-- with the primary calendar of an account.+--+-- /See:/ 'calendarsClear' smart constructor.+newtype CalendarsClear = CalendarsClear+    { _ccCalendarId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarsClear' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ccCalendarId'+calendarsClear+    :: Text -- ^ 'ccCalendarId'+    -> CalendarsClear+calendarsClear pCcCalendarId_ =+    CalendarsClear+    { _ccCalendarId = pCcCalendarId_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+ccCalendarId :: Lens' CalendarsClear Text+ccCalendarId+  = lens _ccCalendarId (\ s a -> s{_ccCalendarId = a})++instance GoogleRequest CalendarsClear where+        type Rs CalendarsClear = ()+        requestClient CalendarsClear{..}+          = go _ccCalendarId (Just AltJSON) appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy CalendarsClearResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Calendars/Delete.hs view
@@ -0,0 +1,87 @@+{-# 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.Calendar.Calendars.Delete+-- Copyright   : (c) 2015 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 secondary calendar. Use calendars.clear for clearing all+-- events on primary calendars.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.delete@.+module Network.Google.Resource.Calendar.Calendars.Delete+    (+    -- * REST Resource+      CalendarsDeleteResource++    -- * Creating a Request+    , calendarsDelete+    , CalendarsDelete++    -- * Request Lenses+    , cdCalendarId+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.calendars.delete@ method which the+-- 'CalendarsDelete' request conforms to.+type CalendarsDeleteResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes a secondary calendar. Use calendars.clear for clearing all+-- events on primary calendars.+--+-- /See:/ 'calendarsDelete' smart constructor.+newtype CalendarsDelete = CalendarsDelete+    { _cdCalendarId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdCalendarId'+calendarsDelete+    :: Text -- ^ 'cdCalendarId'+    -> CalendarsDelete+calendarsDelete pCdCalendarId_ =+    CalendarsDelete+    { _cdCalendarId = pCdCalendarId_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+cdCalendarId :: Lens' CalendarsDelete Text+cdCalendarId+  = lens _cdCalendarId (\ s a -> s{_cdCalendarId = a})++instance GoogleRequest CalendarsDelete where+        type Rs CalendarsDelete = ()+        requestClient CalendarsDelete{..}+          = go _cdCalendarId (Just AltJSON) appsCalendarService+          where go+                  = buildClient+                      (Proxy :: Proxy CalendarsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Calendars/Get.hs view
@@ -0,0 +1,84 @@+{-# 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.Calendar.Calendars.Get+-- Copyright   : (c) 2015 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 metadata for a calendar.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.get@.+module Network.Google.Resource.Calendar.Calendars.Get+    (+    -- * REST Resource+      CalendarsGetResource++    -- * Creating a Request+    , calendarsGet+    , CalendarsGet++    -- * Request Lenses+    , cgCalendarId+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.calendars.get@ method which the+-- 'CalendarsGet' request conforms to.+type CalendarsGetResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             QueryParam "alt" AltJSON :> Get '[JSON] Calendar++-- | Returns metadata for a calendar.+--+-- /See:/ 'calendarsGet' smart constructor.+newtype CalendarsGet = CalendarsGet+    { _cgCalendarId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cgCalendarId'+calendarsGet+    :: Text -- ^ 'cgCalendarId'+    -> CalendarsGet+calendarsGet pCgCalendarId_ =+    CalendarsGet+    { _cgCalendarId = pCgCalendarId_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+cgCalendarId :: Lens' CalendarsGet Text+cgCalendarId+  = lens _cgCalendarId (\ s a -> s{_cgCalendarId = a})++instance GoogleRequest CalendarsGet where+        type Rs CalendarsGet = Calendar+        requestClient CalendarsGet{..}+          = go _cgCalendarId (Just AltJSON) appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy CalendarsGetResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Calendars/Insert.hs view
@@ -0,0 +1,83 @@+{-# 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.Calendar.Calendars.Insert+-- Copyright   : (c) 2015 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 secondary calendar.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.insert@.+module Network.Google.Resource.Calendar.Calendars.Insert+    (+    -- * REST Resource+      CalendarsInsertResource++    -- * Creating a Request+    , calendarsInsert+    , CalendarsInsert++    -- * Request Lenses+    , ciPayload+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.calendars.insert@ method which the+-- 'CalendarsInsert' request conforms to.+type CalendarsInsertResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           QueryParam "alt" AltJSON :>+             ReqBody '[JSON] Calendar :> Post '[JSON] Calendar++-- | Creates a secondary calendar.+--+-- /See:/ 'calendarsInsert' smart constructor.+newtype CalendarsInsert = CalendarsInsert+    { _ciPayload :: Calendar+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ciPayload'+calendarsInsert+    :: Calendar -- ^ 'ciPayload'+    -> CalendarsInsert+calendarsInsert pCiPayload_ =+    CalendarsInsert+    { _ciPayload = pCiPayload_+    }++-- | Multipart request metadata.+ciPayload :: Lens' CalendarsInsert Calendar+ciPayload+  = lens _ciPayload (\ s a -> s{_ciPayload = a})++instance GoogleRequest CalendarsInsert where+        type Rs CalendarsInsert = Calendar+        requestClient CalendarsInsert{..}+          = go (Just AltJSON) _ciPayload appsCalendarService+          where go+                  = buildClient+                      (Proxy :: Proxy CalendarsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Calendars/Patch.hs view
@@ -0,0 +1,97 @@+{-# 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.Calendar.Calendars.Patch+-- Copyright   : (c) 2015 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 metadata for a calendar. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.patch@.+module Network.Google.Resource.Calendar.Calendars.Patch+    (+    -- * REST Resource+      CalendarsPatchResource++    -- * Creating a Request+    , calendarsPatch+    , CalendarsPatch++    -- * Request Lenses+    , cpCalendarId+    , cpPayload+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.calendars.patch@ method which the+-- 'CalendarsPatch' request conforms to.+type CalendarsPatchResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             QueryParam "alt" AltJSON :>+               ReqBody '[JSON] Calendar :> Patch '[JSON] Calendar++-- | Updates metadata for a calendar. This method supports patch semantics.+--+-- /See:/ 'calendarsPatch' smart constructor.+data CalendarsPatch = CalendarsPatch+    { _cpCalendarId :: !Text+    , _cpPayload    :: !Calendar+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpCalendarId'+--+-- * 'cpPayload'+calendarsPatch+    :: Text -- ^ 'cpCalendarId'+    -> Calendar -- ^ 'cpPayload'+    -> CalendarsPatch+calendarsPatch pCpCalendarId_ pCpPayload_ =+    CalendarsPatch+    { _cpCalendarId = pCpCalendarId_+    , _cpPayload = pCpPayload_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+cpCalendarId :: Lens' CalendarsPatch Text+cpCalendarId+  = lens _cpCalendarId (\ s a -> s{_cpCalendarId = a})++-- | Multipart request metadata.+cpPayload :: Lens' CalendarsPatch Calendar+cpPayload+  = lens _cpPayload (\ s a -> s{_cpPayload = a})++instance GoogleRequest CalendarsPatch where+        type Rs CalendarsPatch = Calendar+        requestClient CalendarsPatch{..}+          = go _cpCalendarId (Just AltJSON) _cpPayload+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy CalendarsPatchResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Calendars/Update.hs view
@@ -0,0 +1,98 @@+{-# 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.Calendar.Calendars.Update+-- Copyright   : (c) 2015 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 metadata for a calendar.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.update@.+module Network.Google.Resource.Calendar.Calendars.Update+    (+    -- * REST Resource+      CalendarsUpdateResource++    -- * Creating a Request+    , calendarsUpdate+    , CalendarsUpdate++    -- * Request Lenses+    , cuCalendarId+    , cuPayload+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.calendars.update@ method which the+-- 'CalendarsUpdate' request conforms to.+type CalendarsUpdateResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             QueryParam "alt" AltJSON :>+               ReqBody '[JSON] Calendar :> Put '[JSON] Calendar++-- | Updates metadata for a calendar.+--+-- /See:/ 'calendarsUpdate' smart constructor.+data CalendarsUpdate = CalendarsUpdate+    { _cuCalendarId :: !Text+    , _cuPayload    :: !Calendar+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalendarsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cuCalendarId'+--+-- * 'cuPayload'+calendarsUpdate+    :: Text -- ^ 'cuCalendarId'+    -> Calendar -- ^ 'cuPayload'+    -> CalendarsUpdate+calendarsUpdate pCuCalendarId_ pCuPayload_ =+    CalendarsUpdate+    { _cuCalendarId = pCuCalendarId_+    , _cuPayload = pCuPayload_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+cuCalendarId :: Lens' CalendarsUpdate Text+cuCalendarId+  = lens _cuCalendarId (\ s a -> s{_cuCalendarId = a})++-- | Multipart request metadata.+cuPayload :: Lens' CalendarsUpdate Calendar+cuPayload+  = lens _cuPayload (\ s a -> s{_cuPayload = a})++instance GoogleRequest CalendarsUpdate where+        type Rs CalendarsUpdate = Calendar+        requestClient CalendarsUpdate{..}+          = go _cuCalendarId (Just AltJSON) _cuPayload+              appsCalendarService+          where go+                  = buildClient+                      (Proxy :: Proxy CalendarsUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Channels/Stop.hs view
@@ -0,0 +1,83 @@+{-# 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.Calendar.Channels.Stop+-- Copyright   : (c) 2015 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)+--+-- Stop watching resources through this channel+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.channels.stop@.+module Network.Google.Resource.Calendar.Channels.Stop+    (+    -- * REST Resource+      ChannelsStopResource++    -- * Creating a Request+    , channelsStop+    , ChannelsStop++    -- * Request Lenses+    , csPayload+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.channels.stop@ method which the+-- 'ChannelsStop' request conforms to.+type ChannelsStopResource =+     "calendar" :>+       "v3" :>+         "channels" :>+           "stop" :>+             QueryParam "alt" AltJSON :>+               ReqBody '[JSON] Channel :> Post '[JSON] ()++-- | Stop watching resources through this channel+--+-- /See:/ 'channelsStop' smart constructor.+newtype ChannelsStop = ChannelsStop+    { _csPayload :: Channel+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChannelsStop' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csPayload'+channelsStop+    :: Channel -- ^ 'csPayload'+    -> ChannelsStop+channelsStop pCsPayload_ =+    ChannelsStop+    { _csPayload = pCsPayload_+    }++-- | Multipart request metadata.+csPayload :: Lens' ChannelsStop Channel+csPayload+  = lens _csPayload (\ s a -> s{_csPayload = a})++instance GoogleRequest ChannelsStop where+        type Rs ChannelsStop = ()+        requestClient ChannelsStop{..}+          = go (Just AltJSON) _csPayload appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy ChannelsStopResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Colors/Get.hs view
@@ -0,0 +1,67 @@+{-# 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.Calendar.Colors.Get+-- Copyright   : (c) 2015 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 the color definitions for calendars and events.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.colors.get@.+module Network.Google.Resource.Calendar.Colors.Get+    (+    -- * REST Resource+      ColorsGetResource++    -- * Creating a Request+    , colorsGet+    , ColorsGet++    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.colors.get@ method which the+-- 'ColorsGet' request conforms to.+type ColorsGetResource =+     "calendar" :>+       "v3" :>+         "colors" :>+           QueryParam "alt" AltJSON :> Get '[JSON] Colors++-- | Returns the color definitions for calendars and events.+--+-- /See:/ 'colorsGet' smart constructor.+data ColorsGet =+    ColorsGet+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ColorsGet' with the minimum fields required to make a request.+--+colorsGet+    :: ColorsGet+colorsGet = ColorsGet++instance GoogleRequest ColorsGet where+        type Rs ColorsGet = Colors+        requestClient ColorsGet{}+          = go (Just AltJSON) appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy ColorsGetResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Events/Delete.hs view
@@ -0,0 +1,112 @@+{-# 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.Calendar.Events.Delete+-- Copyright   : (c) 2015 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 an event.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.delete@.+module Network.Google.Resource.Calendar.Events.Delete+    (+    -- * REST Resource+      EventsDeleteResource++    -- * Creating a Request+    , eventsDelete+    , EventsDelete++    -- * Request Lenses+    , edCalendarId+    , edSendNotifications+    , edEventId+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.events.delete@ method which the+-- 'EventsDelete' request conforms to.+type EventsDeleteResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "events" :>+               Capture "eventId" Text :>+                 QueryParam "sendNotifications" Bool :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes an event.+--+-- /See:/ 'eventsDelete' smart constructor.+data EventsDelete = EventsDelete+    { _edCalendarId        :: !Text+    , _edSendNotifications :: !(Maybe Bool)+    , _edEventId           :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'edCalendarId'+--+-- * 'edSendNotifications'+--+-- * 'edEventId'+eventsDelete+    :: Text -- ^ 'edCalendarId'+    -> Text -- ^ 'edEventId'+    -> EventsDelete+eventsDelete pEdCalendarId_ pEdEventId_ =+    EventsDelete+    { _edCalendarId = pEdCalendarId_+    , _edSendNotifications = Nothing+    , _edEventId = pEdEventId_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+edCalendarId :: Lens' EventsDelete Text+edCalendarId+  = lens _edCalendarId (\ s a -> s{_edCalendarId = a})++-- | Whether to send notifications about the deletion of the event. Optional.+-- The default is False.+edSendNotifications :: Lens' EventsDelete (Maybe Bool)+edSendNotifications+  = lens _edSendNotifications+      (\ s a -> s{_edSendNotifications = a})++-- | Event identifier.+edEventId :: Lens' EventsDelete Text+edEventId+  = lens _edEventId (\ s a -> s{_edEventId = a})++instance GoogleRequest EventsDelete where+        type Rs EventsDelete = ()+        requestClient EventsDelete{..}+          = go _edCalendarId _edEventId _edSendNotifications+              (Just AltJSON)+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy EventsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Events/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.Calendar.Events.Get+-- Copyright   : (c) 2015 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 an event.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.get@.+module Network.Google.Resource.Calendar.Events.Get+    (+    -- * REST Resource+      EventsGetResource++    -- * Creating a Request+    , eventsGet+    , EventsGet++    -- * Request Lenses+    , egCalendarId+    , egMaxAttendees+    , egTimeZone+    , egAlwaysIncludeEmail+    , egEventId+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.events.get@ method which the+-- 'EventsGet' request conforms to.+type EventsGetResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "events" :>+               Capture "eventId" Text :>+                 QueryParam "maxAttendees" (Textual Int32) :>+                   QueryParam "timeZone" Text :>+                     QueryParam "alwaysIncludeEmail" Bool :>+                       QueryParam "alt" AltJSON :> Get '[JSON] Event++-- | Returns an event.+--+-- /See:/ 'eventsGet' smart constructor.+data EventsGet = EventsGet+    { _egCalendarId         :: !Text+    , _egMaxAttendees       :: !(Maybe (Textual Int32))+    , _egTimeZone           :: !(Maybe Text)+    , _egAlwaysIncludeEmail :: !(Maybe Bool)+    , _egEventId            :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'egCalendarId'+--+-- * 'egMaxAttendees'+--+-- * 'egTimeZone'+--+-- * 'egAlwaysIncludeEmail'+--+-- * 'egEventId'+eventsGet+    :: Text -- ^ 'egCalendarId'+    -> Text -- ^ 'egEventId'+    -> EventsGet+eventsGet pEgCalendarId_ pEgEventId_ =+    EventsGet+    { _egCalendarId = pEgCalendarId_+    , _egMaxAttendees = Nothing+    , _egTimeZone = Nothing+    , _egAlwaysIncludeEmail = Nothing+    , _egEventId = pEgEventId_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+egCalendarId :: Lens' EventsGet Text+egCalendarId+  = lens _egCalendarId (\ s a -> s{_egCalendarId = a})++-- | The maximum number of attendees to include in the response. If there are+-- more than the specified number of attendees, only the participant is+-- returned. Optional.+egMaxAttendees :: Lens' EventsGet (Maybe Int32)+egMaxAttendees+  = lens _egMaxAttendees+      (\ s a -> s{_egMaxAttendees = a})+      . mapping _Coerce++-- | Time zone used in the response. Optional. The default is the time zone+-- of the calendar.+egTimeZone :: Lens' EventsGet (Maybe Text)+egTimeZone+  = lens _egTimeZone (\ s a -> s{_egTimeZone = a})++-- | Whether to always include a value in the email field for the organizer,+-- creator and attendees, even if no real email is available (i.e. a+-- generated, non-working value will be provided). The use of this option+-- is discouraged and should only be used by clients which cannot handle+-- the absence of an email address value in the mentioned places. Optional.+-- The default is False.+egAlwaysIncludeEmail :: Lens' EventsGet (Maybe Bool)+egAlwaysIncludeEmail+  = lens _egAlwaysIncludeEmail+      (\ s a -> s{_egAlwaysIncludeEmail = a})++-- | Event identifier.+egEventId :: Lens' EventsGet Text+egEventId+  = lens _egEventId (\ s a -> s{_egEventId = a})++instance GoogleRequest EventsGet where+        type Rs EventsGet = Event+        requestClient EventsGet{..}+          = go _egCalendarId _egEventId _egMaxAttendees+              _egTimeZone+              _egAlwaysIncludeEmail+              (Just AltJSON)+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy EventsGetResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Events/Import.hs view
@@ -0,0 +1,116 @@+{-# 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.Calendar.Events.Import+-- Copyright   : (c) 2015 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)+--+-- Imports an event. This operation is used to add a private copy of an+-- existing event to a calendar.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.import@.+module Network.Google.Resource.Calendar.Events.Import+    (+    -- * REST Resource+      EventsImportResource++    -- * Creating a Request+    , eventsImport+    , EventsImport++    -- * Request Lenses+    , eiCalendarId+    , eiPayload+    , eiSupportsAttachments+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.events.import@ method which the+-- 'EventsImport' request conforms to.+type EventsImportResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "events" :>+               "import" :>+                 QueryParam "supportsAttachments" Bool :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Event :> Post '[JSON] Event++-- | Imports an event. This operation is used to add a private copy of an+-- existing event to a calendar.+--+-- /See:/ 'eventsImport' smart constructor.+data EventsImport = EventsImport+    { _eiCalendarId          :: !Text+    , _eiPayload             :: !Event+    , _eiSupportsAttachments :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventsImport' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eiCalendarId'+--+-- * 'eiPayload'+--+-- * 'eiSupportsAttachments'+eventsImport+    :: Text -- ^ 'eiCalendarId'+    -> Event -- ^ 'eiPayload'+    -> EventsImport+eventsImport pEiCalendarId_ pEiPayload_ =+    EventsImport+    { _eiCalendarId = pEiCalendarId_+    , _eiPayload = pEiPayload_+    , _eiSupportsAttachments = Nothing+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+eiCalendarId :: Lens' EventsImport Text+eiCalendarId+  = lens _eiCalendarId (\ s a -> s{_eiCalendarId = a})++-- | Multipart request metadata.+eiPayload :: Lens' EventsImport Event+eiPayload+  = lens _eiPayload (\ s a -> s{_eiPayload = a})++-- | Whether API client performing operation supports event attachments.+-- Optional. The default is False.+eiSupportsAttachments :: Lens' EventsImport (Maybe Bool)+eiSupportsAttachments+  = lens _eiSupportsAttachments+      (\ s a -> s{_eiSupportsAttachments = a})++instance GoogleRequest EventsImport where+        type Rs EventsImport = Event+        requestClient EventsImport{..}+          = go _eiCalendarId _eiSupportsAttachments+              (Just AltJSON)+              _eiPayload+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy EventsImportResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Events/Insert.hs view
@@ -0,0 +1,144 @@+{-# 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.Calendar.Events.Insert+-- Copyright   : (c) 2015 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 an event.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.insert@.+module Network.Google.Resource.Calendar.Events.Insert+    (+    -- * REST Resource+      EventsInsertResource++    -- * Creating a Request+    , eventsInsert+    , EventsInsert++    -- * Request Lenses+    , eveCalendarId+    , evePayload+    , eveMaxAttendees+    , eveSendNotifications+    , eveSupportsAttachments+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.events.insert@ method which the+-- 'EventsInsert' request conforms to.+type EventsInsertResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "events" :>+               QueryParam "maxAttendees" (Textual Int32) :>+                 QueryParam "sendNotifications" Bool :>+                   QueryParam "supportsAttachments" Bool :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Event :> Post '[JSON] Event++-- | Creates an event.+--+-- /See:/ 'eventsInsert' smart constructor.+data EventsInsert = EventsInsert+    { _eveCalendarId          :: !Text+    , _evePayload             :: !Event+    , _eveMaxAttendees        :: !(Maybe (Textual Int32))+    , _eveSendNotifications   :: !(Maybe Bool)+    , _eveSupportsAttachments :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eveCalendarId'+--+-- * 'evePayload'+--+-- * 'eveMaxAttendees'+--+-- * 'eveSendNotifications'+--+-- * 'eveSupportsAttachments'+eventsInsert+    :: Text -- ^ 'eveCalendarId'+    -> Event -- ^ 'evePayload'+    -> EventsInsert+eventsInsert pEveCalendarId_ pEvePayload_ =+    EventsInsert+    { _eveCalendarId = pEveCalendarId_+    , _evePayload = pEvePayload_+    , _eveMaxAttendees = Nothing+    , _eveSendNotifications = Nothing+    , _eveSupportsAttachments = Nothing+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+eveCalendarId :: Lens' EventsInsert Text+eveCalendarId+  = lens _eveCalendarId+      (\ s a -> s{_eveCalendarId = a})++-- | Multipart request metadata.+evePayload :: Lens' EventsInsert Event+evePayload+  = lens _evePayload (\ s a -> s{_evePayload = a})++-- | The maximum number of attendees to include in the response. If there are+-- more than the specified number of attendees, only the participant is+-- returned. Optional.+eveMaxAttendees :: Lens' EventsInsert (Maybe Int32)+eveMaxAttendees+  = lens _eveMaxAttendees+      (\ s a -> s{_eveMaxAttendees = a})+      . mapping _Coerce++-- | Whether to send notifications about the creation of the new event.+-- Optional. The default is False.+eveSendNotifications :: Lens' EventsInsert (Maybe Bool)+eveSendNotifications+  = lens _eveSendNotifications+      (\ s a -> s{_eveSendNotifications = a})++-- | Whether API client performing operation supports event attachments.+-- Optional. The default is False.+eveSupportsAttachments :: Lens' EventsInsert (Maybe Bool)+eveSupportsAttachments+  = lens _eveSupportsAttachments+      (\ s a -> s{_eveSupportsAttachments = a})++instance GoogleRequest EventsInsert where+        type Rs EventsInsert = Event+        requestClient EventsInsert{..}+          = go _eveCalendarId _eveMaxAttendees+              _eveSendNotifications+              _eveSupportsAttachments+              (Just AltJSON)+              _evePayload+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy EventsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Events/Instances.hs view
@@ -0,0 +1,230 @@+{-# 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.Calendar.Events.Instances+-- Copyright   : (c) 2015 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 instances of the specified recurring event.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.instances@.+module Network.Google.Resource.Calendar.Events.Instances+    (+    -- * REST Resource+      EventsInstancesResource++    -- * Creating a Request+    , eventsInstances+    , EventsInstances++    -- * Request Lenses+    , eCalendarId+    , eTimeMin+    , eShowDeleted+    , eOriginalStart+    , eMaxAttendees+    , ePageToken+    , eTimeZone+    , eMaxResults+    , eAlwaysIncludeEmail+    , eTimeMax+    , eEventId+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.events.instances@ method which the+-- 'EventsInstances' request conforms to.+type EventsInstancesResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "events" :>+               Capture "eventId" Text :>+                 "instances" :>+                   QueryParam "timeMin" DateTime' :>+                     QueryParam "showDeleted" Bool :>+                       QueryParam "originalStart" Text :>+                         QueryParam "maxAttendees" (Textual Int32) :>+                           QueryParam "pageToken" Text :>+                             QueryParam "timeZone" Text :>+                               QueryParam "maxResults" (Textual Int32) :>+                                 QueryParam "alwaysIncludeEmail" Bool :>+                                   QueryParam "timeMax" DateTime' :>+                                     QueryParam "alt" AltJSON :>+                                       Get '[JSON] Events++-- | Returns instances of the specified recurring event.+--+-- /See:/ 'eventsInstances' smart constructor.+data EventsInstances = EventsInstances+    { _eCalendarId         :: !Text+    , _eTimeMin            :: !(Maybe DateTime')+    , _eShowDeleted        :: !(Maybe Bool)+    , _eOriginalStart      :: !(Maybe Text)+    , _eMaxAttendees       :: !(Maybe (Textual Int32))+    , _ePageToken          :: !(Maybe Text)+    , _eTimeZone           :: !(Maybe Text)+    , _eMaxResults         :: !(Maybe (Textual Int32))+    , _eAlwaysIncludeEmail :: !(Maybe Bool)+    , _eTimeMax            :: !(Maybe DateTime')+    , _eEventId            :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventsInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eCalendarId'+--+-- * 'eTimeMin'+--+-- * 'eShowDeleted'+--+-- * 'eOriginalStart'+--+-- * 'eMaxAttendees'+--+-- * 'ePageToken'+--+-- * 'eTimeZone'+--+-- * 'eMaxResults'+--+-- * 'eAlwaysIncludeEmail'+--+-- * 'eTimeMax'+--+-- * 'eEventId'+eventsInstances+    :: Text -- ^ 'eCalendarId'+    -> Text -- ^ 'eEventId'+    -> EventsInstances+eventsInstances pECalendarId_ pEEventId_ =+    EventsInstances+    { _eCalendarId = pECalendarId_+    , _eTimeMin = Nothing+    , _eShowDeleted = Nothing+    , _eOriginalStart = Nothing+    , _eMaxAttendees = Nothing+    , _ePageToken = Nothing+    , _eTimeZone = Nothing+    , _eMaxResults = Nothing+    , _eAlwaysIncludeEmail = Nothing+    , _eTimeMax = Nothing+    , _eEventId = pEEventId_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+eCalendarId :: Lens' EventsInstances Text+eCalendarId+  = lens _eCalendarId (\ s a -> s{_eCalendarId = a})++-- | Lower bound (inclusive) for an event\'s end time to filter by. Optional.+-- The default is not to filter by end time. Must be an RFC3339 timestamp+-- with mandatory time zone offset.+eTimeMin :: Lens' EventsInstances (Maybe UTCTime)+eTimeMin+  = lens _eTimeMin (\ s a -> s{_eTimeMin = a}) .+      mapping _DateTime++-- | Whether to include deleted events (with status equals \"cancelled\") in+-- the result. Cancelled instances of recurring events will still be+-- included if singleEvents is False. Optional. The default is False.+eShowDeleted :: Lens' EventsInstances (Maybe Bool)+eShowDeleted+  = lens _eShowDeleted (\ s a -> s{_eShowDeleted = a})++-- | The original start time of the instance in the result. Optional.+eOriginalStart :: Lens' EventsInstances (Maybe Text)+eOriginalStart+  = lens _eOriginalStart+      (\ s a -> s{_eOriginalStart = a})++-- | The maximum number of attendees to include in the response. If there are+-- more than the specified number of attendees, only the participant is+-- returned. Optional.+eMaxAttendees :: Lens' EventsInstances (Maybe Int32)+eMaxAttendees+  = lens _eMaxAttendees+      (\ s a -> s{_eMaxAttendees = a})+      . mapping _Coerce++-- | Token specifying which result page to return. Optional.+ePageToken :: Lens' EventsInstances (Maybe Text)+ePageToken+  = lens _ePageToken (\ s a -> s{_ePageToken = a})++-- | Time zone used in the response. Optional. The default is the time zone+-- of the calendar.+eTimeZone :: Lens' EventsInstances (Maybe Text)+eTimeZone+  = lens _eTimeZone (\ s a -> s{_eTimeZone = a})++-- | Maximum number of events returned on one result page. By default the+-- value is 250 events. The page size can never be larger than 2500 events.+-- Optional.+eMaxResults :: Lens' EventsInstances (Maybe Int32)+eMaxResults+  = lens _eMaxResults (\ s a -> s{_eMaxResults = a}) .+      mapping _Coerce++-- | Whether to always include a value in the email field for the organizer,+-- creator and attendees, even if no real email is available (i.e. a+-- generated, non-working value will be provided). The use of this option+-- is discouraged and should only be used by clients which cannot handle+-- the absence of an email address value in the mentioned places. Optional.+-- The default is False.+eAlwaysIncludeEmail :: Lens' EventsInstances (Maybe Bool)+eAlwaysIncludeEmail+  = lens _eAlwaysIncludeEmail+      (\ s a -> s{_eAlwaysIncludeEmail = a})++-- | Upper bound (exclusive) for an event\'s start time to filter by.+-- Optional. The default is not to filter by start time. Must be an RFC3339+-- timestamp with mandatory time zone offset.+eTimeMax :: Lens' EventsInstances (Maybe UTCTime)+eTimeMax+  = lens _eTimeMax (\ s a -> s{_eTimeMax = a}) .+      mapping _DateTime++-- | Recurring event identifier.+eEventId :: Lens' EventsInstances Text+eEventId = lens _eEventId (\ s a -> s{_eEventId = a})++instance GoogleRequest EventsInstances where+        type Rs EventsInstances = Events+        requestClient EventsInstances{..}+          = go _eCalendarId _eEventId _eTimeMin _eShowDeleted+              _eOriginalStart+              _eMaxAttendees+              _ePageToken+              _eTimeZone+              _eMaxResults+              _eAlwaysIncludeEmail+              _eTimeMax+              (Just AltJSON)+              appsCalendarService+          where go+                  = buildClient+                      (Proxy :: Proxy EventsInstancesResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Events/List.hs view
@@ -0,0 +1,356 @@+{-# 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.Calendar.Events.List+-- Copyright   : (c) 2015 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 events on the specified calendar.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.list@.+module Network.Google.Resource.Calendar.Events.List+    (+    -- * REST Resource+      EventsListResource++    -- * Creating a Request+    , eventsList+    , EventsList++    -- * Request Lenses+    , elSyncToken+    , elCalendarId+    , elTimeMin+    , elOrderBy+    , elSingleEvents+    , elPrivateExtendedProperty+    , elShowDeleted+    , elQ+    , elSharedExtendedProperty+    , elMaxAttendees+    , elICalUId+    , elUpdatedMin+    , elPageToken+    , elTimeZone+    , elShowHiddenInvitations+    , elMaxResults+    , elAlwaysIncludeEmail+    , elTimeMax+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.events.list@ method which the+-- 'EventsList' request conforms to.+type EventsListResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "events" :>+               QueryParam "syncToken" Text :>+                 QueryParam "timeMin" DateTime' :>+                   QueryParam "orderBy" EventsListOrderBy :>+                     QueryParam "singleEvents" Bool :>+                       QueryParams "privateExtendedProperty" Text :>+                         QueryParam "showDeleted" Bool :>+                           QueryParam "q" Text :>+                             QueryParams "sharedExtendedProperty" Text :>+                               QueryParam "maxAttendees" (Textual Int32) :>+                                 QueryParam "iCalUID" Text :>+                                   QueryParam "updatedMin" DateTime' :>+                                     QueryParam "pageToken" Text :>+                                       QueryParam "timeZone" Text :>+                                         QueryParam "showHiddenInvitations" Bool+                                           :>+                                           QueryParam "maxResults"+                                             (Textual Int32)+                                             :>+                                             QueryParam "alwaysIncludeEmail"+                                               Bool+                                               :>+                                               QueryParam "timeMax" DateTime' :>+                                                 QueryParam "alt" AltJSON :>+                                                   Get '[JSON] Events++-- | Returns events on the specified calendar.+--+-- /See:/ 'eventsList' smart constructor.+data EventsList = EventsList+    { _elSyncToken               :: !(Maybe Text)+    , _elCalendarId              :: !Text+    , _elTimeMin                 :: !(Maybe DateTime')+    , _elOrderBy                 :: !(Maybe EventsListOrderBy)+    , _elSingleEvents            :: !(Maybe Bool)+    , _elPrivateExtendedProperty :: !(Maybe [Text])+    , _elShowDeleted             :: !(Maybe Bool)+    , _elQ                       :: !(Maybe Text)+    , _elSharedExtendedProperty  :: !(Maybe [Text])+    , _elMaxAttendees            :: !(Maybe (Textual Int32))+    , _elICalUId                 :: !(Maybe Text)+    , _elUpdatedMin              :: !(Maybe DateTime')+    , _elPageToken               :: !(Maybe Text)+    , _elTimeZone                :: !(Maybe Text)+    , _elShowHiddenInvitations   :: !(Maybe Bool)+    , _elMaxResults              :: !(Maybe (Textual Int32))+    , _elAlwaysIncludeEmail      :: !(Maybe Bool)+    , _elTimeMax                 :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'elSyncToken'+--+-- * 'elCalendarId'+--+-- * 'elTimeMin'+--+-- * 'elOrderBy'+--+-- * 'elSingleEvents'+--+-- * 'elPrivateExtendedProperty'+--+-- * 'elShowDeleted'+--+-- * 'elQ'+--+-- * 'elSharedExtendedProperty'+--+-- * 'elMaxAttendees'+--+-- * 'elICalUId'+--+-- * 'elUpdatedMin'+--+-- * 'elPageToken'+--+-- * 'elTimeZone'+--+-- * 'elShowHiddenInvitations'+--+-- * 'elMaxResults'+--+-- * 'elAlwaysIncludeEmail'+--+-- * 'elTimeMax'+eventsList+    :: Text -- ^ 'elCalendarId'+    -> EventsList+eventsList pElCalendarId_ =+    EventsList+    { _elSyncToken = Nothing+    , _elCalendarId = pElCalendarId_+    , _elTimeMin = Nothing+    , _elOrderBy = Nothing+    , _elSingleEvents = Nothing+    , _elPrivateExtendedProperty = Nothing+    , _elShowDeleted = Nothing+    , _elQ = Nothing+    , _elSharedExtendedProperty = Nothing+    , _elMaxAttendees = Nothing+    , _elICalUId = Nothing+    , _elUpdatedMin = Nothing+    , _elPageToken = Nothing+    , _elTimeZone = Nothing+    , _elShowHiddenInvitations = Nothing+    , _elMaxResults = Nothing+    , _elAlwaysIncludeEmail = Nothing+    , _elTimeMax = Nothing+    }++-- | Token obtained from the nextSyncToken field returned on the last page of+-- results from the previous list request. It makes the result of this list+-- request contain only entries that have changed since then. All events+-- deleted since the previous list request will always be in the result set+-- and it is not allowed to set showDeleted to False. There are several+-- query parameters that cannot be specified together with nextSyncToken to+-- ensure consistency of the client state. These are: - iCalUID - orderBy -+-- privateExtendedProperty - q - sharedExtendedProperty - timeMin - timeMax+-- - updatedMin If the syncToken expires, the server will respond with a+-- 410 GONE response code and the client should clear its storage and+-- perform a full synchronization without any syncToken. Learn more about+-- incremental synchronization. Optional. The default is to return all+-- entries.+elSyncToken :: Lens' EventsList (Maybe Text)+elSyncToken+  = lens _elSyncToken (\ s a -> s{_elSyncToken = a})++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+elCalendarId :: Lens' EventsList Text+elCalendarId+  = lens _elCalendarId (\ s a -> s{_elCalendarId = a})++-- | Lower bound (inclusive) for an event\'s end time to filter by. Optional.+-- The default is not to filter by end time. Must be an RFC3339 timestamp+-- with mandatory time zone offset, e.g., 2011-06-03T10:00:00-07:00,+-- 2011-06-03T10:00:00Z. Milliseconds may be provided but will be ignored.+elTimeMin :: Lens' EventsList (Maybe UTCTime)+elTimeMin+  = lens _elTimeMin (\ s a -> s{_elTimeMin = a}) .+      mapping _DateTime++-- | The order of the events returned in the result. Optional. The default is+-- an unspecified, stable order.+elOrderBy :: Lens' EventsList (Maybe EventsListOrderBy)+elOrderBy+  = lens _elOrderBy (\ s a -> s{_elOrderBy = a})++-- | Whether to expand recurring events into instances and only return single+-- one-off events and instances of recurring events, but not the underlying+-- recurring events themselves. Optional. The default is False.+elSingleEvents :: Lens' EventsList (Maybe Bool)+elSingleEvents+  = lens _elSingleEvents+      (\ s a -> s{_elSingleEvents = a})++-- | Extended properties constraint specified as propertyName=value. Matches+-- only private properties. This parameter might be repeated multiple times+-- to return events that match all given constraints.+elPrivateExtendedProperty :: Lens' EventsList [Text]+elPrivateExtendedProperty+  = lens _elPrivateExtendedProperty+      (\ s a -> s{_elPrivateExtendedProperty = a})+      . _Default+      . _Coerce++-- | Whether to include deleted events (with status equals \"cancelled\") in+-- the result. Cancelled instances of recurring events (but not the+-- underlying recurring event) will still be included if showDeleted and+-- singleEvents are both False. If showDeleted and singleEvents are both+-- True, only single instances of deleted events (but not the underlying+-- recurring events) are returned. Optional. The default is False.+elShowDeleted :: Lens' EventsList (Maybe Bool)+elShowDeleted+  = lens _elShowDeleted+      (\ s a -> s{_elShowDeleted = a})++-- | Free text search terms to find events that match these terms in any+-- field, except for extended properties. Optional.+elQ :: Lens' EventsList (Maybe Text)+elQ = lens _elQ (\ s a -> s{_elQ = a})++-- | Extended properties constraint specified as propertyName=value. Matches+-- only shared properties. This parameter might be repeated multiple times+-- to return events that match all given constraints.+elSharedExtendedProperty :: Lens' EventsList [Text]+elSharedExtendedProperty+  = lens _elSharedExtendedProperty+      (\ s a -> s{_elSharedExtendedProperty = a})+      . _Default+      . _Coerce++-- | The maximum number of attendees to include in the response. If there are+-- more than the specified number of attendees, only the participant is+-- returned. Optional.+elMaxAttendees :: Lens' EventsList (Maybe Int32)+elMaxAttendees+  = lens _elMaxAttendees+      (\ s a -> s{_elMaxAttendees = a})+      . mapping _Coerce++-- | Specifies event ID in the iCalendar format to be included in the+-- response. Optional.+elICalUId :: Lens' EventsList (Maybe Text)+elICalUId+  = lens _elICalUId (\ s a -> s{_elICalUId = a})++-- | Lower bound for an event\'s last modification time (as a RFC3339+-- timestamp) to filter by. When specified, entries deleted since this time+-- will always be included regardless of showDeleted. Optional. The default+-- is not to filter by last modification time.+elUpdatedMin :: Lens' EventsList (Maybe UTCTime)+elUpdatedMin+  = lens _elUpdatedMin (\ s a -> s{_elUpdatedMin = a})+      . mapping _DateTime++-- | Token specifying which result page to return. Optional.+elPageToken :: Lens' EventsList (Maybe Text)+elPageToken+  = lens _elPageToken (\ s a -> s{_elPageToken = a})++-- | Time zone used in the response. Optional. The default is the time zone+-- of the calendar.+elTimeZone :: Lens' EventsList (Maybe Text)+elTimeZone+  = lens _elTimeZone (\ s a -> s{_elTimeZone = a})++-- | Whether to include hidden invitations in the result. Optional. The+-- default is False.+elShowHiddenInvitations :: Lens' EventsList (Maybe Bool)+elShowHiddenInvitations+  = lens _elShowHiddenInvitations+      (\ s a -> s{_elShowHiddenInvitations = a})++-- | Maximum number of events returned on one result page. By default the+-- value is 250 events. The page size can never be larger than 2500 events.+-- Optional.+elMaxResults :: Lens' EventsList (Maybe Int32)+elMaxResults+  = lens _elMaxResults (\ s a -> s{_elMaxResults = a})+      . mapping _Coerce++-- | Whether to always include a value in the email field for the organizer,+-- creator and attendees, even if no real email is available (i.e. a+-- generated, non-working value will be provided). The use of this option+-- is discouraged and should only be used by clients which cannot handle+-- the absence of an email address value in the mentioned places. Optional.+-- The default is False.+elAlwaysIncludeEmail :: Lens' EventsList (Maybe Bool)+elAlwaysIncludeEmail+  = lens _elAlwaysIncludeEmail+      (\ s a -> s{_elAlwaysIncludeEmail = a})++-- | Upper bound (exclusive) for an event\'s start time to filter by.+-- Optional. The default is not to filter by start time. Must be an RFC3339+-- timestamp with mandatory time zone offset, e.g.,+-- 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be+-- provided but will be ignored.+elTimeMax :: Lens' EventsList (Maybe UTCTime)+elTimeMax+  = lens _elTimeMax (\ s a -> s{_elTimeMax = a}) .+      mapping _DateTime++instance GoogleRequest EventsList where+        type Rs EventsList = Events+        requestClient EventsList{..}+          = go _elCalendarId _elSyncToken _elTimeMin _elOrderBy+              _elSingleEvents+              (_elPrivateExtendedProperty ^. _Default)+              _elShowDeleted+              _elQ+              (_elSharedExtendedProperty ^. _Default)+              _elMaxAttendees+              _elICalUId+              _elUpdatedMin+              _elPageToken+              _elTimeZone+              _elShowHiddenInvitations+              _elMaxResults+              _elAlwaysIncludeEmail+              _elTimeMax+              (Just AltJSON)+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy EventsListResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Events/Move.hs view
@@ -0,0 +1,127 @@+{-# 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.Calendar.Events.Move+-- Copyright   : (c) 2015 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)+--+-- Moves an event to another calendar, i.e. changes an event\'s organizer.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.move@.+module Network.Google.Resource.Calendar.Events.Move+    (+    -- * REST Resource+      EventsMoveResource++    -- * Creating a Request+    , eventsMove+    , EventsMove++    -- * Request Lenses+    , emDestination+    , emCalendarId+    , emSendNotifications+    , emEventId+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.events.move@ method which the+-- 'EventsMove' request conforms to.+type EventsMoveResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "events" :>+               Capture "eventId" Text :>+                 "move" :>+                   QueryParam "destination" Text :>+                     QueryParam "sendNotifications" Bool :>+                       QueryParam "alt" AltJSON :> Post '[JSON] Event++-- | Moves an event to another calendar, i.e. changes an event\'s organizer.+--+-- /See:/ 'eventsMove' smart constructor.+data EventsMove = EventsMove+    { _emDestination       :: !Text+    , _emCalendarId        :: !Text+    , _emSendNotifications :: !(Maybe Bool)+    , _emEventId           :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventsMove' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'emDestination'+--+-- * 'emCalendarId'+--+-- * 'emSendNotifications'+--+-- * 'emEventId'+eventsMove+    :: Text -- ^ 'emDestination'+    -> Text -- ^ 'emCalendarId'+    -> Text -- ^ 'emEventId'+    -> EventsMove+eventsMove pEmDestination_ pEmCalendarId_ pEmEventId_ =+    EventsMove+    { _emDestination = pEmDestination_+    , _emCalendarId = pEmCalendarId_+    , _emSendNotifications = Nothing+    , _emEventId = pEmEventId_+    }++-- | Calendar identifier of the target calendar where the event is to be+-- moved to.+emDestination :: Lens' EventsMove Text+emDestination+  = lens _emDestination+      (\ s a -> s{_emDestination = a})++-- | Calendar identifier of the source calendar where the event currently is+-- on.+emCalendarId :: Lens' EventsMove Text+emCalendarId+  = lens _emCalendarId (\ s a -> s{_emCalendarId = a})++-- | Whether to send notifications about the change of the event\'s+-- organizer. Optional. The default is False.+emSendNotifications :: Lens' EventsMove (Maybe Bool)+emSendNotifications+  = lens _emSendNotifications+      (\ s a -> s{_emSendNotifications = a})++-- | Event identifier.+emEventId :: Lens' EventsMove Text+emEventId+  = lens _emEventId (\ s a -> s{_emEventId = a})++instance GoogleRequest EventsMove where+        type Rs EventsMove = Event+        requestClient EventsMove{..}+          = go _emCalendarId _emEventId (Just _emDestination)+              _emSendNotifications+              (Just AltJSON)+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy EventsMoveResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Events/Patch.hs view
@@ -0,0 +1,173 @@+{-# 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.Calendar.Events.Patch+-- Copyright   : (c) 2015 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 an event. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.patch@.+module Network.Google.Resource.Calendar.Events.Patch+    (+    -- * REST Resource+      EventsPatchResource++    -- * Creating a Request+    , eventsPatch+    , EventsPatch++    -- * Request Lenses+    , epCalendarId+    , epPayload+    , epMaxAttendees+    , epSendNotifications+    , epSupportsAttachments+    , epAlwaysIncludeEmail+    , epEventId+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.events.patch@ method which the+-- 'EventsPatch' request conforms to.+type EventsPatchResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "events" :>+               Capture "eventId" Text :>+                 QueryParam "maxAttendees" (Textual Int32) :>+                   QueryParam "sendNotifications" Bool :>+                     QueryParam "supportsAttachments" Bool :>+                       QueryParam "alwaysIncludeEmail" Bool :>+                         QueryParam "alt" AltJSON :>+                           ReqBody '[JSON] Event :> Patch '[JSON] Event++-- | Updates an event. This method supports patch semantics.+--+-- /See:/ 'eventsPatch' smart constructor.+data EventsPatch = EventsPatch+    { _epCalendarId          :: !Text+    , _epPayload             :: !Event+    , _epMaxAttendees        :: !(Maybe (Textual Int32))+    , _epSendNotifications   :: !(Maybe Bool)+    , _epSupportsAttachments :: !(Maybe Bool)+    , _epAlwaysIncludeEmail  :: !(Maybe Bool)+    , _epEventId             :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'epCalendarId'+--+-- * 'epPayload'+--+-- * 'epMaxAttendees'+--+-- * 'epSendNotifications'+--+-- * 'epSupportsAttachments'+--+-- * 'epAlwaysIncludeEmail'+--+-- * 'epEventId'+eventsPatch+    :: Text -- ^ 'epCalendarId'+    -> Event -- ^ 'epPayload'+    -> Text -- ^ 'epEventId'+    -> EventsPatch+eventsPatch pEpCalendarId_ pEpPayload_ pEpEventId_ =+    EventsPatch+    { _epCalendarId = pEpCalendarId_+    , _epPayload = pEpPayload_+    , _epMaxAttendees = Nothing+    , _epSendNotifications = Nothing+    , _epSupportsAttachments = Nothing+    , _epAlwaysIncludeEmail = Nothing+    , _epEventId = pEpEventId_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+epCalendarId :: Lens' EventsPatch Text+epCalendarId+  = lens _epCalendarId (\ s a -> s{_epCalendarId = a})++-- | Multipart request metadata.+epPayload :: Lens' EventsPatch Event+epPayload+  = lens _epPayload (\ s a -> s{_epPayload = a})++-- | The maximum number of attendees to include in the response. If there are+-- more than the specified number of attendees, only the participant is+-- returned. Optional.+epMaxAttendees :: Lens' EventsPatch (Maybe Int32)+epMaxAttendees+  = lens _epMaxAttendees+      (\ s a -> s{_epMaxAttendees = a})+      . mapping _Coerce++-- | Whether to send notifications about the event update (e.g. attendee\'s+-- responses, title changes, etc.). Optional. The default is False.+epSendNotifications :: Lens' EventsPatch (Maybe Bool)+epSendNotifications+  = lens _epSendNotifications+      (\ s a -> s{_epSendNotifications = a})++-- | Whether API client performing operation supports event attachments.+-- Optional. The default is False.+epSupportsAttachments :: Lens' EventsPatch (Maybe Bool)+epSupportsAttachments+  = lens _epSupportsAttachments+      (\ s a -> s{_epSupportsAttachments = a})++-- | Whether to always include a value in the email field for the organizer,+-- creator and attendees, even if no real email is available (i.e. a+-- generated, non-working value will be provided). The use of this option+-- is discouraged and should only be used by clients which cannot handle+-- the absence of an email address value in the mentioned places. Optional.+-- The default is False.+epAlwaysIncludeEmail :: Lens' EventsPatch (Maybe Bool)+epAlwaysIncludeEmail+  = lens _epAlwaysIncludeEmail+      (\ s a -> s{_epAlwaysIncludeEmail = a})++-- | Event identifier.+epEventId :: Lens' EventsPatch Text+epEventId+  = lens _epEventId (\ s a -> s{_epEventId = a})++instance GoogleRequest EventsPatch where+        type Rs EventsPatch = Event+        requestClient EventsPatch{..}+          = go _epCalendarId _epEventId _epMaxAttendees+              _epSendNotifications+              _epSupportsAttachments+              _epAlwaysIncludeEmail+              (Just AltJSON)+              _epPayload+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy EventsPatchResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Events/QuickAdd.hs view
@@ -0,0 +1,114 @@+{-# 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.Calendar.Events.QuickAdd+-- Copyright   : (c) 2015 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 an event based on a simple text string.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.quickAdd@.+module Network.Google.Resource.Calendar.Events.QuickAdd+    (+    -- * REST Resource+      EventsQuickAddResource++    -- * Creating a Request+    , eventsQuickAdd+    , EventsQuickAdd++    -- * Request Lenses+    , eqaCalendarId+    , eqaText+    , eqaSendNotifications+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.events.quickAdd@ method which the+-- 'EventsQuickAdd' request conforms to.+type EventsQuickAddResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "events" :>+               "quickAdd" :>+                 QueryParam "text" Text :>+                   QueryParam "sendNotifications" Bool :>+                     QueryParam "alt" AltJSON :> Post '[JSON] Event++-- | Creates an event based on a simple text string.+--+-- /See:/ 'eventsQuickAdd' smart constructor.+data EventsQuickAdd = EventsQuickAdd+    { _eqaCalendarId        :: !Text+    , _eqaText              :: !Text+    , _eqaSendNotifications :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventsQuickAdd' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eqaCalendarId'+--+-- * 'eqaText'+--+-- * 'eqaSendNotifications'+eventsQuickAdd+    :: Text -- ^ 'eqaCalendarId'+    -> Text -- ^ 'eqaText'+    -> EventsQuickAdd+eventsQuickAdd pEqaCalendarId_ pEqaText_ =+    EventsQuickAdd+    { _eqaCalendarId = pEqaCalendarId_+    , _eqaText = pEqaText_+    , _eqaSendNotifications = Nothing+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+eqaCalendarId :: Lens' EventsQuickAdd Text+eqaCalendarId+  = lens _eqaCalendarId+      (\ s a -> s{_eqaCalendarId = a})++-- | The text describing the event to be created.+eqaText :: Lens' EventsQuickAdd Text+eqaText = lens _eqaText (\ s a -> s{_eqaText = a})++-- | Whether to send notifications about the creation of the event. Optional.+-- The default is False.+eqaSendNotifications :: Lens' EventsQuickAdd (Maybe Bool)+eqaSendNotifications+  = lens _eqaSendNotifications+      (\ s a -> s{_eqaSendNotifications = a})++instance GoogleRequest EventsQuickAdd where+        type Rs EventsQuickAdd = Event+        requestClient EventsQuickAdd{..}+          = go _eqaCalendarId (Just _eqaText)+              _eqaSendNotifications+              (Just AltJSON)+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy EventsQuickAddResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Events/Update.hs view
@@ -0,0 +1,173 @@+{-# 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.Calendar.Events.Update+-- Copyright   : (c) 2015 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 an event.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.update@.+module Network.Google.Resource.Calendar.Events.Update+    (+    -- * REST Resource+      EventsUpdateResource++    -- * Creating a Request+    , eventsUpdate+    , EventsUpdate++    -- * Request Lenses+    , euCalendarId+    , euPayload+    , euMaxAttendees+    , euSendNotifications+    , euSupportsAttachments+    , euAlwaysIncludeEmail+    , euEventId+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.events.update@ method which the+-- 'EventsUpdate' request conforms to.+type EventsUpdateResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "events" :>+               Capture "eventId" Text :>+                 QueryParam "maxAttendees" (Textual Int32) :>+                   QueryParam "sendNotifications" Bool :>+                     QueryParam "supportsAttachments" Bool :>+                       QueryParam "alwaysIncludeEmail" Bool :>+                         QueryParam "alt" AltJSON :>+                           ReqBody '[JSON] Event :> Put '[JSON] Event++-- | Updates an event.+--+-- /See:/ 'eventsUpdate' smart constructor.+data EventsUpdate = EventsUpdate+    { _euCalendarId          :: !Text+    , _euPayload             :: !Event+    , _euMaxAttendees        :: !(Maybe (Textual Int32))+    , _euSendNotifications   :: !(Maybe Bool)+    , _euSupportsAttachments :: !(Maybe Bool)+    , _euAlwaysIncludeEmail  :: !(Maybe Bool)+    , _euEventId             :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'euCalendarId'+--+-- * 'euPayload'+--+-- * 'euMaxAttendees'+--+-- * 'euSendNotifications'+--+-- * 'euSupportsAttachments'+--+-- * 'euAlwaysIncludeEmail'+--+-- * 'euEventId'+eventsUpdate+    :: Text -- ^ 'euCalendarId'+    -> Event -- ^ 'euPayload'+    -> Text -- ^ 'euEventId'+    -> EventsUpdate+eventsUpdate pEuCalendarId_ pEuPayload_ pEuEventId_ =+    EventsUpdate+    { _euCalendarId = pEuCalendarId_+    , _euPayload = pEuPayload_+    , _euMaxAttendees = Nothing+    , _euSendNotifications = Nothing+    , _euSupportsAttachments = Nothing+    , _euAlwaysIncludeEmail = Nothing+    , _euEventId = pEuEventId_+    }++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+euCalendarId :: Lens' EventsUpdate Text+euCalendarId+  = lens _euCalendarId (\ s a -> s{_euCalendarId = a})++-- | Multipart request metadata.+euPayload :: Lens' EventsUpdate Event+euPayload+  = lens _euPayload (\ s a -> s{_euPayload = a})++-- | The maximum number of attendees to include in the response. If there are+-- more than the specified number of attendees, only the participant is+-- returned. Optional.+euMaxAttendees :: Lens' EventsUpdate (Maybe Int32)+euMaxAttendees+  = lens _euMaxAttendees+      (\ s a -> s{_euMaxAttendees = a})+      . mapping _Coerce++-- | Whether to send notifications about the event update (e.g. attendee\'s+-- responses, title changes, etc.). Optional. The default is False.+euSendNotifications :: Lens' EventsUpdate (Maybe Bool)+euSendNotifications+  = lens _euSendNotifications+      (\ s a -> s{_euSendNotifications = a})++-- | Whether API client performing operation supports event attachments.+-- Optional. The default is False.+euSupportsAttachments :: Lens' EventsUpdate (Maybe Bool)+euSupportsAttachments+  = lens _euSupportsAttachments+      (\ s a -> s{_euSupportsAttachments = a})++-- | Whether to always include a value in the email field for the organizer,+-- creator and attendees, even if no real email is available (i.e. a+-- generated, non-working value will be provided). The use of this option+-- is discouraged and should only be used by clients which cannot handle+-- the absence of an email address value in the mentioned places. Optional.+-- The default is False.+euAlwaysIncludeEmail :: Lens' EventsUpdate (Maybe Bool)+euAlwaysIncludeEmail+  = lens _euAlwaysIncludeEmail+      (\ s a -> s{_euAlwaysIncludeEmail = a})++-- | Event identifier.+euEventId :: Lens' EventsUpdate Text+euEventId+  = lens _euEventId (\ s a -> s{_euEventId = a})++instance GoogleRequest EventsUpdate where+        type Rs EventsUpdate = Event+        requestClient EventsUpdate{..}+          = go _euCalendarId _euEventId _euMaxAttendees+              _euSendNotifications+              _euSupportsAttachments+              _euAlwaysIncludeEmail+              (Just AltJSON)+              _euPayload+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy EventsUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Events/Watch.hs view
@@ -0,0 +1,372 @@+{-# 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.Calendar.Events.Watch+-- Copyright   : (c) 2015 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)+--+-- Watch for changes to Events resources.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.watch@.+module Network.Google.Resource.Calendar.Events.Watch+    (+    -- * REST Resource+      EventsWatchResource++    -- * Creating a Request+    , eventsWatch+    , EventsWatch++    -- * Request Lenses+    , ewSyncToken+    , ewCalendarId+    , ewTimeMin+    , ewOrderBy+    , ewSingleEvents+    , ewPrivateExtendedProperty+    , ewShowDeleted+    , ewPayload+    , ewQ+    , ewSharedExtendedProperty+    , ewMaxAttendees+    , ewICalUId+    , ewUpdatedMin+    , ewPageToken+    , ewTimeZone+    , ewShowHiddenInvitations+    , ewMaxResults+    , ewAlwaysIncludeEmail+    , ewTimeMax+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.events.watch@ method which the+-- 'EventsWatch' request conforms to.+type EventsWatchResource =+     "calendar" :>+       "v3" :>+         "calendars" :>+           Capture "calendarId" Text :>+             "events" :>+               "watch" :>+                 QueryParam "syncToken" Text :>+                   QueryParam "timeMin" DateTime' :>+                     QueryParam "orderBy" EventsWatchOrderBy :>+                       QueryParam "singleEvents" Bool :>+                         QueryParams "privateExtendedProperty" Text :>+                           QueryParam "showDeleted" Bool :>+                             QueryParam "q" Text :>+                               QueryParams "sharedExtendedProperty" Text :>+                                 QueryParam "maxAttendees" (Textual Int32) :>+                                   QueryParam "iCalUID" Text :>+                                     QueryParam "updatedMin" DateTime' :>+                                       QueryParam "pageToken" Text :>+                                         QueryParam "timeZone" Text :>+                                           QueryParam "showHiddenInvitations"+                                             Bool+                                             :>+                                             QueryParam "maxResults"+                                               (Textual Int32)+                                               :>+                                               QueryParam "alwaysIncludeEmail"+                                                 Bool+                                                 :>+                                                 QueryParam "timeMax" DateTime'+                                                   :>+                                                   QueryParam "alt" AltJSON :>+                                                     ReqBody '[JSON] Channel :>+                                                       Post '[JSON] Channel++-- | Watch for changes to Events resources.+--+-- /See:/ 'eventsWatch' smart constructor.+data EventsWatch = EventsWatch+    { _ewSyncToken               :: !(Maybe Text)+    , _ewCalendarId              :: !Text+    , _ewTimeMin                 :: !(Maybe DateTime')+    , _ewOrderBy                 :: !(Maybe EventsWatchOrderBy)+    , _ewSingleEvents            :: !(Maybe Bool)+    , _ewPrivateExtendedProperty :: !(Maybe [Text])+    , _ewShowDeleted             :: !(Maybe Bool)+    , _ewPayload                 :: !Channel+    , _ewQ                       :: !(Maybe Text)+    , _ewSharedExtendedProperty  :: !(Maybe [Text])+    , _ewMaxAttendees            :: !(Maybe (Textual Int32))+    , _ewICalUId                 :: !(Maybe Text)+    , _ewUpdatedMin              :: !(Maybe DateTime')+    , _ewPageToken               :: !(Maybe Text)+    , _ewTimeZone                :: !(Maybe Text)+    , _ewShowHiddenInvitations   :: !(Maybe Bool)+    , _ewMaxResults              :: !(Maybe (Textual Int32))+    , _ewAlwaysIncludeEmail      :: !(Maybe Bool)+    , _ewTimeMax                 :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventsWatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ewSyncToken'+--+-- * 'ewCalendarId'+--+-- * 'ewTimeMin'+--+-- * 'ewOrderBy'+--+-- * 'ewSingleEvents'+--+-- * 'ewPrivateExtendedProperty'+--+-- * 'ewShowDeleted'+--+-- * 'ewPayload'+--+-- * 'ewQ'+--+-- * 'ewSharedExtendedProperty'+--+-- * 'ewMaxAttendees'+--+-- * 'ewICalUId'+--+-- * 'ewUpdatedMin'+--+-- * 'ewPageToken'+--+-- * 'ewTimeZone'+--+-- * 'ewShowHiddenInvitations'+--+-- * 'ewMaxResults'+--+-- * 'ewAlwaysIncludeEmail'+--+-- * 'ewTimeMax'+eventsWatch+    :: Text -- ^ 'ewCalendarId'+    -> Channel -- ^ 'ewPayload'+    -> EventsWatch+eventsWatch pEwCalendarId_ pEwPayload_ =+    EventsWatch+    { _ewSyncToken = Nothing+    , _ewCalendarId = pEwCalendarId_+    , _ewTimeMin = Nothing+    , _ewOrderBy = Nothing+    , _ewSingleEvents = Nothing+    , _ewPrivateExtendedProperty = Nothing+    , _ewShowDeleted = Nothing+    , _ewPayload = pEwPayload_+    , _ewQ = Nothing+    , _ewSharedExtendedProperty = Nothing+    , _ewMaxAttendees = Nothing+    , _ewICalUId = Nothing+    , _ewUpdatedMin = Nothing+    , _ewPageToken = Nothing+    , _ewTimeZone = Nothing+    , _ewShowHiddenInvitations = Nothing+    , _ewMaxResults = Nothing+    , _ewAlwaysIncludeEmail = Nothing+    , _ewTimeMax = Nothing+    }++-- | Token obtained from the nextSyncToken field returned on the last page of+-- results from the previous list request. It makes the result of this list+-- request contain only entries that have changed since then. All events+-- deleted since the previous list request will always be in the result set+-- and it is not allowed to set showDeleted to False. There are several+-- query parameters that cannot be specified together with nextSyncToken to+-- ensure consistency of the client state. These are: - iCalUID - orderBy -+-- privateExtendedProperty - q - sharedExtendedProperty - timeMin - timeMax+-- - updatedMin If the syncToken expires, the server will respond with a+-- 410 GONE response code and the client should clear its storage and+-- perform a full synchronization without any syncToken. Learn more about+-- incremental synchronization. Optional. The default is to return all+-- entries.+ewSyncToken :: Lens' EventsWatch (Maybe Text)+ewSyncToken+  = lens _ewSyncToken (\ s a -> s{_ewSyncToken = a})++-- | Calendar identifier. To retrieve calendar IDs call the calendarList.list+-- method. If you want to access the primary calendar of the currently+-- logged in user, use the \"primary\" keyword.+ewCalendarId :: Lens' EventsWatch Text+ewCalendarId+  = lens _ewCalendarId (\ s a -> s{_ewCalendarId = a})++-- | Lower bound (inclusive) for an event\'s end time to filter by. Optional.+-- The default is not to filter by end time. Must be an RFC3339 timestamp+-- with mandatory time zone offset, e.g., 2011-06-03T10:00:00-07:00,+-- 2011-06-03T10:00:00Z. Milliseconds may be provided but will be ignored.+ewTimeMin :: Lens' EventsWatch (Maybe UTCTime)+ewTimeMin+  = lens _ewTimeMin (\ s a -> s{_ewTimeMin = a}) .+      mapping _DateTime++-- | The order of the events returned in the result. Optional. The default is+-- an unspecified, stable order.+ewOrderBy :: Lens' EventsWatch (Maybe EventsWatchOrderBy)+ewOrderBy+  = lens _ewOrderBy (\ s a -> s{_ewOrderBy = a})++-- | Whether to expand recurring events into instances and only return single+-- one-off events and instances of recurring events, but not the underlying+-- recurring events themselves. Optional. The default is False.+ewSingleEvents :: Lens' EventsWatch (Maybe Bool)+ewSingleEvents+  = lens _ewSingleEvents+      (\ s a -> s{_ewSingleEvents = a})++-- | Extended properties constraint specified as propertyName=value. Matches+-- only private properties. This parameter might be repeated multiple times+-- to return events that match all given constraints.+ewPrivateExtendedProperty :: Lens' EventsWatch [Text]+ewPrivateExtendedProperty+  = lens _ewPrivateExtendedProperty+      (\ s a -> s{_ewPrivateExtendedProperty = a})+      . _Default+      . _Coerce++-- | Whether to include deleted events (with status equals \"cancelled\") in+-- the result. Cancelled instances of recurring events (but not the+-- underlying recurring event) will still be included if showDeleted and+-- singleEvents are both False. If showDeleted and singleEvents are both+-- True, only single instances of deleted events (but not the underlying+-- recurring events) are returned. Optional. The default is False.+ewShowDeleted :: Lens' EventsWatch (Maybe Bool)+ewShowDeleted+  = lens _ewShowDeleted+      (\ s a -> s{_ewShowDeleted = a})++-- | Multipart request metadata.+ewPayload :: Lens' EventsWatch Channel+ewPayload+  = lens _ewPayload (\ s a -> s{_ewPayload = a})++-- | Free text search terms to find events that match these terms in any+-- field, except for extended properties. Optional.+ewQ :: Lens' EventsWatch (Maybe Text)+ewQ = lens _ewQ (\ s a -> s{_ewQ = a})++-- | Extended properties constraint specified as propertyName=value. Matches+-- only shared properties. This parameter might be repeated multiple times+-- to return events that match all given constraints.+ewSharedExtendedProperty :: Lens' EventsWatch [Text]+ewSharedExtendedProperty+  = lens _ewSharedExtendedProperty+      (\ s a -> s{_ewSharedExtendedProperty = a})+      . _Default+      . _Coerce++-- | The maximum number of attendees to include in the response. If there are+-- more than the specified number of attendees, only the participant is+-- returned. Optional.+ewMaxAttendees :: Lens' EventsWatch (Maybe Int32)+ewMaxAttendees+  = lens _ewMaxAttendees+      (\ s a -> s{_ewMaxAttendees = a})+      . mapping _Coerce++-- | Specifies event ID in the iCalendar format to be included in the+-- response. Optional.+ewICalUId :: Lens' EventsWatch (Maybe Text)+ewICalUId+  = lens _ewICalUId (\ s a -> s{_ewICalUId = a})++-- | Lower bound for an event\'s last modification time (as a RFC3339+-- timestamp) to filter by. When specified, entries deleted since this time+-- will always be included regardless of showDeleted. Optional. The default+-- is not to filter by last modification time.+ewUpdatedMin :: Lens' EventsWatch (Maybe UTCTime)+ewUpdatedMin+  = lens _ewUpdatedMin (\ s a -> s{_ewUpdatedMin = a})+      . mapping _DateTime++-- | Token specifying which result page to return. Optional.+ewPageToken :: Lens' EventsWatch (Maybe Text)+ewPageToken+  = lens _ewPageToken (\ s a -> s{_ewPageToken = a})++-- | Time zone used in the response. Optional. The default is the time zone+-- of the calendar.+ewTimeZone :: Lens' EventsWatch (Maybe Text)+ewTimeZone+  = lens _ewTimeZone (\ s a -> s{_ewTimeZone = a})++-- | Whether to include hidden invitations in the result. Optional. The+-- default is False.+ewShowHiddenInvitations :: Lens' EventsWatch (Maybe Bool)+ewShowHiddenInvitations+  = lens _ewShowHiddenInvitations+      (\ s a -> s{_ewShowHiddenInvitations = a})++-- | Maximum number of events returned on one result page. By default the+-- value is 250 events. The page size can never be larger than 2500 events.+-- Optional.+ewMaxResults :: Lens' EventsWatch (Maybe Int32)+ewMaxResults+  = lens _ewMaxResults (\ s a -> s{_ewMaxResults = a})+      . mapping _Coerce++-- | Whether to always include a value in the email field for the organizer,+-- creator and attendees, even if no real email is available (i.e. a+-- generated, non-working value will be provided). The use of this option+-- is discouraged and should only be used by clients which cannot handle+-- the absence of an email address value in the mentioned places. Optional.+-- The default is False.+ewAlwaysIncludeEmail :: Lens' EventsWatch (Maybe Bool)+ewAlwaysIncludeEmail+  = lens _ewAlwaysIncludeEmail+      (\ s a -> s{_ewAlwaysIncludeEmail = a})++-- | Upper bound (exclusive) for an event\'s start time to filter by.+-- Optional. The default is not to filter by start time. Must be an RFC3339+-- timestamp with mandatory time zone offset, e.g.,+-- 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be+-- provided but will be ignored.+ewTimeMax :: Lens' EventsWatch (Maybe UTCTime)+ewTimeMax+  = lens _ewTimeMax (\ s a -> s{_ewTimeMax = a}) .+      mapping _DateTime++instance GoogleRequest EventsWatch where+        type Rs EventsWatch = Channel+        requestClient EventsWatch{..}+          = go _ewCalendarId _ewSyncToken _ewTimeMin _ewOrderBy+              _ewSingleEvents+              (_ewPrivateExtendedProperty ^. _Default)+              _ewShowDeleted+              _ewQ+              (_ewSharedExtendedProperty ^. _Default)+              _ewMaxAttendees+              _ewICalUId+              _ewUpdatedMin+              _ewPageToken+              _ewTimeZone+              _ewShowHiddenInvitations+              _ewMaxResults+              _ewAlwaysIncludeEmail+              _ewTimeMax+              (Just AltJSON)+              _ewPayload+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy EventsWatchResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/FreeBusy/Query.hs view
@@ -0,0 +1,83 @@+{-# 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.Calendar.FreeBusy.Query+-- Copyright   : (c) 2015 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 free\/busy information for a set of calendars.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.freebusy.query@.+module Network.Google.Resource.Calendar.FreeBusy.Query+    (+    -- * REST Resource+      FreeBusyQueryResource++    -- * Creating a Request+    , freeBusyQuery+    , FreeBusyQuery++    -- * Request Lenses+    , fbqPayload+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.freebusy.query@ method which the+-- 'FreeBusyQuery' request conforms to.+type FreeBusyQueryResource =+     "calendar" :>+       "v3" :>+         "freeBusy" :>+           QueryParam "alt" AltJSON :>+             ReqBody '[JSON] FreeBusyRequest :>+               Post '[JSON] FreeBusyResponse++-- | Returns free\/busy information for a set of calendars.+--+-- /See:/ 'freeBusyQuery' smart constructor.+newtype FreeBusyQuery = FreeBusyQuery+    { _fbqPayload :: FreeBusyRequest+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FreeBusyQuery' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fbqPayload'+freeBusyQuery+    :: FreeBusyRequest -- ^ 'fbqPayload'+    -> FreeBusyQuery+freeBusyQuery pFbqPayload_ =+    FreeBusyQuery+    { _fbqPayload = pFbqPayload_+    }++-- | Multipart request metadata.+fbqPayload :: Lens' FreeBusyQuery FreeBusyRequest+fbqPayload+  = lens _fbqPayload (\ s a -> s{_fbqPayload = a})++instance GoogleRequest FreeBusyQuery where+        type Rs FreeBusyQuery = FreeBusyResponse+        requestClient FreeBusyQuery{..}+          = go (Just AltJSON) _fbqPayload appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy FreeBusyQueryResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Settings/Get.hs view
@@ -0,0 +1,84 @@+{-# 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.Calendar.Settings.Get+-- Copyright   : (c) 2015 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 single user setting.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.settings.get@.+module Network.Google.Resource.Calendar.Settings.Get+    (+    -- * REST Resource+      SettingsGetResource++    -- * Creating a Request+    , settingsGet+    , SettingsGet++    -- * Request Lenses+    , sgSetting+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.settings.get@ method which the+-- 'SettingsGet' request conforms to.+type SettingsGetResource =+     "calendar" :>+       "v3" :>+         "users" :>+           "me" :>+             "settings" :>+               Capture "setting" Text :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Setting++-- | Returns a single user setting.+--+-- /See:/ 'settingsGet' smart constructor.+newtype SettingsGet = SettingsGet+    { _sgSetting :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SettingsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgSetting'+settingsGet+    :: Text -- ^ 'sgSetting'+    -> SettingsGet+settingsGet pSgSetting_ =+    SettingsGet+    { _sgSetting = pSgSetting_+    }++-- | The id of the user setting.+sgSetting :: Lens' SettingsGet Text+sgSetting+  = lens _sgSetting (\ s a -> s{_sgSetting = a})++instance GoogleRequest SettingsGet where+        type Rs SettingsGet = Setting+        requestClient SettingsGet{..}+          = go _sgSetting (Just AltJSON) appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy SettingsGetResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Settings/List.hs view
@@ -0,0 +1,116 @@+{-# 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.Calendar.Settings.List+-- Copyright   : (c) 2015 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 all user settings for the authenticated user.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.settings.list@.+module Network.Google.Resource.Calendar.Settings.List+    (+    -- * REST Resource+      SettingsListResource++    -- * Creating a Request+    , settingsList+    , SettingsList++    -- * Request Lenses+    , slSyncToken+    , slPageToken+    , slMaxResults+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.settings.list@ method which the+-- 'SettingsList' request conforms to.+type SettingsListResource =+     "calendar" :>+       "v3" :>+         "users" :>+           "me" :>+             "settings" :>+               QueryParam "syncToken" Text :>+                 QueryParam "pageToken" Text :>+                   QueryParam "maxResults" (Textual Int32) :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Settings++-- | Returns all user settings for the authenticated user.+--+-- /See:/ 'settingsList' smart constructor.+data SettingsList = SettingsList+    { _slSyncToken  :: !(Maybe Text)+    , _slPageToken  :: !(Maybe Text)+    , _slMaxResults :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SettingsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'slSyncToken'+--+-- * 'slPageToken'+--+-- * 'slMaxResults'+settingsList+    :: SettingsList+settingsList =+    SettingsList+    { _slSyncToken = Nothing+    , _slPageToken = Nothing+    , _slMaxResults = Nothing+    }++-- | Token obtained from the nextSyncToken field returned on the last page of+-- results from the previous list request. It makes the result of this list+-- request contain only entries that have changed since then. If the+-- syncToken expires, the server will respond with a 410 GONE response code+-- and the client should clear its storage and perform a full+-- synchronization without any syncToken. Learn more about incremental+-- synchronization. Optional. The default is to return all entries.+slSyncToken :: Lens' SettingsList (Maybe Text)+slSyncToken+  = lens _slSyncToken (\ s a -> s{_slSyncToken = a})++-- | Token specifying which result page to return. Optional.+slPageToken :: Lens' SettingsList (Maybe Text)+slPageToken+  = lens _slPageToken (\ s a -> s{_slPageToken = a})++-- | Maximum number of entries returned on one result page. By default the+-- value is 100 entries. The page size can never be larger than 250+-- entries. Optional.+slMaxResults :: Lens' SettingsList (Maybe Int32)+slMaxResults+  = lens _slMaxResults (\ s a -> s{_slMaxResults = a})+      . mapping _Coerce++instance GoogleRequest SettingsList where+        type Rs SettingsList = Settings+        requestClient SettingsList{..}+          = go _slSyncToken _slPageToken _slMaxResults+              (Just AltJSON)+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy SettingsListResource)+                      mempty
+ gen/Network/Google/Resource/Calendar/Settings/Watch.hs view
@@ -0,0 +1,130 @@+{-# 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.Calendar.Settings.Watch+-- Copyright   : (c) 2015 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)+--+-- Watch for changes to Settings resources.+--+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.settings.watch@.+module Network.Google.Resource.Calendar.Settings.Watch+    (+    -- * REST Resource+      SettingsWatchResource++    -- * Creating a Request+    , settingsWatch+    , SettingsWatch++    -- * Request Lenses+    , swSyncToken+    , swPayload+    , swPageToken+    , swMaxResults+    ) where++import           Network.Google.AppsCalendar.Types+import           Network.Google.Prelude++-- | A resource alias for @calendar.settings.watch@ method which the+-- 'SettingsWatch' request conforms to.+type SettingsWatchResource =+     "calendar" :>+       "v3" :>+         "users" :>+           "me" :>+             "settings" :>+               "watch" :>+                 QueryParam "syncToken" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Int32) :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] Channel :> Post '[JSON] Channel++-- | Watch for changes to Settings resources.+--+-- /See:/ 'settingsWatch' smart constructor.+data SettingsWatch = SettingsWatch+    { _swSyncToken  :: !(Maybe Text)+    , _swPayload    :: !Channel+    , _swPageToken  :: !(Maybe Text)+    , _swMaxResults :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SettingsWatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'swSyncToken'+--+-- * 'swPayload'+--+-- * 'swPageToken'+--+-- * 'swMaxResults'+settingsWatch+    :: Channel -- ^ 'swPayload'+    -> SettingsWatch+settingsWatch pSwPayload_ =+    SettingsWatch+    { _swSyncToken = Nothing+    , _swPayload = pSwPayload_+    , _swPageToken = Nothing+    , _swMaxResults = Nothing+    }++-- | Token obtained from the nextSyncToken field returned on the last page of+-- results from the previous list request. It makes the result of this list+-- request contain only entries that have changed since then. If the+-- syncToken expires, the server will respond with a 410 GONE response code+-- and the client should clear its storage and perform a full+-- synchronization without any syncToken. Learn more about incremental+-- synchronization. Optional. The default is to return all entries.+swSyncToken :: Lens' SettingsWatch (Maybe Text)+swSyncToken+  = lens _swSyncToken (\ s a -> s{_swSyncToken = a})++-- | Multipart request metadata.+swPayload :: Lens' SettingsWatch Channel+swPayload+  = lens _swPayload (\ s a -> s{_swPayload = a})++-- | Token specifying which result page to return. Optional.+swPageToken :: Lens' SettingsWatch (Maybe Text)+swPageToken+  = lens _swPageToken (\ s a -> s{_swPageToken = a})++-- | Maximum number of entries returned on one result page. By default the+-- value is 100 entries. The page size can never be larger than 250+-- entries. Optional.+swMaxResults :: Lens' SettingsWatch (Maybe Int32)+swMaxResults+  = lens _swMaxResults (\ s a -> s{_swMaxResults = a})+      . mapping _Coerce++instance GoogleRequest SettingsWatch where+        type Rs SettingsWatch = Channel+        requestClient SettingsWatch{..}+          = go _swSyncToken _swPageToken _swMaxResults+              (Just AltJSON)+              _swPayload+              appsCalendarService+          where go+                  = buildClient (Proxy :: Proxy SettingsWatchResource)+                      mempty
+ gogol-apps-calendar.cabal view
@@ -0,0 +1,82 @@+name:                  gogol-apps-calendar+version:               0.0.1+synopsis:              Google Calendar 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 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md++description:+    Lets you manipulate events and other calendar data.+    .+    /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 @v3@+    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.AppsCalendar+        , Network.Google.AppsCalendar.Types+        , Network.Google.Resource.Calendar.ACL.Delete+        , Network.Google.Resource.Calendar.ACL.Get+        , Network.Google.Resource.Calendar.ACL.Insert+        , Network.Google.Resource.Calendar.ACL.List+        , Network.Google.Resource.Calendar.ACL.Patch+        , Network.Google.Resource.Calendar.ACL.Update+        , Network.Google.Resource.Calendar.ACL.Watch+        , Network.Google.Resource.Calendar.CalendarList.Delete+        , Network.Google.Resource.Calendar.CalendarList.Get+        , Network.Google.Resource.Calendar.CalendarList.Insert+        , Network.Google.Resource.Calendar.CalendarList.List+        , Network.Google.Resource.Calendar.CalendarList.Patch+        , Network.Google.Resource.Calendar.CalendarList.Update+        , Network.Google.Resource.Calendar.CalendarList.Watch+        , Network.Google.Resource.Calendar.Calendars.Clear+        , Network.Google.Resource.Calendar.Calendars.Delete+        , Network.Google.Resource.Calendar.Calendars.Get+        , Network.Google.Resource.Calendar.Calendars.Insert+        , Network.Google.Resource.Calendar.Calendars.Patch+        , Network.Google.Resource.Calendar.Calendars.Update+        , Network.Google.Resource.Calendar.Channels.Stop+        , Network.Google.Resource.Calendar.Colors.Get+        , Network.Google.Resource.Calendar.Events.Delete+        , Network.Google.Resource.Calendar.Events.Get+        , Network.Google.Resource.Calendar.Events.Import+        , Network.Google.Resource.Calendar.Events.Insert+        , Network.Google.Resource.Calendar.Events.Instances+        , Network.Google.Resource.Calendar.Events.List+        , Network.Google.Resource.Calendar.Events.Move+        , Network.Google.Resource.Calendar.Events.Patch+        , Network.Google.Resource.Calendar.Events.QuickAdd+        , Network.Google.Resource.Calendar.Events.Update+        , Network.Google.Resource.Calendar.Events.Watch+        , Network.Google.Resource.Calendar.FreeBusy.Query+        , Network.Google.Resource.Calendar.Settings.Get+        , Network.Google.Resource.Calendar.Settings.List+        , Network.Google.Resource.Calendar.Settings.Watch++    other-modules:+          Network.Google.AppsCalendar.Types.Product+        , Network.Google.AppsCalendar.Types.Sum++    build-depends:+          gogol-core == 0.0.1.*+        , base       >= 4.7 && < 5