gogol-discovery (empty) → 0.0.1
raw patch · 10 files changed
+3236/−0 lines, 10 filesdep +basedep +gogol-coresetup-changed
Dependencies added: base, gogol-core
Files
- LICENSE +367/−0
- README.md +28/−0
- Setup.hs +2/−0
- gen/Network/Google/Discovery.hs +280/−0
- gen/Network/Google/Discovery/Types.hs +260/−0
- gen/Network/Google/Discovery/Types/Product.hs +2044/−0
- gen/Network/Google/Discovery/Types/Sum.hs +19/−0
- gen/Network/Google/Resource/Discovery/APIs/GetRest.hs +96/−0
- gen/Network/Google/Resource/Discovery/APIs/List.hs +92/−0
- gogol-discovery.cabal +48/−0
+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+ means each individual or legal entity that creates, contributes to+ the creation of, or owns Covered Software.++1.2. "Contributor Version"+ means the combination of the Contributions of others (if any) used+ by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+ means Covered Software of a particular Contributor.++1.4. "Covered Software"+ means Source Code Form to which the initial Contributor has attached+ the notice in Exhibit A, the Executable Form of such Source Code+ Form, and Modifications of such Source Code Form, in each case+ including portions thereof.++1.5. "Incompatible With Secondary Licenses"+ means++ (a) that the initial Contributor has attached the notice described+ in Exhibit B to the Covered Software; or++ (b) that the Covered Software was made available under the terms of+ version 1.1 or earlier of the License, but not also under the+ terms of a Secondary License.++1.6. "Executable Form"+ means any form of the work other than Source Code Form.++1.7. "Larger Work"+ means a work that combines Covered Software with other material, in+ a separate file or files, that is not Covered Software.++1.8. "License"+ means this document.++1.9. "Licensable"+ means having the right to grant, to the maximum extent possible,+ whether at the time of the initial grant or subsequently, any and+ all of the rights conveyed by this License.++1.10. "Modifications"+ means any of the following:++ (a) any file in Source Code Form that results from an addition to,+ deletion from, or modification of the contents of Covered+ Software; or++ (b) any new file in Source Code Form that contains any Covered+ Software.++1.11. "Patent Claims" of a Contributor+ means any patent claim(s), including without limitation, method,+ process, and apparatus claims, in any patent Licensable by such+ Contributor that would be infringed, but for the grant of the+ License, by the making, using, selling, offering for sale, having+ made, import, or transfer of either its Contributions or its+ Contributor Version.++1.12. "Secondary License"+ means either the GNU General Public License, Version 2.0, the GNU+ Lesser General Public License, Version 2.1, the GNU Affero General+ Public License, Version 3.0, or any later versions of those+ licenses.++1.13. "Source Code Form"+ means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+ means an individual or a legal entity exercising rights under this+ License. For legal entities, "You" includes any entity that+ controls, is controlled by, or is under common control with You. For+ purposes of this definition, "control" means (a) the power, direct+ or indirect, to cause the direction or management of such entity,+ whether by contract or otherwise, or (b) ownership of more than+ fifty percent (50%) of the outstanding shares or beneficial+ ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+ Licensable by such Contributor to use, reproduce, make available,+ modify, display, perform, distribute, and otherwise exploit its+ Contributions, either on an unmodified basis, with Modifications, or+ as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+ for sale, have made, import, and otherwise transfer either its+ Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+ or++(b) for infringements caused by: (i) Your and any other third party's+ modifications of Covered Software, or (ii) the combination of its+ Contributions with other software (except as part of its Contributor+ Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+ its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+ Form, as described in Section 3.1, and You must inform recipients of+ the Executable Form how they can obtain a copy of such Source Code+ Form by reasonable means in a timely manner, at a charge no more+ than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+ License, or sublicense it under different terms, provided that the+ license for the Executable Form does not attempt to limit or alter+ the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+* *+* 6. Disclaimer of Warranty *+* ------------------------- *+* *+* Covered Software is provided under this License on an "as is" *+* basis, without warranty of any kind, either expressed, implied, or *+* statutory, including, without limitation, warranties that the *+* Covered Software is free of defects, merchantable, fit for a *+* particular purpose or non-infringing. The entire risk as to the *+* quality and performance of the Covered Software is with You. *+* Should any Covered Software prove defective in any respect, You *+* (not any Contributor) assume the cost of any necessary servicing, *+* repair, or correction. This disclaimer of warranty constitutes an *+* essential part of this License. No use of any Covered Software is *+* authorized under this License except under this disclaimer. *+* *+************************************************************************++************************************************************************+* *+* 7. Limitation of Liability *+* -------------------------- *+* *+* Under no circumstances and under no legal theory, whether tort *+* (including negligence), contract, or otherwise, shall any *+* Contributor, or anyone who distributes Covered Software as *+* permitted above, be liable to You for any direct, indirect, *+* special, incidental, or consequential damages of any character *+* including, without limitation, damages for lost profits, loss of *+* goodwill, work stoppage, computer failure or malfunction, or any *+* and all other commercial damages or losses, even if such party *+* shall have been informed of the possibility of such damages. This *+* limitation of liability shall not apply to liability for death or *+* personal injury resulting from such party's negligence to the *+* extent applicable law prohibits such limitation. Some *+* jurisdictions do not allow the exclusion or limitation of *+* incidental or consequential damages, so this exclusion and *+* limitation may not apply to You. *+* *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++ This Source Code Form is subject to the terms of the Mozilla Public+ License, v. 2.0. If a copy of the MPL was not distributed with this+ file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-discovery++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.0.1`+++## Description++A client library for the Google APIs Discovery Service.+++## 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-discovery` 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/Discovery.hs view
@@ -0,0 +1,280 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module : Network.Google.Discovery+-- 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 discover information about other Google APIs, such as what APIs+-- are available, the resource and method details for each API.+--+-- /See:/ <https://developers.google.com/discovery/ APIs Discovery Service Reference>+module Network.Google.Discovery+ (+ -- * Service Configuration+ discoveryService++ -- * API Declaration+ , DiscoveryAPI++ -- * Resources++ -- ** discovery.apis.getRest+ , module Network.Google.Resource.Discovery.APIs.GetRest++ -- ** discovery.apis.list+ , module Network.Google.Resource.Discovery.APIs.List++ -- * Types++ -- ** RestMethodResponse+ , RestMethodResponse+ , restMethodResponse+ , rmrRef++ -- ** RestDescriptionParameters+ , RestDescriptionParameters+ , restDescriptionParameters+ , rdpAddtional++ -- ** RestMethod+ , RestMethod+ , restMethod+ , rmSupportsMediaDownload+ , rmParameterOrder+ , rmMediaUpload+ , rmHTTPMethod+ , rmPath+ , rmResponse+ , rmSupportsMediaUpload+ , rmScopes+ , rmSupportsSubscription+ , rmParameters+ , rmId+ , rmEtagRequired+ , rmUseMediaDownloadService+ , rmDescription+ , rmRequest++ -- ** RestResource+ , RestResource+ , restResource+ , rrResources+ , rrMethods++ -- ** RestDescriptionAuthOAuth2Scopes+ , RestDescriptionAuthOAuth2Scopes+ , restDescriptionAuthOAuth2Scopes+ , rdaoasAddtional++ -- ** RestDescriptionMethods+ , RestDescriptionMethods+ , restDescriptionMethods+ , rdmAddtional++ -- ** DirectoryListItemsItem+ , DirectoryListItemsItem+ , directoryListItemsItem+ , dliiDiscoveryLink+ , dliiPreferred+ , dliiKind+ , dliiIcons+ , dliiName+ , dliiVersion+ , dliiDocumentationLink+ , dliiId+ , dliiLabels+ , dliiTitle+ , dliiDescription+ , dliiDiscoveryRestURL++ -- ** DirectoryListItemsItemIcons+ , DirectoryListItemsItemIcons+ , directoryListItemsItemIcons+ , dliiiX16+ , dliiiX32++ -- ** RestResourceResources+ , RestResourceResources+ , restResourceResources+ , rrrAddtional++ -- ** RestDescriptionAuthOAuth2+ , RestDescriptionAuthOAuth2+ , restDescriptionAuthOAuth2+ , rdaoaScopes++ -- ** RestDescriptionAuthOAuth2ScopesAdditional+ , RestDescriptionAuthOAuth2ScopesAdditional+ , restDescriptionAuthOAuth2ScopesAdditional+ , rdaoasaDescription++ -- ** RestMethodMediaUploadProtocolsSimple+ , RestMethodMediaUploadProtocolsSimple+ , restMethodMediaUploadProtocolsSimple+ , rmmupsPath+ , rmmupsMultiPart++ -- ** RestDescriptionIcons+ , RestDescriptionIcons+ , restDescriptionIcons+ , rdiX16+ , rdiX32++ -- ** JSONSchemaVariant+ , JSONSchemaVariant+ , jsonSchemaVariant+ , jsvDiscriminant+ , jsvMap++ -- ** RestResourceMethods+ , RestResourceMethods+ , restResourceMethods+ , rrmAddtional++ -- ** RestDescriptionAuth+ , RestDescriptionAuth+ , restDescriptionAuth+ , rdaOAuth2++ -- ** RestDescription+ , RestDescription+ , restDescription+ , rdEtag+ , rdSchemas+ , rdServicePath+ , rdBasePath+ , rdKind+ , rdExponentialBackoffDefault+ , rdAuth+ , rdIcons+ , rdBaseURL+ , rdProtocol+ , rdOwnerName+ , rdResources+ , rdOwnerDomain+ , rdBatchPath+ , rdMethods+ , rdName+ , rdPackagePath+ , rdFeatures+ , rdVersion+ , rdParameters+ , rdDocumentationLink+ , rdRootURL+ , rdId+ , rdCanonicalName+ , rdLabels+ , rdDiscoveryVersion+ , rdTitle+ , rdRevision+ , rdDescription++ -- ** JSONSchema+ , JSONSchema+ , jsonSchema+ , jsAnnotations+ , jsVariant+ , jsLocation+ , jsRef+ , jsPattern+ , jsMaximum+ , jsDefault+ , jsFormat+ , jsItems+ , jsMinimum+ , jsRequired+ , jsId+ , jsAdditionalProperties+ , jsType+ , jsEnum+ , jsRepeated+ , jsReadOnly+ , jsEnumDescriptions+ , jsDescription+ , jsProperties++ -- ** RestDescriptionSchemas+ , RestDescriptionSchemas+ , restDescriptionSchemas+ , rdsAddtional++ -- ** JSONSchemaVariantMapItem+ , JSONSchemaVariantMapItem+ , jsonSchemaVariantMapItem+ , jsvmiRef+ , jsvmiTypeValue++ -- ** RestDescriptionResources+ , RestDescriptionResources+ , restDescriptionResources+ , rdrAddtional++ -- ** RestMethodMediaUploadProtocols+ , RestMethodMediaUploadProtocols+ , restMethodMediaUploadProtocols+ , rmmupSimple+ , rmmupResumable++ -- ** JSONSchemaAnnotations+ , JSONSchemaAnnotations+ , jsonSchemaAnnotations+ , jsaRequired++ -- ** RestMethodParameters+ , RestMethodParameters+ , restMethodParameters+ , rmpAddtional++ -- ** RestMethodMediaUpload+ , RestMethodMediaUpload+ , restMethodMediaUpload+ , rmmuProtocols+ , rmmuAccept+ , rmmuMaxSize++ -- ** JSONSchemaProperties+ , JSONSchemaProperties+ , jsonSchemaProperties+ , jspAddtional++ -- ** RestMethodMediaUploadProtocolsResumable+ , RestMethodMediaUploadProtocolsResumable+ , restMethodMediaUploadProtocolsResumable+ , rmmuprPath+ , rmmuprMultiPart++ -- ** DirectoryList+ , DirectoryList+ , directoryList+ , dlKind+ , dlItems+ , dlDiscoveryVersion++ -- ** RestMethodRequest+ , RestMethodRequest+ , restMethodRequest+ , rRef+ , rParameterName+ ) where++import Network.Google.Discovery.Types+import Network.Google.Prelude+import Network.Google.Resource.Discovery.APIs.GetRest+import Network.Google.Resource.Discovery.APIs.List++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the APIs Discovery Service service.+type DiscoveryAPI =+ APIsListResource :<|> APIsGetRestResource
+ gen/Network/Google/Discovery/Types.hs view
@@ -0,0 +1,260 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Discovery.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.Discovery.Types+ (+ -- * Service Configuration+ discoveryService++ -- * RestMethodResponse+ , RestMethodResponse+ , restMethodResponse+ , rmrRef++ -- * RestDescriptionParameters+ , RestDescriptionParameters+ , restDescriptionParameters+ , rdpAddtional++ -- * RestMethod+ , RestMethod+ , restMethod+ , rmSupportsMediaDownload+ , rmParameterOrder+ , rmMediaUpload+ , rmHTTPMethod+ , rmPath+ , rmResponse+ , rmSupportsMediaUpload+ , rmScopes+ , rmSupportsSubscription+ , rmParameters+ , rmId+ , rmEtagRequired+ , rmUseMediaDownloadService+ , rmDescription+ , rmRequest++ -- * RestResource+ , RestResource+ , restResource+ , rrResources+ , rrMethods++ -- * RestDescriptionAuthOAuth2Scopes+ , RestDescriptionAuthOAuth2Scopes+ , restDescriptionAuthOAuth2Scopes+ , rdaoasAddtional++ -- * RestDescriptionMethods+ , RestDescriptionMethods+ , restDescriptionMethods+ , rdmAddtional++ -- * DirectoryListItemsItem+ , DirectoryListItemsItem+ , directoryListItemsItem+ , dliiDiscoveryLink+ , dliiPreferred+ , dliiKind+ , dliiIcons+ , dliiName+ , dliiVersion+ , dliiDocumentationLink+ , dliiId+ , dliiLabels+ , dliiTitle+ , dliiDescription+ , dliiDiscoveryRestURL++ -- * DirectoryListItemsItemIcons+ , DirectoryListItemsItemIcons+ , directoryListItemsItemIcons+ , dliiiX16+ , dliiiX32++ -- * RestResourceResources+ , RestResourceResources+ , restResourceResources+ , rrrAddtional++ -- * RestDescriptionAuthOAuth2+ , RestDescriptionAuthOAuth2+ , restDescriptionAuthOAuth2+ , rdaoaScopes++ -- * RestDescriptionAuthOAuth2ScopesAdditional+ , RestDescriptionAuthOAuth2ScopesAdditional+ , restDescriptionAuthOAuth2ScopesAdditional+ , rdaoasaDescription++ -- * RestMethodMediaUploadProtocolsSimple+ , RestMethodMediaUploadProtocolsSimple+ , restMethodMediaUploadProtocolsSimple+ , rmmupsPath+ , rmmupsMultiPart++ -- * RestDescriptionIcons+ , RestDescriptionIcons+ , restDescriptionIcons+ , rdiX16+ , rdiX32++ -- * JSONSchemaVariant+ , JSONSchemaVariant+ , jsonSchemaVariant+ , jsvDiscriminant+ , jsvMap++ -- * RestResourceMethods+ , RestResourceMethods+ , restResourceMethods+ , rrmAddtional++ -- * RestDescriptionAuth+ , RestDescriptionAuth+ , restDescriptionAuth+ , rdaOAuth2++ -- * RestDescription+ , RestDescription+ , restDescription+ , rdEtag+ , rdSchemas+ , rdServicePath+ , rdBasePath+ , rdKind+ , rdExponentialBackoffDefault+ , rdAuth+ , rdIcons+ , rdBaseURL+ , rdProtocol+ , rdOwnerName+ , rdResources+ , rdOwnerDomain+ , rdBatchPath+ , rdMethods+ , rdName+ , rdPackagePath+ , rdFeatures+ , rdVersion+ , rdParameters+ , rdDocumentationLink+ , rdRootURL+ , rdId+ , rdCanonicalName+ , rdLabels+ , rdDiscoveryVersion+ , rdTitle+ , rdRevision+ , rdDescription++ -- * JSONSchema+ , JSONSchema+ , jsonSchema+ , jsAnnotations+ , jsVariant+ , jsLocation+ , jsRef+ , jsPattern+ , jsMaximum+ , jsDefault+ , jsFormat+ , jsItems+ , jsMinimum+ , jsRequired+ , jsId+ , jsAdditionalProperties+ , jsType+ , jsEnum+ , jsRepeated+ , jsReadOnly+ , jsEnumDescriptions+ , jsDescription+ , jsProperties++ -- * RestDescriptionSchemas+ , RestDescriptionSchemas+ , restDescriptionSchemas+ , rdsAddtional++ -- * JSONSchemaVariantMapItem+ , JSONSchemaVariantMapItem+ , jsonSchemaVariantMapItem+ , jsvmiRef+ , jsvmiTypeValue++ -- * RestDescriptionResources+ , RestDescriptionResources+ , restDescriptionResources+ , rdrAddtional++ -- * RestMethodMediaUploadProtocols+ , RestMethodMediaUploadProtocols+ , restMethodMediaUploadProtocols+ , rmmupSimple+ , rmmupResumable++ -- * JSONSchemaAnnotations+ , JSONSchemaAnnotations+ , jsonSchemaAnnotations+ , jsaRequired++ -- * RestMethodParameters+ , RestMethodParameters+ , restMethodParameters+ , rmpAddtional++ -- * RestMethodMediaUpload+ , RestMethodMediaUpload+ , restMethodMediaUpload+ , rmmuProtocols+ , rmmuAccept+ , rmmuMaxSize++ -- * JSONSchemaProperties+ , JSONSchemaProperties+ , jsonSchemaProperties+ , jspAddtional++ -- * RestMethodMediaUploadProtocolsResumable+ , RestMethodMediaUploadProtocolsResumable+ , restMethodMediaUploadProtocolsResumable+ , rmmuprPath+ , rmmuprMultiPart++ -- * DirectoryList+ , DirectoryList+ , directoryList+ , dlKind+ , dlItems+ , dlDiscoveryVersion++ -- * RestMethodRequest+ , RestMethodRequest+ , restMethodRequest+ , rRef+ , rParameterName+ ) where++import Network.Google.Discovery.Types.Product+import Network.Google.Discovery.Types.Sum+import Network.Google.Prelude++-- | Default request referring to version 'v1' of the APIs Discovery Service. This contains the host and root path used as a starting point for constructing service requests.+discoveryService :: Service+discoveryService+ = defaultService (ServiceId "discovery:v1")+ "www.googleapis.com"
+ gen/Network/Google/Discovery/Types/Product.hs view
@@ -0,0 +1,2044 @@+{-# 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.Discovery.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.Discovery.Types.Product where++import Network.Google.Discovery.Types.Sum+import Network.Google.Prelude++-- | The schema for the response.+--+-- /See:/ 'restMethodResponse' smart constructor.+newtype RestMethodResponse = RestMethodResponse+ { _rmrRef :: Maybe Text+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestMethodResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rmrRef'+restMethodResponse+ :: RestMethodResponse+restMethodResponse =+ RestMethodResponse+ { _rmrRef = Nothing+ }++-- | Schema ID for the response schema.+rmrRef :: Lens' RestMethodResponse (Maybe Text)+rmrRef = lens _rmrRef (\ s a -> s{_rmrRef = a})++instance FromJSON RestMethodResponse where+ parseJSON+ = withObject "RestMethodResponse"+ (\ o -> RestMethodResponse <$> (o .:? "$ref"))++instance ToJSON RestMethodResponse where+ toJSON RestMethodResponse{..}+ = object (catMaybes [("$ref" .=) <$> _rmrRef])++-- | Common parameters that apply across all apis.+--+-- /See:/ 'restDescriptionParameters' smart constructor.+newtype RestDescriptionParameters = RestDescriptionParameters+ { _rdpAddtional :: HashMap Text JSONSchema+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestDescriptionParameters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdpAddtional'+restDescriptionParameters+ :: HashMap Text JSONSchema -- ^ 'rdpAddtional'+ -> RestDescriptionParameters+restDescriptionParameters pRdpAddtional_ =+ RestDescriptionParameters+ { _rdpAddtional = _Coerce # pRdpAddtional_+ }++-- | Description of a single parameter.+rdpAddtional :: Lens' RestDescriptionParameters (HashMap Text JSONSchema)+rdpAddtional+ = lens _rdpAddtional (\ s a -> s{_rdpAddtional = a})+ . _Coerce++instance FromJSON RestDescriptionParameters where+ parseJSON+ = withObject "RestDescriptionParameters"+ (\ o ->+ RestDescriptionParameters <$> (parseJSONObject o))++instance ToJSON RestDescriptionParameters where+ toJSON = toJSON . _rdpAddtional++--+-- /See:/ 'restMethod' smart constructor.+data RestMethod = RestMethod+ { _rmSupportsMediaDownload :: !(Maybe Bool)+ , _rmParameterOrder :: !(Maybe [Text])+ , _rmMediaUpload :: !(Maybe RestMethodMediaUpload)+ , _rmHTTPMethod :: !(Maybe Text)+ , _rmPath :: !(Maybe Text)+ , _rmResponse :: !(Maybe RestMethodResponse)+ , _rmSupportsMediaUpload :: !(Maybe Bool)+ , _rmScopes :: !(Maybe [Text])+ , _rmSupportsSubscription :: !(Maybe Bool)+ , _rmParameters :: !(Maybe RestMethodParameters)+ , _rmId :: !(Maybe Text)+ , _rmEtagRequired :: !(Maybe Bool)+ , _rmUseMediaDownloadService :: !(Maybe Bool)+ , _rmDescription :: !(Maybe Text)+ , _rmRequest :: !(Maybe RestMethodRequest)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestMethod' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rmSupportsMediaDownload'+--+-- * 'rmParameterOrder'+--+-- * 'rmMediaUpload'+--+-- * 'rmHTTPMethod'+--+-- * 'rmPath'+--+-- * 'rmResponse'+--+-- * 'rmSupportsMediaUpload'+--+-- * 'rmScopes'+--+-- * 'rmSupportsSubscription'+--+-- * 'rmParameters'+--+-- * 'rmId'+--+-- * 'rmEtagRequired'+--+-- * 'rmUseMediaDownloadService'+--+-- * 'rmDescription'+--+-- * 'rmRequest'+restMethod+ :: RestMethod+restMethod =+ RestMethod+ { _rmSupportsMediaDownload = Nothing+ , _rmParameterOrder = Nothing+ , _rmMediaUpload = Nothing+ , _rmHTTPMethod = Nothing+ , _rmPath = Nothing+ , _rmResponse = Nothing+ , _rmSupportsMediaUpload = Nothing+ , _rmScopes = Nothing+ , _rmSupportsSubscription = Nothing+ , _rmParameters = Nothing+ , _rmId = Nothing+ , _rmEtagRequired = Nothing+ , _rmUseMediaDownloadService = Nothing+ , _rmDescription = Nothing+ , _rmRequest = Nothing+ }++-- | Whether this method supports media downloads.+rmSupportsMediaDownload :: Lens' RestMethod (Maybe Bool)+rmSupportsMediaDownload+ = lens _rmSupportsMediaDownload+ (\ s a -> s{_rmSupportsMediaDownload = a})++-- | Ordered list of required parameters, serves as a hint to clients on how+-- to structure their method signatures. The array is ordered such that the+-- \"most-significant\" parameter appears first.+rmParameterOrder :: Lens' RestMethod [Text]+rmParameterOrder+ = lens _rmParameterOrder+ (\ s a -> s{_rmParameterOrder = a})+ . _Default+ . _Coerce++-- | Media upload parameters.+rmMediaUpload :: Lens' RestMethod (Maybe RestMethodMediaUpload)+rmMediaUpload+ = lens _rmMediaUpload+ (\ s a -> s{_rmMediaUpload = a})++-- | HTTP method used by this method.+rmHTTPMethod :: Lens' RestMethod (Maybe Text)+rmHTTPMethod+ = lens _rmHTTPMethod (\ s a -> s{_rmHTTPMethod = a})++-- | The URI path of this REST method. Should be used in conjunction with the+-- basePath property at the api-level.+rmPath :: Lens' RestMethod (Maybe Text)+rmPath = lens _rmPath (\ s a -> s{_rmPath = a})++-- | The schema for the response.+rmResponse :: Lens' RestMethod (Maybe RestMethodResponse)+rmResponse+ = lens _rmResponse (\ s a -> s{_rmResponse = a})++-- | Whether this method supports media uploads.+rmSupportsMediaUpload :: Lens' RestMethod (Maybe Bool)+rmSupportsMediaUpload+ = lens _rmSupportsMediaUpload+ (\ s a -> s{_rmSupportsMediaUpload = a})++-- | OAuth 2.0 scopes applicable to this method.+rmScopes :: Lens' RestMethod [Text]+rmScopes+ = lens _rmScopes (\ s a -> s{_rmScopes = a}) .+ _Default+ . _Coerce++-- | Whether this method supports subscriptions.+rmSupportsSubscription :: Lens' RestMethod (Maybe Bool)+rmSupportsSubscription+ = lens _rmSupportsSubscription+ (\ s a -> s{_rmSupportsSubscription = a})++-- | Details for all parameters in this method.+rmParameters :: Lens' RestMethod (Maybe RestMethodParameters)+rmParameters+ = lens _rmParameters (\ s a -> s{_rmParameters = a})++-- | A unique ID for this method. This property can be used to match methods+-- between different versions of Discovery.+rmId :: Lens' RestMethod (Maybe Text)+rmId = lens _rmId (\ s a -> s{_rmId = a})++-- | Whether this method requires an ETag to be specified. The ETag is sent+-- as an HTTP If-Match or If-None-Match header.+rmEtagRequired :: Lens' RestMethod (Maybe Bool)+rmEtagRequired+ = lens _rmEtagRequired+ (\ s a -> s{_rmEtagRequired = a})++-- | Indicates that downloads from this method should use the download+-- service URL (i.e. \"\/download\"). Only applies if the method supports+-- media download.+rmUseMediaDownloadService :: Lens' RestMethod (Maybe Bool)+rmUseMediaDownloadService+ = lens _rmUseMediaDownloadService+ (\ s a -> s{_rmUseMediaDownloadService = a})++-- | Description of this method.+rmDescription :: Lens' RestMethod (Maybe Text)+rmDescription+ = lens _rmDescription+ (\ s a -> s{_rmDescription = a})++-- | The schema for the request.+rmRequest :: Lens' RestMethod (Maybe RestMethodRequest)+rmRequest+ = lens _rmRequest (\ s a -> s{_rmRequest = a})++instance FromJSON RestMethod where+ parseJSON+ = withObject "RestMethod"+ (\ o ->+ RestMethod <$>+ (o .:? "supportsMediaDownload") <*>+ (o .:? "parameterOrder" .!= mempty)+ <*> (o .:? "mediaUpload")+ <*> (o .:? "httpMethod")+ <*> (o .:? "path")+ <*> (o .:? "response")+ <*> (o .:? "supportsMediaUpload")+ <*> (o .:? "scopes" .!= mempty)+ <*> (o .:? "supportsSubscription")+ <*> (o .:? "parameters")+ <*> (o .:? "id")+ <*> (o .:? "etagRequired")+ <*> (o .:? "useMediaDownloadService")+ <*> (o .:? "description")+ <*> (o .:? "request"))++instance ToJSON RestMethod where+ toJSON RestMethod{..}+ = object+ (catMaybes+ [("supportsMediaDownload" .=) <$>+ _rmSupportsMediaDownload,+ ("parameterOrder" .=) <$> _rmParameterOrder,+ ("mediaUpload" .=) <$> _rmMediaUpload,+ ("httpMethod" .=) <$> _rmHTTPMethod,+ ("path" .=) <$> _rmPath,+ ("response" .=) <$> _rmResponse,+ ("supportsMediaUpload" .=) <$>+ _rmSupportsMediaUpload,+ ("scopes" .=) <$> _rmScopes,+ ("supportsSubscription" .=) <$>+ _rmSupportsSubscription,+ ("parameters" .=) <$> _rmParameters,+ ("id" .=) <$> _rmId,+ ("etagRequired" .=) <$> _rmEtagRequired,+ ("useMediaDownloadService" .=) <$>+ _rmUseMediaDownloadService,+ ("description" .=) <$> _rmDescription,+ ("request" .=) <$> _rmRequest])++--+-- /See:/ 'restResource' smart constructor.+data RestResource = RestResource+ { _rrResources :: !(Maybe RestResourceResources)+ , _rrMethods :: !(Maybe RestResourceMethods)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestResource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrResources'+--+-- * 'rrMethods'+restResource+ :: RestResource+restResource =+ RestResource+ { _rrResources = Nothing+ , _rrMethods = Nothing+ }++-- | Sub-resources on this resource.+rrResources :: Lens' RestResource (Maybe RestResourceResources)+rrResources+ = lens _rrResources (\ s a -> s{_rrResources = a})++-- | Methods on this resource.+rrMethods :: Lens' RestResource (Maybe RestResourceMethods)+rrMethods+ = lens _rrMethods (\ s a -> s{_rrMethods = a})++instance FromJSON RestResource where+ parseJSON+ = withObject "RestResource"+ (\ o ->+ RestResource <$>+ (o .:? "resources") <*> (o .:? "methods"))++instance ToJSON RestResource where+ toJSON RestResource{..}+ = object+ (catMaybes+ [("resources" .=) <$> _rrResources,+ ("methods" .=) <$> _rrMethods])++-- | Available OAuth 2.0 scopes.+--+-- /See:/ 'restDescriptionAuthOAuth2Scopes' smart constructor.+newtype RestDescriptionAuthOAuth2Scopes = RestDescriptionAuthOAuth2Scopes+ { _rdaoasAddtional :: HashMap Text RestDescriptionAuthOAuth2ScopesAdditional+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestDescriptionAuthOAuth2Scopes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdaoasAddtional'+restDescriptionAuthOAuth2Scopes+ :: HashMap Text RestDescriptionAuthOAuth2ScopesAdditional -- ^ 'rdaoasAddtional'+ -> RestDescriptionAuthOAuth2Scopes+restDescriptionAuthOAuth2Scopes pRdaoasAddtional_ =+ RestDescriptionAuthOAuth2Scopes+ { _rdaoasAddtional = _Coerce # pRdaoasAddtional_+ }++-- | The scope value.+rdaoasAddtional :: Lens' RestDescriptionAuthOAuth2Scopes (HashMap Text RestDescriptionAuthOAuth2ScopesAdditional)+rdaoasAddtional+ = lens _rdaoasAddtional+ (\ s a -> s{_rdaoasAddtional = a})+ . _Coerce++instance FromJSON RestDescriptionAuthOAuth2Scopes+ where+ parseJSON+ = withObject "RestDescriptionAuthOAuth2Scopes"+ (\ o ->+ RestDescriptionAuthOAuth2Scopes <$>+ (parseJSONObject o))++instance ToJSON RestDescriptionAuthOAuth2Scopes where+ toJSON = toJSON . _rdaoasAddtional++-- | API-level methods for this API.+--+-- /See:/ 'restDescriptionMethods' smart constructor.+newtype RestDescriptionMethods = RestDescriptionMethods+ { _rdmAddtional :: HashMap Text RestMethod+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestDescriptionMethods' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdmAddtional'+restDescriptionMethods+ :: HashMap Text RestMethod -- ^ 'rdmAddtional'+ -> RestDescriptionMethods+restDescriptionMethods pRdmAddtional_ =+ RestDescriptionMethods+ { _rdmAddtional = _Coerce # pRdmAddtional_+ }++-- | An individual method description.+rdmAddtional :: Lens' RestDescriptionMethods (HashMap Text RestMethod)+rdmAddtional+ = lens _rdmAddtional (\ s a -> s{_rdmAddtional = a})+ . _Coerce++instance FromJSON RestDescriptionMethods where+ parseJSON+ = withObject "RestDescriptionMethods"+ (\ o ->+ RestDescriptionMethods <$> (parseJSONObject o))++instance ToJSON RestDescriptionMethods where+ toJSON = toJSON . _rdmAddtional++--+-- /See:/ 'directoryListItemsItem' smart constructor.+data DirectoryListItemsItem = DirectoryListItemsItem+ { _dliiDiscoveryLink :: !(Maybe Text)+ , _dliiPreferred :: !(Maybe Bool)+ , _dliiKind :: !Text+ , _dliiIcons :: !(Maybe DirectoryListItemsItemIcons)+ , _dliiName :: !(Maybe Text)+ , _dliiVersion :: !(Maybe Text)+ , _dliiDocumentationLink :: !(Maybe Text)+ , _dliiId :: !(Maybe Text)+ , _dliiLabels :: !(Maybe [Text])+ , _dliiTitle :: !(Maybe Text)+ , _dliiDescription :: !(Maybe Text)+ , _dliiDiscoveryRestURL :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DirectoryListItemsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dliiDiscoveryLink'+--+-- * 'dliiPreferred'+--+-- * 'dliiKind'+--+-- * 'dliiIcons'+--+-- * 'dliiName'+--+-- * 'dliiVersion'+--+-- * 'dliiDocumentationLink'+--+-- * 'dliiId'+--+-- * 'dliiLabels'+--+-- * 'dliiTitle'+--+-- * 'dliiDescription'+--+-- * 'dliiDiscoveryRestURL'+directoryListItemsItem+ :: DirectoryListItemsItem+directoryListItemsItem =+ DirectoryListItemsItem+ { _dliiDiscoveryLink = Nothing+ , _dliiPreferred = Nothing+ , _dliiKind = "discovery#directoryItem"+ , _dliiIcons = Nothing+ , _dliiName = Nothing+ , _dliiVersion = Nothing+ , _dliiDocumentationLink = Nothing+ , _dliiId = Nothing+ , _dliiLabels = Nothing+ , _dliiTitle = Nothing+ , _dliiDescription = Nothing+ , _dliiDiscoveryRestURL = Nothing+ }++-- | A link to the discovery document.+dliiDiscoveryLink :: Lens' DirectoryListItemsItem (Maybe Text)+dliiDiscoveryLink+ = lens _dliiDiscoveryLink+ (\ s a -> s{_dliiDiscoveryLink = a})++-- | True if this version is the preferred version to use.+dliiPreferred :: Lens' DirectoryListItemsItem (Maybe Bool)+dliiPreferred+ = lens _dliiPreferred+ (\ s a -> s{_dliiPreferred = a})++-- | The kind for this response.+dliiKind :: Lens' DirectoryListItemsItem Text+dliiKind = lens _dliiKind (\ s a -> s{_dliiKind = a})++-- | Links to 16x16 and 32x32 icons representing the API.+dliiIcons :: Lens' DirectoryListItemsItem (Maybe DirectoryListItemsItemIcons)+dliiIcons+ = lens _dliiIcons (\ s a -> s{_dliiIcons = a})++-- | The name of the API.+dliiName :: Lens' DirectoryListItemsItem (Maybe Text)+dliiName = lens _dliiName (\ s a -> s{_dliiName = a})++-- | The version of the API.+dliiVersion :: Lens' DirectoryListItemsItem (Maybe Text)+dliiVersion+ = lens _dliiVersion (\ s a -> s{_dliiVersion = a})++-- | A link to human readable documentation for the API.+dliiDocumentationLink :: Lens' DirectoryListItemsItem (Maybe Text)+dliiDocumentationLink+ = lens _dliiDocumentationLink+ (\ s a -> s{_dliiDocumentationLink = a})++-- | The id of this API.+dliiId :: Lens' DirectoryListItemsItem (Maybe Text)+dliiId = lens _dliiId (\ s a -> s{_dliiId = a})++-- | Labels for the status of this API, such as labs or deprecated.+dliiLabels :: Lens' DirectoryListItemsItem [Text]+dliiLabels+ = lens _dliiLabels (\ s a -> s{_dliiLabels = a}) .+ _Default+ . _Coerce++-- | The title of this API.+dliiTitle :: Lens' DirectoryListItemsItem (Maybe Text)+dliiTitle+ = lens _dliiTitle (\ s a -> s{_dliiTitle = a})++-- | The description of this API.+dliiDescription :: Lens' DirectoryListItemsItem (Maybe Text)+dliiDescription+ = lens _dliiDescription+ (\ s a -> s{_dliiDescription = a})++-- | The URL for the discovery REST document.+dliiDiscoveryRestURL :: Lens' DirectoryListItemsItem (Maybe Text)+dliiDiscoveryRestURL+ = lens _dliiDiscoveryRestURL+ (\ s a -> s{_dliiDiscoveryRestURL = a})++instance FromJSON DirectoryListItemsItem where+ parseJSON+ = withObject "DirectoryListItemsItem"+ (\ o ->+ DirectoryListItemsItem <$>+ (o .:? "discoveryLink") <*> (o .:? "preferred") <*>+ (o .:? "kind" .!= "discovery#directoryItem")+ <*> (o .:? "icons")+ <*> (o .:? "name")+ <*> (o .:? "version")+ <*> (o .:? "documentationLink")+ <*> (o .:? "id")+ <*> (o .:? "labels" .!= mempty)+ <*> (o .:? "title")+ <*> (o .:? "description")+ <*> (o .:? "discoveryRestUrl"))++instance ToJSON DirectoryListItemsItem where+ toJSON DirectoryListItemsItem{..}+ = object+ (catMaybes+ [("discoveryLink" .=) <$> _dliiDiscoveryLink,+ ("preferred" .=) <$> _dliiPreferred,+ Just ("kind" .= _dliiKind),+ ("icons" .=) <$> _dliiIcons,+ ("name" .=) <$> _dliiName,+ ("version" .=) <$> _dliiVersion,+ ("documentationLink" .=) <$> _dliiDocumentationLink,+ ("id" .=) <$> _dliiId, ("labels" .=) <$> _dliiLabels,+ ("title" .=) <$> _dliiTitle,+ ("description" .=) <$> _dliiDescription,+ ("discoveryRestUrl" .=) <$> _dliiDiscoveryRestURL])++-- | Links to 16x16 and 32x32 icons representing the API.+--+-- /See:/ 'directoryListItemsItemIcons' smart constructor.+data DirectoryListItemsItemIcons = DirectoryListItemsItemIcons+ { _dliiiX16 :: !(Maybe Text)+ , _dliiiX32 :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DirectoryListItemsItemIcons' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dliiiX16'+--+-- * 'dliiiX32'+directoryListItemsItemIcons+ :: DirectoryListItemsItemIcons+directoryListItemsItemIcons =+ DirectoryListItemsItemIcons+ { _dliiiX16 = Nothing+ , _dliiiX32 = Nothing+ }++-- | The URL of the 16x16 icon.+dliiiX16 :: Lens' DirectoryListItemsItemIcons (Maybe Text)+dliiiX16 = lens _dliiiX16 (\ s a -> s{_dliiiX16 = a})++-- | The URL of the 32x32 icon.+dliiiX32 :: Lens' DirectoryListItemsItemIcons (Maybe Text)+dliiiX32 = lens _dliiiX32 (\ s a -> s{_dliiiX32 = a})++instance FromJSON DirectoryListItemsItemIcons where+ parseJSON+ = withObject "DirectoryListItemsItemIcons"+ (\ o ->+ DirectoryListItemsItemIcons <$>+ (o .:? "x16") <*> (o .:? "x32"))++instance ToJSON DirectoryListItemsItemIcons where+ toJSON DirectoryListItemsItemIcons{..}+ = object+ (catMaybes+ [("x16" .=) <$> _dliiiX16, ("x32" .=) <$> _dliiiX32])++-- | Sub-resources on this resource.+--+-- /See:/ 'restResourceResources' smart constructor.+newtype RestResourceResources = RestResourceResources+ { _rrrAddtional :: HashMap Text RestResource+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestResourceResources' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrrAddtional'+restResourceResources+ :: HashMap Text RestResource -- ^ 'rrrAddtional'+ -> RestResourceResources+restResourceResources pRrrAddtional_ =+ RestResourceResources+ { _rrrAddtional = _Coerce # pRrrAddtional_+ }++-- | Description for any sub-resources on this resource.+rrrAddtional :: Lens' RestResourceResources (HashMap Text RestResource)+rrrAddtional+ = lens _rrrAddtional (\ s a -> s{_rrrAddtional = a})+ . _Coerce++instance FromJSON RestResourceResources where+ parseJSON+ = withObject "RestResourceResources"+ (\ o ->+ RestResourceResources <$> (parseJSONObject o))++instance ToJSON RestResourceResources where+ toJSON = toJSON . _rrrAddtional++-- | OAuth 2.0 authentication information.+--+-- /See:/ 'restDescriptionAuthOAuth2' smart constructor.+newtype RestDescriptionAuthOAuth2 = RestDescriptionAuthOAuth2+ { _rdaoaScopes :: Maybe RestDescriptionAuthOAuth2Scopes+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestDescriptionAuthOAuth2' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdaoaScopes'+restDescriptionAuthOAuth2+ :: RestDescriptionAuthOAuth2+restDescriptionAuthOAuth2 =+ RestDescriptionAuthOAuth2+ { _rdaoaScopes = Nothing+ }++-- | Available OAuth 2.0 scopes.+rdaoaScopes :: Lens' RestDescriptionAuthOAuth2 (Maybe RestDescriptionAuthOAuth2Scopes)+rdaoaScopes+ = lens _rdaoaScopes (\ s a -> s{_rdaoaScopes = a})++instance FromJSON RestDescriptionAuthOAuth2 where+ parseJSON+ = withObject "RestDescriptionAuthOAuth2"+ (\ o ->+ RestDescriptionAuthOAuth2 <$> (o .:? "scopes"))++instance ToJSON RestDescriptionAuthOAuth2 where+ toJSON RestDescriptionAuthOAuth2{..}+ = object (catMaybes [("scopes" .=) <$> _rdaoaScopes])++-- | The scope value.+--+-- /See:/ 'restDescriptionAuthOAuth2ScopesAdditional' smart constructor.+newtype RestDescriptionAuthOAuth2ScopesAdditional = RestDescriptionAuthOAuth2ScopesAdditional+ { _rdaoasaDescription :: Maybe Text+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestDescriptionAuthOAuth2ScopesAdditional' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdaoasaDescription'+restDescriptionAuthOAuth2ScopesAdditional+ :: RestDescriptionAuthOAuth2ScopesAdditional+restDescriptionAuthOAuth2ScopesAdditional =+ RestDescriptionAuthOAuth2ScopesAdditional+ { _rdaoasaDescription = Nothing+ }++-- | Description of scope.+rdaoasaDescription :: Lens' RestDescriptionAuthOAuth2ScopesAdditional (Maybe Text)+rdaoasaDescription+ = lens _rdaoasaDescription+ (\ s a -> s{_rdaoasaDescription = a})++instance FromJSON+ RestDescriptionAuthOAuth2ScopesAdditional where+ parseJSON+ = withObject+ "RestDescriptionAuthOAuth2ScopesAdditional"+ (\ o ->+ RestDescriptionAuthOAuth2ScopesAdditional <$>+ (o .:? "description"))++instance ToJSON+ RestDescriptionAuthOAuth2ScopesAdditional where+ toJSON RestDescriptionAuthOAuth2ScopesAdditional{..}+ = object+ (catMaybes+ [("description" .=) <$> _rdaoasaDescription])++-- | Supports uploading as a single HTTP request.+--+-- /See:/ 'restMethodMediaUploadProtocolsSimple' smart constructor.+data RestMethodMediaUploadProtocolsSimple = RestMethodMediaUploadProtocolsSimple+ { _rmmupsPath :: !(Maybe Text)+ , _rmmupsMultiPart :: !Bool+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestMethodMediaUploadProtocolsSimple' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rmmupsPath'+--+-- * 'rmmupsMultiPart'+restMethodMediaUploadProtocolsSimple+ :: RestMethodMediaUploadProtocolsSimple+restMethodMediaUploadProtocolsSimple =+ RestMethodMediaUploadProtocolsSimple+ { _rmmupsPath = Nothing+ , _rmmupsMultiPart = True+ }++-- | The URI path to be used for upload. Should be used in conjunction with+-- the basePath property at the api-level.+rmmupsPath :: Lens' RestMethodMediaUploadProtocolsSimple (Maybe Text)+rmmupsPath+ = lens _rmmupsPath (\ s a -> s{_rmmupsPath = a})++-- | True if this endpoint supports upload multipart media.+rmmupsMultiPart :: Lens' RestMethodMediaUploadProtocolsSimple Bool+rmmupsMultiPart+ = lens _rmmupsMultiPart+ (\ s a -> s{_rmmupsMultiPart = a})++instance FromJSON+ RestMethodMediaUploadProtocolsSimple where+ parseJSON+ = withObject "RestMethodMediaUploadProtocolsSimple"+ (\ o ->+ RestMethodMediaUploadProtocolsSimple <$>+ (o .:? "path") <*> (o .:? "multipart" .!= True))++instance ToJSON RestMethodMediaUploadProtocolsSimple+ where+ toJSON RestMethodMediaUploadProtocolsSimple{..}+ = object+ (catMaybes+ [("path" .=) <$> _rmmupsPath,+ Just ("multipart" .= _rmmupsMultiPart)])++-- | Links to 16x16 and 32x32 icons representing the API.+--+-- /See:/ 'restDescriptionIcons' smart constructor.+data RestDescriptionIcons = RestDescriptionIcons+ { _rdiX16 :: !(Maybe Text)+ , _rdiX32 :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestDescriptionIcons' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdiX16'+--+-- * 'rdiX32'+restDescriptionIcons+ :: RestDescriptionIcons+restDescriptionIcons =+ RestDescriptionIcons+ { _rdiX16 = Nothing+ , _rdiX32 = Nothing+ }++-- | The URL of the 16x16 icon.+rdiX16 :: Lens' RestDescriptionIcons (Maybe Text)+rdiX16 = lens _rdiX16 (\ s a -> s{_rdiX16 = a})++-- | The URL of the 32x32 icon.+rdiX32 :: Lens' RestDescriptionIcons (Maybe Text)+rdiX32 = lens _rdiX32 (\ s a -> s{_rdiX32 = a})++instance FromJSON RestDescriptionIcons where+ parseJSON+ = withObject "RestDescriptionIcons"+ (\ o ->+ RestDescriptionIcons <$>+ (o .:? "x16") <*> (o .:? "x32"))++instance ToJSON RestDescriptionIcons where+ toJSON RestDescriptionIcons{..}+ = object+ (catMaybes+ [("x16" .=) <$> _rdiX16, ("x32" .=) <$> _rdiX32])++-- | In a variant data type, the value of one property is used to determine+-- how to interpret the entire entity. Its value must exist in a map of+-- descriminant values to schema names.+--+-- /See:/ 'jsonSchemaVariant' smart constructor.+data JSONSchemaVariant = JSONSchemaVariant+ { _jsvDiscriminant :: !(Maybe Text)+ , _jsvMap :: !(Maybe [JSONSchemaVariantMapItem])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JSONSchemaVariant' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jsvDiscriminant'+--+-- * 'jsvMap'+jsonSchemaVariant+ :: JSONSchemaVariant+jsonSchemaVariant =+ JSONSchemaVariant+ { _jsvDiscriminant = Nothing+ , _jsvMap = Nothing+ }++-- | The name of the type discriminant property.+jsvDiscriminant :: Lens' JSONSchemaVariant (Maybe Text)+jsvDiscriminant+ = lens _jsvDiscriminant+ (\ s a -> s{_jsvDiscriminant = a})++-- | The map of discriminant value to schema to use for parsing..+jsvMap :: Lens' JSONSchemaVariant [JSONSchemaVariantMapItem]+jsvMap+ = lens _jsvMap (\ s a -> s{_jsvMap = a}) . _Default .+ _Coerce++instance FromJSON JSONSchemaVariant where+ parseJSON+ = withObject "JSONSchemaVariant"+ (\ o ->+ JSONSchemaVariant <$>+ (o .:? "discriminant") <*> (o .:? "map" .!= mempty))++instance ToJSON JSONSchemaVariant where+ toJSON JSONSchemaVariant{..}+ = object+ (catMaybes+ [("discriminant" .=) <$> _jsvDiscriminant,+ ("map" .=) <$> _jsvMap])++-- | Methods on this resource.+--+-- /See:/ 'restResourceMethods' smart constructor.+newtype RestResourceMethods = RestResourceMethods+ { _rrmAddtional :: HashMap Text RestMethod+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestResourceMethods' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrmAddtional'+restResourceMethods+ :: HashMap Text RestMethod -- ^ 'rrmAddtional'+ -> RestResourceMethods+restResourceMethods pRrmAddtional_ =+ RestResourceMethods+ { _rrmAddtional = _Coerce # pRrmAddtional_+ }++-- | Description for any methods on this resource.+rrmAddtional :: Lens' RestResourceMethods (HashMap Text RestMethod)+rrmAddtional+ = lens _rrmAddtional (\ s a -> s{_rrmAddtional = a})+ . _Coerce++instance FromJSON RestResourceMethods where+ parseJSON+ = withObject "RestResourceMethods"+ (\ o -> RestResourceMethods <$> (parseJSONObject o))++instance ToJSON RestResourceMethods where+ toJSON = toJSON . _rrmAddtional++-- | Authentication information.+--+-- /See:/ 'restDescriptionAuth' smart constructor.+newtype RestDescriptionAuth = RestDescriptionAuth+ { _rdaOAuth2 :: Maybe RestDescriptionAuthOAuth2+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestDescriptionAuth' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdaOAuth2'+restDescriptionAuth+ :: RestDescriptionAuth+restDescriptionAuth =+ RestDescriptionAuth+ { _rdaOAuth2 = Nothing+ }++-- | OAuth 2.0 authentication information.+rdaOAuth2 :: Lens' RestDescriptionAuth (Maybe RestDescriptionAuthOAuth2)+rdaOAuth2+ = lens _rdaOAuth2 (\ s a -> s{_rdaOAuth2 = a})++instance FromJSON RestDescriptionAuth where+ parseJSON+ = withObject "RestDescriptionAuth"+ (\ o -> RestDescriptionAuth <$> (o .:? "oauth2"))++instance ToJSON RestDescriptionAuth where+ toJSON RestDescriptionAuth{..}+ = object (catMaybes [("oauth2" .=) <$> _rdaOAuth2])++--+-- /See:/ 'restDescription' smart constructor.+data RestDescription = RestDescription+ { _rdEtag :: !(Maybe Text)+ , _rdSchemas :: !(Maybe RestDescriptionSchemas)+ , _rdServicePath :: !(Maybe Text)+ , _rdBasePath :: !(Maybe Text)+ , _rdKind :: !Text+ , _rdExponentialBackoffDefault :: !(Maybe Bool)+ , _rdAuth :: !(Maybe RestDescriptionAuth)+ , _rdIcons :: !(Maybe RestDescriptionIcons)+ , _rdBaseURL :: !(Maybe Text)+ , _rdProtocol :: !Text+ , _rdOwnerName :: !(Maybe Text)+ , _rdResources :: !(Maybe RestDescriptionResources)+ , _rdOwnerDomain :: !(Maybe Text)+ , _rdBatchPath :: !Text+ , _rdMethods :: !(Maybe RestDescriptionMethods)+ , _rdName :: !(Maybe Text)+ , _rdPackagePath :: !(Maybe Text)+ , _rdFeatures :: !(Maybe [Text])+ , _rdVersion :: !(Maybe Text)+ , _rdParameters :: !(Maybe RestDescriptionParameters)+ , _rdDocumentationLink :: !(Maybe Text)+ , _rdRootURL :: !(Maybe Text)+ , _rdId :: !(Maybe Text)+ , _rdCanonicalName :: !(Maybe Text)+ , _rdLabels :: !(Maybe [Text])+ , _rdDiscoveryVersion :: !Text+ , _rdTitle :: !(Maybe Text)+ , _rdRevision :: !(Maybe Text)+ , _rdDescription :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdEtag'+--+-- * 'rdSchemas'+--+-- * 'rdServicePath'+--+-- * 'rdBasePath'+--+-- * 'rdKind'+--+-- * 'rdExponentialBackoffDefault'+--+-- * 'rdAuth'+--+-- * 'rdIcons'+--+-- * 'rdBaseURL'+--+-- * 'rdProtocol'+--+-- * 'rdOwnerName'+--+-- * 'rdResources'+--+-- * 'rdOwnerDomain'+--+-- * 'rdBatchPath'+--+-- * 'rdMethods'+--+-- * 'rdName'+--+-- * 'rdPackagePath'+--+-- * 'rdFeatures'+--+-- * 'rdVersion'+--+-- * 'rdParameters'+--+-- * 'rdDocumentationLink'+--+-- * 'rdRootURL'+--+-- * 'rdId'+--+-- * 'rdCanonicalName'+--+-- * 'rdLabels'+--+-- * 'rdDiscoveryVersion'+--+-- * 'rdTitle'+--+-- * 'rdRevision'+--+-- * 'rdDescription'+restDescription+ :: RestDescription+restDescription =+ RestDescription+ { _rdEtag = Nothing+ , _rdSchemas = Nothing+ , _rdServicePath = Nothing+ , _rdBasePath = Nothing+ , _rdKind = "discovery#restDescription"+ , _rdExponentialBackoffDefault = Nothing+ , _rdAuth = Nothing+ , _rdIcons = Nothing+ , _rdBaseURL = Nothing+ , _rdProtocol = "rest"+ , _rdOwnerName = Nothing+ , _rdResources = Nothing+ , _rdOwnerDomain = Nothing+ , _rdBatchPath = "batch"+ , _rdMethods = Nothing+ , _rdName = Nothing+ , _rdPackagePath = Nothing+ , _rdFeatures = Nothing+ , _rdVersion = Nothing+ , _rdParameters = Nothing+ , _rdDocumentationLink = Nothing+ , _rdRootURL = Nothing+ , _rdId = Nothing+ , _rdCanonicalName = Nothing+ , _rdLabels = Nothing+ , _rdDiscoveryVersion = "v1"+ , _rdTitle = Nothing+ , _rdRevision = Nothing+ , _rdDescription = Nothing+ }++-- | The ETag for this response.+rdEtag :: Lens' RestDescription (Maybe Text)+rdEtag = lens _rdEtag (\ s a -> s{_rdEtag = a})++-- | The schemas for this API.+rdSchemas :: Lens' RestDescription (Maybe RestDescriptionSchemas)+rdSchemas+ = lens _rdSchemas (\ s a -> s{_rdSchemas = a})++-- | The base path for all REST requests.+rdServicePath :: Lens' RestDescription (Maybe Text)+rdServicePath+ = lens _rdServicePath+ (\ s a -> s{_rdServicePath = a})++-- | [DEPRECATED] The base path for REST requests.+rdBasePath :: Lens' RestDescription (Maybe Text)+rdBasePath+ = lens _rdBasePath (\ s a -> s{_rdBasePath = a})++-- | The kind for this response.+rdKind :: Lens' RestDescription Text+rdKind = lens _rdKind (\ s a -> s{_rdKind = a})++-- | Enable exponential backoff for suitable methods in the generated+-- clients.+rdExponentialBackoffDefault :: Lens' RestDescription (Maybe Bool)+rdExponentialBackoffDefault+ = lens _rdExponentialBackoffDefault+ (\ s a -> s{_rdExponentialBackoffDefault = a})++-- | Authentication information.+rdAuth :: Lens' RestDescription (Maybe RestDescriptionAuth)+rdAuth = lens _rdAuth (\ s a -> s{_rdAuth = a})++-- | Links to 16x16 and 32x32 icons representing the API.+rdIcons :: Lens' RestDescription (Maybe RestDescriptionIcons)+rdIcons = lens _rdIcons (\ s a -> s{_rdIcons = a})++-- | [DEPRECATED] The base URL for REST requests.+rdBaseURL :: Lens' RestDescription (Maybe Text)+rdBaseURL+ = lens _rdBaseURL (\ s a -> s{_rdBaseURL = a})++-- | The protocol described by this document.+rdProtocol :: Lens' RestDescription Text+rdProtocol+ = lens _rdProtocol (\ s a -> s{_rdProtocol = a})++-- | The name of the owner of this API. See ownerDomain.+rdOwnerName :: Lens' RestDescription (Maybe Text)+rdOwnerName+ = lens _rdOwnerName (\ s a -> s{_rdOwnerName = a})++-- | The resources in this API.+rdResources :: Lens' RestDescription (Maybe RestDescriptionResources)+rdResources+ = lens _rdResources (\ s a -> s{_rdResources = a})++-- | The domain of the owner of this API. Together with the ownerName and a+-- packagePath values, this can be used to generate a library for this API+-- which would have a unique fully qualified name.+rdOwnerDomain :: Lens' RestDescription (Maybe Text)+rdOwnerDomain+ = lens _rdOwnerDomain+ (\ s a -> s{_rdOwnerDomain = a})++-- | The path for REST batch requests.+rdBatchPath :: Lens' RestDescription Text+rdBatchPath+ = lens _rdBatchPath (\ s a -> s{_rdBatchPath = a})++-- | API-level methods for this API.+rdMethods :: Lens' RestDescription (Maybe RestDescriptionMethods)+rdMethods+ = lens _rdMethods (\ s a -> s{_rdMethods = a})++-- | The name of this API.+rdName :: Lens' RestDescription (Maybe Text)+rdName = lens _rdName (\ s a -> s{_rdName = a})++-- | The package of the owner of this API. See ownerDomain.+rdPackagePath :: Lens' RestDescription (Maybe Text)+rdPackagePath+ = lens _rdPackagePath+ (\ s a -> s{_rdPackagePath = a})++-- | A list of supported features for this API.+rdFeatures :: Lens' RestDescription [Text]+rdFeatures+ = lens _rdFeatures (\ s a -> s{_rdFeatures = a}) .+ _Default+ . _Coerce++-- | The version of this API.+rdVersion :: Lens' RestDescription (Maybe Text)+rdVersion+ = lens _rdVersion (\ s a -> s{_rdVersion = a})++-- | Common parameters that apply across all apis.+rdParameters :: Lens' RestDescription (Maybe RestDescriptionParameters)+rdParameters+ = lens _rdParameters (\ s a -> s{_rdParameters = a})++-- | A link to human readable documentation for the API.+rdDocumentationLink :: Lens' RestDescription (Maybe Text)+rdDocumentationLink+ = lens _rdDocumentationLink+ (\ s a -> s{_rdDocumentationLink = a})++-- | The root URL under which all API services live.+rdRootURL :: Lens' RestDescription (Maybe Text)+rdRootURL+ = lens _rdRootURL (\ s a -> s{_rdRootURL = a})++-- | The ID of this API.+rdId :: Lens' RestDescription (Maybe Text)+rdId = lens _rdId (\ s a -> s{_rdId = a})++-- | Indicates how the API name should be capitalized and split into various+-- parts. Useful for generating pretty class names.+rdCanonicalName :: Lens' RestDescription (Maybe Text)+rdCanonicalName+ = lens _rdCanonicalName+ (\ s a -> s{_rdCanonicalName = a})++-- | Labels for the status of this API, such as labs or deprecated.+rdLabels :: Lens' RestDescription [Text]+rdLabels+ = lens _rdLabels (\ s a -> s{_rdLabels = a}) .+ _Default+ . _Coerce++-- | Indicate the version of the Discovery API used to generate this doc.+rdDiscoveryVersion :: Lens' RestDescription Text+rdDiscoveryVersion+ = lens _rdDiscoveryVersion+ (\ s a -> s{_rdDiscoveryVersion = a})++-- | The title of this API.+rdTitle :: Lens' RestDescription (Maybe Text)+rdTitle = lens _rdTitle (\ s a -> s{_rdTitle = a})++-- | The version of this API.+rdRevision :: Lens' RestDescription (Maybe Text)+rdRevision+ = lens _rdRevision (\ s a -> s{_rdRevision = a})++-- | The description of this API.+rdDescription :: Lens' RestDescription (Maybe Text)+rdDescription+ = lens _rdDescription+ (\ s a -> s{_rdDescription = a})++instance FromJSON RestDescription where+ parseJSON+ = withObject "RestDescription"+ (\ o ->+ RestDescription <$>+ (o .:? "etag") <*> (o .:? "schemas") <*>+ (o .:? "servicePath")+ <*> (o .:? "basePath")+ <*> (o .:? "kind" .!= "discovery#restDescription")+ <*> (o .:? "exponentialBackoffDefault")+ <*> (o .:? "auth")+ <*> (o .:? "icons")+ <*> (o .:? "baseUrl")+ <*> (o .:? "protocol" .!= "rest")+ <*> (o .:? "ownerName")+ <*> (o .:? "resources")+ <*> (o .:? "ownerDomain")+ <*> (o .:? "batchPath" .!= "batch")+ <*> (o .:? "methods")+ <*> (o .:? "name")+ <*> (o .:? "packagePath")+ <*> (o .:? "features" .!= mempty)+ <*> (o .:? "version")+ <*> (o .:? "parameters")+ <*> (o .:? "documentationLink")+ <*> (o .:? "rootUrl")+ <*> (o .:? "id")+ <*> (o .:? "canonicalName")+ <*> (o .:? "labels" .!= mempty)+ <*> (o .:? "discoveryVersion" .!= "v1")+ <*> (o .:? "title")+ <*> (o .:? "revision")+ <*> (o .:? "description"))++instance ToJSON RestDescription where+ toJSON RestDescription{..}+ = object+ (catMaybes+ [("etag" .=) <$> _rdEtag,+ ("schemas" .=) <$> _rdSchemas,+ ("servicePath" .=) <$> _rdServicePath,+ ("basePath" .=) <$> _rdBasePath,+ Just ("kind" .= _rdKind),+ ("exponentialBackoffDefault" .=) <$>+ _rdExponentialBackoffDefault,+ ("auth" .=) <$> _rdAuth, ("icons" .=) <$> _rdIcons,+ ("baseUrl" .=) <$> _rdBaseURL,+ Just ("protocol" .= _rdProtocol),+ ("ownerName" .=) <$> _rdOwnerName,+ ("resources" .=) <$> _rdResources,+ ("ownerDomain" .=) <$> _rdOwnerDomain,+ Just ("batchPath" .= _rdBatchPath),+ ("methods" .=) <$> _rdMethods,+ ("name" .=) <$> _rdName,+ ("packagePath" .=) <$> _rdPackagePath,+ ("features" .=) <$> _rdFeatures,+ ("version" .=) <$> _rdVersion,+ ("parameters" .=) <$> _rdParameters,+ ("documentationLink" .=) <$> _rdDocumentationLink,+ ("rootUrl" .=) <$> _rdRootURL, ("id" .=) <$> _rdId,+ ("canonicalName" .=) <$> _rdCanonicalName,+ ("labels" .=) <$> _rdLabels,+ Just ("discoveryVersion" .= _rdDiscoveryVersion),+ ("title" .=) <$> _rdTitle,+ ("revision" .=) <$> _rdRevision,+ ("description" .=) <$> _rdDescription])++--+-- /See:/ 'jsonSchema' smart constructor.+data JSONSchema = JSONSchema+ { _jsAnnotations :: !(Maybe JSONSchemaAnnotations)+ , _jsVariant :: !(Maybe JSONSchemaVariant)+ , _jsLocation :: !(Maybe Text)+ , _jsRef :: !(Maybe Text)+ , _jsPattern :: !(Maybe Text)+ , _jsMaximum :: !(Maybe Text)+ , _jsDefault :: !(Maybe Text)+ , _jsFormat :: !(Maybe Text)+ , _jsItems :: !(Maybe JSONSchema)+ , _jsMinimum :: !(Maybe Text)+ , _jsRequired :: !(Maybe Bool)+ , _jsId :: !(Maybe Text)+ , _jsAdditionalProperties :: !(Maybe JSONSchema)+ , _jsType :: !(Maybe Text)+ , _jsEnum :: !(Maybe [Text])+ , _jsRepeated :: !(Maybe Bool)+ , _jsReadOnly :: !(Maybe Bool)+ , _jsEnumDescriptions :: !(Maybe [Text])+ , _jsDescription :: !(Maybe Text)+ , _jsProperties :: !(Maybe JSONSchemaProperties)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JSONSchema' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jsAnnotations'+--+-- * 'jsVariant'+--+-- * 'jsLocation'+--+-- * 'jsRef'+--+-- * 'jsPattern'+--+-- * 'jsMaximum'+--+-- * 'jsDefault'+--+-- * 'jsFormat'+--+-- * 'jsItems'+--+-- * 'jsMinimum'+--+-- * 'jsRequired'+--+-- * 'jsId'+--+-- * 'jsAdditionalProperties'+--+-- * 'jsType'+--+-- * 'jsEnum'+--+-- * 'jsRepeated'+--+-- * 'jsReadOnly'+--+-- * 'jsEnumDescriptions'+--+-- * 'jsDescription'+--+-- * 'jsProperties'+jsonSchema+ :: JSONSchema+jsonSchema =+ JSONSchema+ { _jsAnnotations = Nothing+ , _jsVariant = Nothing+ , _jsLocation = Nothing+ , _jsRef = Nothing+ , _jsPattern = Nothing+ , _jsMaximum = Nothing+ , _jsDefault = Nothing+ , _jsFormat = Nothing+ , _jsItems = Nothing+ , _jsMinimum = Nothing+ , _jsRequired = Nothing+ , _jsId = Nothing+ , _jsAdditionalProperties = Nothing+ , _jsType = Nothing+ , _jsEnum = Nothing+ , _jsRepeated = Nothing+ , _jsReadOnly = Nothing+ , _jsEnumDescriptions = Nothing+ , _jsDescription = Nothing+ , _jsProperties = Nothing+ }++-- | Additional information about this property.+jsAnnotations :: Lens' JSONSchema (Maybe JSONSchemaAnnotations)+jsAnnotations+ = lens _jsAnnotations+ (\ s a -> s{_jsAnnotations = a})++-- | In a variant data type, the value of one property is used to determine+-- how to interpret the entire entity. Its value must exist in a map of+-- descriminant values to schema names.+jsVariant :: Lens' JSONSchema (Maybe JSONSchemaVariant)+jsVariant+ = lens _jsVariant (\ s a -> s{_jsVariant = a})++-- | Whether this parameter goes in the query or the path for REST requests.+jsLocation :: Lens' JSONSchema (Maybe Text)+jsLocation+ = lens _jsLocation (\ s a -> s{_jsLocation = a})++-- | A reference to another schema. The value of this property is the \"id\"+-- of another schema.+jsRef :: Lens' JSONSchema (Maybe Text)+jsRef = lens _jsRef (\ s a -> s{_jsRef = a})++-- | The regular expression this parameter must conform to. Uses Java 6 regex+-- format:+-- http:\/\/docs.oracle.com\/javase\/6\/docs\/api\/java\/util\/regex\/Pattern.html+jsPattern :: Lens' JSONSchema (Maybe Text)+jsPattern+ = lens _jsPattern (\ s a -> s{_jsPattern = a})++-- | The maximum value of this parameter.+jsMaximum :: Lens' JSONSchema (Maybe Text)+jsMaximum+ = lens _jsMaximum (\ s a -> s{_jsMaximum = a})++-- | The default value of this property (if one exists).+jsDefault :: Lens' JSONSchema (Maybe Text)+jsDefault+ = lens _jsDefault (\ s a -> s{_jsDefault = a})++-- | An additional regular expression or key that helps constrain the value.+-- For more details see:+-- http:\/\/tools.ietf.org\/html\/draft-zyp-json-schema-03#section-5.23+jsFormat :: Lens' JSONSchema (Maybe Text)+jsFormat = lens _jsFormat (\ s a -> s{_jsFormat = a})++-- | If this is a schema for an array, this property is the schema for each+-- element in the array.+jsItems :: Lens' JSONSchema (Maybe JSONSchema)+jsItems = lens _jsItems (\ s a -> s{_jsItems = a})++-- | The minimum value of this parameter.+jsMinimum :: Lens' JSONSchema (Maybe Text)+jsMinimum+ = lens _jsMinimum (\ s a -> s{_jsMinimum = a})++-- | Whether the parameter is required.+jsRequired :: Lens' JSONSchema (Maybe Bool)+jsRequired+ = lens _jsRequired (\ s a -> s{_jsRequired = a})++-- | Unique identifier for this schema.+jsId :: Lens' JSONSchema (Maybe Text)+jsId = lens _jsId (\ s a -> s{_jsId = a})++-- | If this is a schema for an object, this property is the schema for any+-- additional properties with dynamic keys on this object.+jsAdditionalProperties :: Lens' JSONSchema (Maybe JSONSchema)+jsAdditionalProperties+ = lens _jsAdditionalProperties+ (\ s a -> s{_jsAdditionalProperties = a})++-- | The value type for this schema. A list of values can be found here:+-- http:\/\/tools.ietf.org\/html\/draft-zyp-json-schema-03#section-5.1+jsType :: Lens' JSONSchema (Maybe Text)+jsType = lens _jsType (\ s a -> s{_jsType = a})++-- | Values this parameter may take (if it is an enum).+jsEnum :: Lens' JSONSchema [Text]+jsEnum+ = lens _jsEnum (\ s a -> s{_jsEnum = a}) . _Default .+ _Coerce++-- | Whether this parameter may appear multiple times.+jsRepeated :: Lens' JSONSchema (Maybe Bool)+jsRepeated+ = lens _jsRepeated (\ s a -> s{_jsRepeated = a})++-- | The value is read-only, generated by the service. The value cannot be+-- modified by the client. If the value is included in a POST, PUT, or+-- PATCH request, it is ignored by the service.+jsReadOnly :: Lens' JSONSchema (Maybe Bool)+jsReadOnly+ = lens _jsReadOnly (\ s a -> s{_jsReadOnly = a})++-- | The descriptions for the enums. Each position maps to the corresponding+-- value in the \"enum\" array.+jsEnumDescriptions :: Lens' JSONSchema [Text]+jsEnumDescriptions+ = lens _jsEnumDescriptions+ (\ s a -> s{_jsEnumDescriptions = a})+ . _Default+ . _Coerce++-- | A description of this object.+jsDescription :: Lens' JSONSchema (Maybe Text)+jsDescription+ = lens _jsDescription+ (\ s a -> s{_jsDescription = a})++-- | If this is a schema for an object, list the schema for each property of+-- this object.+jsProperties :: Lens' JSONSchema (Maybe JSONSchemaProperties)+jsProperties+ = lens _jsProperties (\ s a -> s{_jsProperties = a})++instance FromJSON JSONSchema where+ parseJSON+ = withObject "JSONSchema"+ (\ o ->+ JSONSchema <$>+ (o .:? "annotations") <*> (o .:? "variant") <*>+ (o .:? "location")+ <*> (o .:? "$ref")+ <*> (o .:? "pattern")+ <*> (o .:? "maximum")+ <*> (o .:? "default")+ <*> (o .:? "format")+ <*> (o .:? "items")+ <*> (o .:? "minimum")+ <*> (o .:? "required")+ <*> (o .:? "id")+ <*> (o .:? "additionalProperties")+ <*> (o .:? "type")+ <*> (o .:? "enum" .!= mempty)+ <*> (o .:? "repeated")+ <*> (o .:? "readOnly")+ <*> (o .:? "enumDescriptions" .!= mempty)+ <*> (o .:? "description")+ <*> (o .:? "properties"))++instance ToJSON JSONSchema where+ toJSON JSONSchema{..}+ = object+ (catMaybes+ [("annotations" .=) <$> _jsAnnotations,+ ("variant" .=) <$> _jsVariant,+ ("location" .=) <$> _jsLocation,+ ("$ref" .=) <$> _jsRef,+ ("pattern" .=) <$> _jsPattern,+ ("maximum" .=) <$> _jsMaximum,+ ("default" .=) <$> _jsDefault,+ ("format" .=) <$> _jsFormat,+ ("items" .=) <$> _jsItems,+ ("minimum" .=) <$> _jsMinimum,+ ("required" .=) <$> _jsRequired, ("id" .=) <$> _jsId,+ ("additionalProperties" .=) <$>+ _jsAdditionalProperties,+ ("type" .=) <$> _jsType, ("enum" .=) <$> _jsEnum,+ ("repeated" .=) <$> _jsRepeated,+ ("readOnly" .=) <$> _jsReadOnly,+ ("enumDescriptions" .=) <$> _jsEnumDescriptions,+ ("description" .=) <$> _jsDescription,+ ("properties" .=) <$> _jsProperties])++-- | The schemas for this API.+--+-- /See:/ 'restDescriptionSchemas' smart constructor.+newtype RestDescriptionSchemas = RestDescriptionSchemas+ { _rdsAddtional :: HashMap Text JSONSchema+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestDescriptionSchemas' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdsAddtional'+restDescriptionSchemas+ :: HashMap Text JSONSchema -- ^ 'rdsAddtional'+ -> RestDescriptionSchemas+restDescriptionSchemas pRdsAddtional_ =+ RestDescriptionSchemas+ { _rdsAddtional = _Coerce # pRdsAddtional_+ }++-- | An individual schema description.+rdsAddtional :: Lens' RestDescriptionSchemas (HashMap Text JSONSchema)+rdsAddtional+ = lens _rdsAddtional (\ s a -> s{_rdsAddtional = a})+ . _Coerce++instance FromJSON RestDescriptionSchemas where+ parseJSON+ = withObject "RestDescriptionSchemas"+ (\ o ->+ RestDescriptionSchemas <$> (parseJSONObject o))++instance ToJSON RestDescriptionSchemas where+ toJSON = toJSON . _rdsAddtional++--+-- /See:/ 'jsonSchemaVariantMapItem' smart constructor.+data JSONSchemaVariantMapItem = JSONSchemaVariantMapItem+ { _jsvmiRef :: !(Maybe Text)+ , _jsvmiTypeValue :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JSONSchemaVariantMapItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jsvmiRef'+--+-- * 'jsvmiTypeValue'+jsonSchemaVariantMapItem+ :: JSONSchemaVariantMapItem+jsonSchemaVariantMapItem =+ JSONSchemaVariantMapItem+ { _jsvmiRef = Nothing+ , _jsvmiTypeValue = Nothing+ }++jsvmiRef :: Lens' JSONSchemaVariantMapItem (Maybe Text)+jsvmiRef = lens _jsvmiRef (\ s a -> s{_jsvmiRef = a})++jsvmiTypeValue :: Lens' JSONSchemaVariantMapItem (Maybe Text)+jsvmiTypeValue+ = lens _jsvmiTypeValue+ (\ s a -> s{_jsvmiTypeValue = a})++instance FromJSON JSONSchemaVariantMapItem where+ parseJSON+ = withObject "JSONSchemaVariantMapItem"+ (\ o ->+ JSONSchemaVariantMapItem <$>+ (o .:? "$ref") <*> (o .:? "type_value"))++instance ToJSON JSONSchemaVariantMapItem where+ toJSON JSONSchemaVariantMapItem{..}+ = object+ (catMaybes+ [("$ref" .=) <$> _jsvmiRef,+ ("type_value" .=) <$> _jsvmiTypeValue])++-- | The resources in this API.+--+-- /See:/ 'restDescriptionResources' smart constructor.+newtype RestDescriptionResources = RestDescriptionResources+ { _rdrAddtional :: HashMap Text RestResource+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestDescriptionResources' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdrAddtional'+restDescriptionResources+ :: HashMap Text RestResource -- ^ 'rdrAddtional'+ -> RestDescriptionResources+restDescriptionResources pRdrAddtional_ =+ RestDescriptionResources+ { _rdrAddtional = _Coerce # pRdrAddtional_+ }++-- | An individual resource description. Contains methods and sub-resources+-- related to this resource.+rdrAddtional :: Lens' RestDescriptionResources (HashMap Text RestResource)+rdrAddtional+ = lens _rdrAddtional (\ s a -> s{_rdrAddtional = a})+ . _Coerce++instance FromJSON RestDescriptionResources where+ parseJSON+ = withObject "RestDescriptionResources"+ (\ o ->+ RestDescriptionResources <$> (parseJSONObject o))++instance ToJSON RestDescriptionResources where+ toJSON = toJSON . _rdrAddtional++-- | Supported upload protocols.+--+-- /See:/ 'restMethodMediaUploadProtocols' smart constructor.+data RestMethodMediaUploadProtocols = RestMethodMediaUploadProtocols+ { _rmmupSimple :: !(Maybe RestMethodMediaUploadProtocolsSimple)+ , _rmmupResumable :: !(Maybe RestMethodMediaUploadProtocolsResumable)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestMethodMediaUploadProtocols' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rmmupSimple'+--+-- * 'rmmupResumable'+restMethodMediaUploadProtocols+ :: RestMethodMediaUploadProtocols+restMethodMediaUploadProtocols =+ RestMethodMediaUploadProtocols+ { _rmmupSimple = Nothing+ , _rmmupResumable = Nothing+ }++-- | Supports uploading as a single HTTP request.+rmmupSimple :: Lens' RestMethodMediaUploadProtocols (Maybe RestMethodMediaUploadProtocolsSimple)+rmmupSimple+ = lens _rmmupSimple (\ s a -> s{_rmmupSimple = a})++-- | Supports the Resumable Media Upload protocol.+rmmupResumable :: Lens' RestMethodMediaUploadProtocols (Maybe RestMethodMediaUploadProtocolsResumable)+rmmupResumable+ = lens _rmmupResumable+ (\ s a -> s{_rmmupResumable = a})++instance FromJSON RestMethodMediaUploadProtocols+ where+ parseJSON+ = withObject "RestMethodMediaUploadProtocols"+ (\ o ->+ RestMethodMediaUploadProtocols <$>+ (o .:? "simple") <*> (o .:? "resumable"))++instance ToJSON RestMethodMediaUploadProtocols where+ toJSON RestMethodMediaUploadProtocols{..}+ = object+ (catMaybes+ [("simple" .=) <$> _rmmupSimple,+ ("resumable" .=) <$> _rmmupResumable])++-- | Additional information about this property.+--+-- /See:/ 'jsonSchemaAnnotations' smart constructor.+newtype JSONSchemaAnnotations = JSONSchemaAnnotations+ { _jsaRequired :: Maybe [Text]+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JSONSchemaAnnotations' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jsaRequired'+jsonSchemaAnnotations+ :: JSONSchemaAnnotations+jsonSchemaAnnotations =+ JSONSchemaAnnotations+ { _jsaRequired = Nothing+ }++-- | A list of methods for which this property is required on requests.+jsaRequired :: Lens' JSONSchemaAnnotations [Text]+jsaRequired+ = lens _jsaRequired (\ s a -> s{_jsaRequired = a}) .+ _Default+ . _Coerce++instance FromJSON JSONSchemaAnnotations where+ parseJSON+ = withObject "JSONSchemaAnnotations"+ (\ o ->+ JSONSchemaAnnotations <$>+ (o .:? "required" .!= mempty))++instance ToJSON JSONSchemaAnnotations where+ toJSON JSONSchemaAnnotations{..}+ = object+ (catMaybes [("required" .=) <$> _jsaRequired])++-- | Details for all parameters in this method.+--+-- /See:/ 'restMethodParameters' smart constructor.+newtype RestMethodParameters = RestMethodParameters+ { _rmpAddtional :: HashMap Text JSONSchema+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestMethodParameters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rmpAddtional'+restMethodParameters+ :: HashMap Text JSONSchema -- ^ 'rmpAddtional'+ -> RestMethodParameters+restMethodParameters pRmpAddtional_ =+ RestMethodParameters+ { _rmpAddtional = _Coerce # pRmpAddtional_+ }++-- | Details for a single parameter in this method.+rmpAddtional :: Lens' RestMethodParameters (HashMap Text JSONSchema)+rmpAddtional+ = lens _rmpAddtional (\ s a -> s{_rmpAddtional = a})+ . _Coerce++instance FromJSON RestMethodParameters where+ parseJSON+ = withObject "RestMethodParameters"+ (\ o -> RestMethodParameters <$> (parseJSONObject o))++instance ToJSON RestMethodParameters where+ toJSON = toJSON . _rmpAddtional++-- | Media upload parameters.+--+-- /See:/ 'restMethodMediaUpload' smart constructor.+data RestMethodMediaUpload = RestMethodMediaUpload+ { _rmmuProtocols :: !(Maybe RestMethodMediaUploadProtocols)+ , _rmmuAccept :: !(Maybe [Text])+ , _rmmuMaxSize :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestMethodMediaUpload' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rmmuProtocols'+--+-- * 'rmmuAccept'+--+-- * 'rmmuMaxSize'+restMethodMediaUpload+ :: RestMethodMediaUpload+restMethodMediaUpload =+ RestMethodMediaUpload+ { _rmmuProtocols = Nothing+ , _rmmuAccept = Nothing+ , _rmmuMaxSize = Nothing+ }++-- | Supported upload protocols.+rmmuProtocols :: Lens' RestMethodMediaUpload (Maybe RestMethodMediaUploadProtocols)+rmmuProtocols+ = lens _rmmuProtocols+ (\ s a -> s{_rmmuProtocols = a})++-- | MIME Media Ranges for acceptable media uploads to this method.+rmmuAccept :: Lens' RestMethodMediaUpload [Text]+rmmuAccept+ = lens _rmmuAccept (\ s a -> s{_rmmuAccept = a}) .+ _Default+ . _Coerce++-- | Maximum size of a media upload, such as \"1MB\", \"2GB\" or \"3TB\".+rmmuMaxSize :: Lens' RestMethodMediaUpload (Maybe Text)+rmmuMaxSize+ = lens _rmmuMaxSize (\ s a -> s{_rmmuMaxSize = a})++instance FromJSON RestMethodMediaUpload where+ parseJSON+ = withObject "RestMethodMediaUpload"+ (\ o ->+ RestMethodMediaUpload <$>+ (o .:? "protocols") <*> (o .:? "accept" .!= mempty)+ <*> (o .:? "maxSize"))++instance ToJSON RestMethodMediaUpload where+ toJSON RestMethodMediaUpload{..}+ = object+ (catMaybes+ [("protocols" .=) <$> _rmmuProtocols,+ ("accept" .=) <$> _rmmuAccept,+ ("maxSize" .=) <$> _rmmuMaxSize])++-- | If this is a schema for an object, list the schema for each property of+-- this object.+--+-- /See:/ 'jsonSchemaProperties' smart constructor.+newtype JSONSchemaProperties = JSONSchemaProperties+ { _jspAddtional :: HashMap Text JSONSchema+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JSONSchemaProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jspAddtional'+jsonSchemaProperties+ :: HashMap Text JSONSchema -- ^ 'jspAddtional'+ -> JSONSchemaProperties+jsonSchemaProperties pJspAddtional_ =+ JSONSchemaProperties+ { _jspAddtional = _Coerce # pJspAddtional_+ }++-- | A single property of this object. The value is itself a JSON Schema+-- object describing this property.+jspAddtional :: Lens' JSONSchemaProperties (HashMap Text JSONSchema)+jspAddtional+ = lens _jspAddtional (\ s a -> s{_jspAddtional = a})+ . _Coerce++instance FromJSON JSONSchemaProperties where+ parseJSON+ = withObject "JSONSchemaProperties"+ (\ o -> JSONSchemaProperties <$> (parseJSONObject o))++instance ToJSON JSONSchemaProperties where+ toJSON = toJSON . _jspAddtional++-- | Supports the Resumable Media Upload protocol.+--+-- /See:/ 'restMethodMediaUploadProtocolsResumable' smart constructor.+data RestMethodMediaUploadProtocolsResumable = RestMethodMediaUploadProtocolsResumable+ { _rmmuprPath :: !(Maybe Text)+ , _rmmuprMultiPart :: !Bool+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestMethodMediaUploadProtocolsResumable' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rmmuprPath'+--+-- * 'rmmuprMultiPart'+restMethodMediaUploadProtocolsResumable+ :: RestMethodMediaUploadProtocolsResumable+restMethodMediaUploadProtocolsResumable =+ RestMethodMediaUploadProtocolsResumable+ { _rmmuprPath = Nothing+ , _rmmuprMultiPart = True+ }++-- | The URI path to be used for upload. Should be used in conjunction with+-- the basePath property at the api-level.+rmmuprPath :: Lens' RestMethodMediaUploadProtocolsResumable (Maybe Text)+rmmuprPath+ = lens _rmmuprPath (\ s a -> s{_rmmuprPath = a})++-- | True if this endpoint supports uploading multipart media.+rmmuprMultiPart :: Lens' RestMethodMediaUploadProtocolsResumable Bool+rmmuprMultiPart+ = lens _rmmuprMultiPart+ (\ s a -> s{_rmmuprMultiPart = a})++instance FromJSON+ RestMethodMediaUploadProtocolsResumable where+ parseJSON+ = withObject+ "RestMethodMediaUploadProtocolsResumable"+ (\ o ->+ RestMethodMediaUploadProtocolsResumable <$>+ (o .:? "path") <*> (o .:? "multipart" .!= True))++instance ToJSON+ RestMethodMediaUploadProtocolsResumable where+ toJSON RestMethodMediaUploadProtocolsResumable{..}+ = object+ (catMaybes+ [("path" .=) <$> _rmmuprPath,+ Just ("multipart" .= _rmmuprMultiPart)])++--+-- /See:/ 'directoryList' smart constructor.+data DirectoryList = DirectoryList+ { _dlKind :: !Text+ , _dlItems :: !(Maybe [DirectoryListItemsItem])+ , _dlDiscoveryVersion :: !Text+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DirectoryList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlKind'+--+-- * 'dlItems'+--+-- * 'dlDiscoveryVersion'+directoryList+ :: DirectoryList+directoryList =+ DirectoryList+ { _dlKind = "discovery#directoryList"+ , _dlItems = Nothing+ , _dlDiscoveryVersion = "v1"+ }++-- | The kind for this response.+dlKind :: Lens' DirectoryList Text+dlKind = lens _dlKind (\ s a -> s{_dlKind = a})++-- | The individual directory entries. One entry per api\/version pair.+dlItems :: Lens' DirectoryList [DirectoryListItemsItem]+dlItems+ = lens _dlItems (\ s a -> s{_dlItems = a}) . _Default+ . _Coerce++-- | Indicate the version of the Discovery API used to generate this doc.+dlDiscoveryVersion :: Lens' DirectoryList Text+dlDiscoveryVersion+ = lens _dlDiscoveryVersion+ (\ s a -> s{_dlDiscoveryVersion = a})++instance FromJSON DirectoryList where+ parseJSON+ = withObject "DirectoryList"+ (\ o ->+ DirectoryList <$>+ (o .:? "kind" .!= "discovery#directoryList") <*>+ (o .:? "items" .!= mempty)+ <*> (o .:? "discoveryVersion" .!= "v1"))++instance ToJSON DirectoryList where+ toJSON DirectoryList{..}+ = object+ (catMaybes+ [Just ("kind" .= _dlKind), ("items" .=) <$> _dlItems,+ Just ("discoveryVersion" .= _dlDiscoveryVersion)])++-- | The schema for the request.+--+-- /See:/ 'restMethodRequest' smart constructor.+data RestMethodRequest = RestMethodRequest+ { _rRef :: !(Maybe Text)+ , _rParameterName :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestMethodRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rRef'+--+-- * 'rParameterName'+restMethodRequest+ :: RestMethodRequest+restMethodRequest =+ RestMethodRequest+ { _rRef = Nothing+ , _rParameterName = Nothing+ }++-- | Schema ID for the request schema.+rRef :: Lens' RestMethodRequest (Maybe Text)+rRef = lens _rRef (\ s a -> s{_rRef = a})++-- | parameter name.+rParameterName :: Lens' RestMethodRequest (Maybe Text)+rParameterName+ = lens _rParameterName+ (\ s a -> s{_rParameterName = a})++instance FromJSON RestMethodRequest where+ parseJSON+ = withObject "RestMethodRequest"+ (\ o ->+ RestMethodRequest <$>+ (o .:? "$ref") <*> (o .:? "parameterName"))++instance ToJSON RestMethodRequest where+ toJSON RestMethodRequest{..}+ = object+ (catMaybes+ [("$ref" .=) <$> _rRef,+ ("parameterName" .=) <$> _rParameterName])
+ gen/Network/Google/Discovery/Types/Sum.hs view
@@ -0,0 +1,19 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Discovery.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.Discovery.Types.Sum where++import Network.Google.Prelude
+ gen/Network/Google/Resource/Discovery/APIs/GetRest.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.Discovery.APIs.GetRest+-- 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)+--+-- Retrieve the description of a particular version of an api.+--+-- /See:/ <https://developers.google.com/discovery/ APIs Discovery Service Reference> for @discovery.apis.getRest@.+module Network.Google.Resource.Discovery.APIs.GetRest+ (+ -- * REST Resource+ APIsGetRestResource++ -- * Creating a Request+ , apisGetRest+ , APIsGetRest++ -- * Request Lenses+ , agrVersion+ , agrAPI+ ) where++import Network.Google.Discovery.Types+import Network.Google.Prelude++-- | A resource alias for @discovery.apis.getRest@ method which the+-- 'APIsGetRest' request conforms to.+type APIsGetRestResource =+ "discovery" :>+ "v1" :>+ "apis" :>+ Capture "api" Text :>+ Capture "version" Text :>+ "rest" :>+ QueryParam "alt" AltJSON :>+ Get '[JSON] RestDescription++-- | Retrieve the description of a particular version of an api.+--+-- /See:/ 'apisGetRest' smart constructor.+data APIsGetRest = APIsGetRest+ { _agrVersion :: !Text+ , _agrAPI :: !Text+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'APIsGetRest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'agrVersion'+--+-- * 'agrAPI'+apisGetRest+ :: Text -- ^ 'agrVersion'+ -> Text -- ^ 'agrAPI'+ -> APIsGetRest+apisGetRest pAgrVersion_ pAgrAPI_ =+ APIsGetRest+ { _agrVersion = pAgrVersion_+ , _agrAPI = pAgrAPI_+ }++-- | The version of the API.+agrVersion :: Lens' APIsGetRest Text+agrVersion+ = lens _agrVersion (\ s a -> s{_agrVersion = a})++-- | The name of the API.+agrAPI :: Lens' APIsGetRest Text+agrAPI = lens _agrAPI (\ s a -> s{_agrAPI = a})++instance GoogleRequest APIsGetRest where+ type Rs APIsGetRest = RestDescription+ requestClient APIsGetRest{..}+ = go _agrAPI _agrVersion (Just AltJSON)+ discoveryService+ where go+ = buildClient (Proxy :: Proxy APIsGetRestResource)+ mempty
+ gen/Network/Google/Resource/Discovery/APIs/List.hs view
@@ -0,0 +1,92 @@+{-# 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.Discovery.APIs.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)+--+-- Retrieve the list of APIs supported at this endpoint.+--+-- /See:/ <https://developers.google.com/discovery/ APIs Discovery Service Reference> for @discovery.apis.list@.+module Network.Google.Resource.Discovery.APIs.List+ (+ -- * REST Resource+ APIsListResource++ -- * Creating a Request+ , apisList+ , APIsList++ -- * Request Lenses+ , alPreferred+ , alName+ ) where++import Network.Google.Discovery.Types+import Network.Google.Prelude++-- | A resource alias for @discovery.apis.list@ method which the+-- 'APIsList' request conforms to.+type APIsListResource =+ "discovery" :>+ "v1" :>+ "apis" :>+ QueryParam "preferred" Bool :>+ QueryParam "name" Text :>+ QueryParam "alt" AltJSON :> Get '[JSON] DirectoryList++-- | Retrieve the list of APIs supported at this endpoint.+--+-- /See:/ 'apisList' smart constructor.+data APIsList = APIsList+ { _alPreferred :: !Bool+ , _alName :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'APIsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'alPreferred'+--+-- * 'alName'+apisList+ :: APIsList+apisList =+ APIsList+ { _alPreferred = False+ , _alName = Nothing+ }++-- | Return only the preferred version of an API.+alPreferred :: Lens' APIsList Bool+alPreferred+ = lens _alPreferred (\ s a -> s{_alPreferred = a})++-- | Only include APIs with the given name.+alName :: Lens' APIsList (Maybe Text)+alName = lens _alName (\ s a -> s{_alName = a})++instance GoogleRequest APIsList where+ type Rs APIsList = DirectoryList+ requestClient APIsList{..}+ = go (Just _alPreferred) _alName (Just AltJSON)+ discoveryService+ where go+ = buildClient (Proxy :: Proxy APIsListResource)+ mempty
+ gogol-discovery.cabal view
@@ -0,0 +1,48 @@+name: gogol-discovery+version: 0.0.1+synopsis: Google APIs Discovery Service 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 discover information about other Google APIs, such as what APIs+ are available, the resource and method details for each API.+ .+ /Warning:/ This is an experimental prototype/preview release which is still+ under exploratory development and not intended for public use, caveat emptor!+ .+ This library is compatible with version @v1@+ of the API.++source-repository head+ type: git+ location: git://github.com/brendanhay/gogol.git++library+ default-language: Haskell2010+ hs-source-dirs: src gen++ ghc-options: -Wall++ exposed-modules:+ Network.Google.Discovery+ , Network.Google.Discovery.Types+ , Network.Google.Resource.Discovery.APIs.GetRest+ , Network.Google.Resource.Discovery.APIs.List++ other-modules:+ Network.Google.Discovery.Types.Product+ , Network.Google.Discovery.Types.Sum++ build-depends:+ gogol-core == 0.0.1.*+ , base >= 4.7 && < 5